I've done it both ways, and have found that a hybrid approach ends up working best.
Doing it at the end means you can focus just on indexing (not writing). You're more likely to be consistent in choice of terms, avoiding unintended synonyms where some entries are under term A and some are under term B but they should be together. If you do your own indexing, though, then you're doing this with material you've already read several times, so (in my experience) you're more likely to miss things because you end up skimming even if you didn't mean to. If your team has other writers, you can mitigate this by doing each others' indexing.
Doing it as you go means you can note at the time you introduce or heavily use a concept that it needs to go into the index. If you send out drafts for review before you're finished, you can get early feedback on these decisions and maybe even some crowd-sourced suggestions. You have less work to do at the end, when you might be feeling deadline pressure.
I've found that building up the beginnings of an index while writing increases the chances that important entries will happen, but doing it as you go can lead to "drift" over time -- you started indexing all references to X but over time decided there were too many and you should prune, or you changed you mind about terminology, or you just weren't thinking about indexing last Tuesday and that chapter is sparse. If you index as you go then you should also do a pass at the end to catch what you missed and clean up the problems you introduced along the way.
For me, the hybrid approach works better than either doing it all as I go or saving it all until the end. I once worked on a team where we had somebody with specialized background in indexing (I think a library-sciences degree?); we had that person do most of our indexing because of that, which pushed us to post-processing, but even so we found ourselves making notes like "this place is really important" along the way, as input to that process.
\index sure seems like an easier way to provide that input than comments or external notes, doesn't it?