Time

When I'm asked to provide an estimate for a project, I know it's not just the amount of dollars that matter. It's also the amount of time.

Time estimates are often the most mysterious to clients. "It's just an iPhone app with five screens, why will it take so long?"

Get on a boat and cruise up to a real iceberg, and I think you'll agree that it looks a little intimidating. Just wait until someone mentions that 90% of it is actually underwater! It's actually ten times bigger than what you'd otherwise think.

An app is a lot like that. Even for a "small" app, there's a whole lot of unseen work that must be done:

  • A database to store all the data to be presented, collected, and/or processed
  • If you're building a native or hybrid app, you'll need a second, on-device database to store data, user preferences, and other required information (and if you need a refresher on the kinds of apps that a software shop can build for you, I wrote about that here.).
  • User workflow analysis and design
  • A bespoke software architecture for your research study
  • Error handling, error recovery, and corner-case analysis
  • Security planning, reviews, and audits
  • Server hosting, updates, monitoring, and operations management
  • Offline considerations and data queue management
  • Automated test suites and simulators
  • Automated code integration and deployment

I could actually keep going, but I think you get the idea. Software engineering is, in many ways, similar to civil engineering. That bridge over the river doesn't look complicated, so why did it take so long to build? Consider the soil conditions, the load-bearing requirements, factors of safety, construction schedules, weather conditions, blueprint reviews, municipal inspections at each stage of construction - there's a whole lot that goes into building a bridge that users of the bridge will never see.

On the other hand, don't just take a firm's word for it. Ask questions about how they came up with the schedule, what tradeoffs went into the decision, and what kinds of options are availble for shorterning the timeline without losing quality. But hopefully you now have a sense of the kinds of factors that are involved when building a software timeline.

Got questions?
Ask me anything.

Clcik to schedule a Zoom call

Drop me an email: jeffrey@softwareforresearch.com

Find me on Twitter (DMs are open): @jeffcohen