NYC Mayor Demands $600M Refund On Software Project
alphadogg writes "New York Mayor Michael Bloomberg is demanding that systems integrator Science Applications International Corporation reimburse more than $600 million it was paid in connection with the troubled CityTime software project, a long-running effort to overhaul the city's payroll system. 'The City relied on the integrity of SAIC as one of the nation's leading technology application companies to execute the CityTime project within a reasonable amount of time and within budget given the system's size and complexity,' Bloomberg wrote in a letter Wednesday to SAIC CEO Walter Havenstein. CityTime was launched in 2003 at a budget of $63 million, but costs swelled dramatically as the project stumbled along for nearly a decade."
It's about time someone is calling out a company on their massive budget overrun. The SOP of underbidding contracts just to get them, knowing full well that you can just ignore the budget is nothing more than systemic fraud.
Why they decided to pay $600M and then ask for a refund is a bit perplexing.
You do not sound like an incompetent bureaucrat that wants to turn around and blame the contractor if anything goes wrong, all-the-while both changing and adding requirements throughout the project.
With that said, I would hope that SAIC could have bought a company that already makes time management software on the desired scale for a fraction of the current cost. Maybe even for a portion of the original $63 million estimate.
I am not sure what is so special about a city that they need their own unique time management system. It's not like there aren't a bajillion in existence already ranging from overly simple to extremely complex. While I'm sure they need the extremely complex region, it really should have been handed to a company with experience in the arena already to either purchase an existing product, or add required features to one.
There I go thinking about someone outside of the government. I'll move along now.
A piece of advice I was once given by an old coder:
"If you ever do contract work for government make a special effort to cover your arse because you'll be blamed when something goes wrong no matter what.
Especially if it's their fault. "
If you approach the problem with a proper design methodology that generates a thorough set of use-cases before writing the first requirement, the solution falls out of the regs and obvious behaviors.
And, if you build into that an ability to adapt the system to changing regulations, you've handled the most obvious case, in which regulations change, which they do, continually.
To "a thorough set of use-cases before writing the first requirement", that's the most naive, most impractical stupidest thing I've heard, a blurp out of academic void. This is the number one mistake people in software engineering do, believing that this is possible. In fact, good software engineering recognizes this, and what you just suggested is anathema to it.
Except with the most trivial of cases or in systems that strictly autonomous that interface with physical environments for which you have a model, requirements exist a-priori... ALWAYS.
We are talking about systems that interface with people, business, and processes (internal and external) governed by law, contractual agreements, human behavior and market forces that can change at any time and for which no model exist (unlike models of physical phenomena.). These can change (and due change) by priorities greater than the ones driving the development of a system.
And this does not count deadlines to deliver that typically exist to get something going and that are non-negotiable. Yeah, non-negotiable. You can get a legislative deadline to implement something just to be allowed to operate (think HIPAA or SOX), or mandated by business imperatives that can make or break a company.
And we, software engineers, have to cope with that change because that's what we get paid the big bucks for . With that in mind, it is obvious that it is impossible to do what you suggest: to get a through set of use-cases before writing the first requirement. In fact, many of the requirements and use-cases only become known as progress is made. This is true for any complex system.
Moreover, it flies in the face of agile development, rapid prototyping, or the older-but-always-good iterative/spiral models.
You pretty much suggested that we do waterfall. Way to go bro.
Compare the cost of US military troops in Iraq vs contractor personnel in Iraq.
If we can handle a moon landing, the invasion of Normandy, the Tennessee Valley Authority and Hoover Dam, and the Manhattan Project, I'm pretty sure we can handle putting together a payroll system.
Here in Chicago, we had a public parking system that was hugely profitable, convenient and cheap. It was sold to a private company over a year ago to cover a budget shortfall arising out of the real estate crash and now parking fees have gone up 1600%, you are limited to 2 hours (in order to increase violations) and the privately hired enforcement workers are rude, ignorant and obnoxious. Sundays and holidays are no longer free. The situation is so bad that businesses along major streets are suffering because people don't want to deal with it. The public operation was far superior to the private one.
Oh, and the private outfit that manages parking says they cannot make a profit even with the 1600% increase, so they're going to be raising parking prices yet again. The prices are so high that they had to take out the parking meters and put in these big machines that take credit cards (but not dollar bills). Oh, and the machines are always broken (which does not prevent you from being fined for not paying).
Governments can certainly handle large, complex projects and do it more efficiently than the private sector. When you take out the 20-100% (minimum) profit margins that privateers add, it's not even close.
Say, how well are those private space exploration companies doing? I'm sure by now they must have mines set up on Mars.
Profit is not all it's cracked up to be.
You are welcome on my lawn.