Typically it goes like this:
Bureaucrats: Here is a 1000-page spec document that we have spent 3 years writing. We captured all the requirements at the beginning Consultants: We can do this project for $X. However it will take a long time and a lot of people for us just to understand your spec, so any changes to it will cost $Y. Bureaucrats: OK whatever.
Consultants: work work Bureaucrats: Wait, we've changed our mind about this! Consultants: lick lips
Amen.
Incentives are everything, and if you look at most things without keeping that foremost in your mind, you'll see a hodgepodge of weird random effects ... but use that perspective, and most things make a ton of sense.
1) Government Software jobs pay less than civilian. It can take up to 6 months of paperwork to hire someone. While that paperwork is in process the job applicant must wait and can't be hired. Guess what kind of developers the government gets?
2) Requirements, they've never heard of them (sarcasm.) My last project had the language changed 3 times, went from a plug-in to a stand-alone app to an API, and during the 4 years had 3 different "final" decision makers. Feature creep was more like feature tidal wave.
3) Paperwork. There's massive amounts of it. One of my coworkers spent 1 month writing paperwork for 10 lines of code.
I could go on but the government does everything in its power to interfere with rapid development and then wonders why costs overrun.
Which New York City law mandates this? (not doubting that there may be one)
Hiring someone for the New York City government can take up to 6 months? What is it typically? (which is the only thing we should care about here without reason to believe it would be atypical)
>3) Paperwork. There's massive amounts of it. One of my coworkers spent 1 month writing paperwork for 10 lines of code.
Do you guys work for the city government in NYC? Somewhere comparable?
So you're arguing that the NYC government is incompetent at running a project done by contractors, but it would be better at both FORMING and RUNNING its own team of contractors?
Sounds like nonsense to me.
New IT systems often come along with changes in process, a well defined IT project should produce a system that follows and complements those processes. Instead what we often get are "boil the ocean" projects that attempt to fix process issues under the guise of an IT implementation.
"How could the project fail? We hired some of the most highly recommended and expensive consultants. They didn't deliver."
A team that can do that AND is willing to navigate the treacherous minefields of internal politics at a government department doesn't exist.
What they should do is just create an open bidding system for the work and make sure that the bids are well publicized, so that not only IBM and accenture will bid. And then they will pay the bid amount only when the whole system is ready and functioning according to specs and schedule.
Thus any cost overruns are not NYC's problem.
There is a million time keeping apps out there, I am sure there will be plenty of candidates willing to modify their app to the city's requirements.