To be fair, timekeeping software really isn't as trivial as you might like, at least assuming that we want to move beyond the raw recording of who worked when out into actual management of such things. Requirements come from federal, state, and local laws, as well as negotiations with all relevant unions. So even before you've gotten to the usual BS requirements laid on by management, you've already got a large pile of requirements that A: are legally mandated and B: written without so much as five minutes consultation with a software engineer.
But, yeah, on the other hand that's just the usual business software story. 10x budget overruns are probably not called for.
But, really.... timekeeping and payroll were some of the FIRST business applications developed. It's a solved problem at this point, even with all the nuances. Developing this from scratch for NYC seems like the epitome of reinventing the wheel.
No enterprise software is a solved problem yet, there's a lot of bad software dominating at the moment (look no further than sage for accounting for example), any enterprise software you randomly pick will suffer from at least one of:
- Have bloody awful UIs
- Aren't extensible
- Need a massive amount of expensive consultant days to setup
- Are very brittle
- Have an overwhelming list of features which make them very hard to use
- Have bizarre restrictions on certain data (e.g. max 100 chars for a comment)
- They're not capable of talking with common system X
- Don't expose an API
- Have atrocious db structure making reporting extremely expensive in dev time
- Use a home rolled DB (oh. god. no.)
As for the problem of timekeeping being extremely complex, it's not at all. It's difficult, but solvable with one or two decent developers/project managers in a few months. I know as I've seen it done twice now.
It's only extremely complex if you try and include every weird quirk and feature that every client has ask for. Sometimes the solution isn't extending the software, it's changing the business process or simply leaving them on the old paper system.
If you take a 37signals-esque path you've got something that'll sell to 80% of businesses, let niche software cover the rest.
"It's difficult, but solvable with one or two decent developers/project managers in a few months. I know as I've seen it done twice now."
It was actually my first task that I ever did "for real", though we did only the raw recording; the processing was done by older code that had all the quirks built in. It was a success, too. The problem itself is easy, but it's definitely in the class of things that can be made arbitrarily hard by added requirements with no thought given to costs/benefits. Fortunately on my project, the devs and the management were on good terms, so much thought was given to cost/benefit tradeoffs, but I can easily see cascading failure in a different environment. Even the easiest software projects can and are sunk by that.
But, yeah, on the other hand that's just the usual business software story. 10x budget overruns are probably not called for.