Yes, it would have helped the Clinton campaign had Powell endorsed her earlier. However, it's hard for a Republican to cross party lines and vote for a candidate in another party. I'm sure he had to search his soul for a long time before making this decision. Overall it's not too late and will help people see that Trump is not a viable candidate.
He should not have waited so long. He may have had to decide for himself whether he wanted to endorse her or not but this last minute endorsement speaks volumes to his character. There are certianly people who will be swayed by this endorsement, and more people might vote for Clinton.
To use one of Donald Trump's favorite words, he would be a "disaster" as president. He does not understand a president's job, the Constitution or how the U.S. Government works. He also has a short temper and is obsessed with getting back at people who he feels have wronged him. Every politician should recognize that he is not at all qualified to be president, and they should have recognized this right away. However, I applaud Colin Powell for having the courage to come out in support of Trump's opponent. It's better late than never.
Powell made his endorsement when he felt comfortable doing so. It should never be necessary for public figures to give endorsements at any stage of an election and doing so should always be voluntary. With the presidential race causing a stark division in the country and with many citizens not eager to elect either candidate, Powell was well within his right to wait to endorse Clinton.