By Chris R. Chapman at December 20, 2010 23:54
Filed Under: agile, better practices, software development

In today’s Globe & Mail business section a topical column asks:  Having an app developed: What to expect?  The author offers two ways to go:  Full-on custom (with either a firm or “two guys in a garage”) or go with a template solution.  As with everything in the world of IT he also cautions that “with size and experience comes cost”.

It’s difficult to generalize about the cost of app development, since there are so many different kinds of apps, but custom projects with bigger firms usually start in the tens of thousands of dollars. Where multiple platforms are involved, development, maintenance, and updating can easily run past $50,000 for a mid-size project. Hiring a large developer for more complicated projects, like e-commerce, can push into the hundreds of thousands of dollars.

Frequently, a monthly retainer is involved, and in most – but not all – cases, the app’s intellectual property remains with the client, should they move to a different developer.

While experience, cost and intellectual property rights are important factors to consider before embarking on a software project, there’s a larger question that the author unfortunately doesn’t address: How do you ensure that you’re getting value for your dollar and controlling your risk exposure?

Ask the more important question:  Waterfall or Agile/Iterative/Incremental SDLC…

The choice of software development life cycle (SDLC) can literally make or break the success of your project. 

SDLCs largely fall into two camps:  Single-pass/phased delivery (aka ‘waterfall’) where activities are done in sequence like an assembly line, and iterative/incremental delivery (aka ‘agile’) where activities are done within short, cyclical periods called iterations.  The former exposes your investment to significant risks in cost, schedule and scope and keep you out of the app development until the very end; the latter protects your investment with frequent inspect/adapt checkpoints that involve you throughout the app development, and consequently reducing your risk exposure.

As illustrated in the graph below, the return-on-investment (ROI) for waterfall projects is a long tail that almost always exceeds the agreed upon up-front budget.  You can expect delays and disappointments as your supposedly in-the-can app begins to wander off schedule within the first two weeks of development.  In contrast, the ROI for agile projects is realized much more quickly by breaking development into working increments delivered on a regular basis, eg. every 1–2 weeks.  Schedules, features and costs are continually negotiated throughout the project, giving you much more control over what goes into the final product.

(In upcoming posts I will distill the reasons why waterfall projects are almost always prone to failures)

 Agile_waterfall_roi

Irrespective of whether you go with a firm that’s customizing a 60% done app or going completely from scratch, you should give preference to a team that delivers working, testable increments of your app every 1–2 weeks.  Additionally, you should expect to work closely with your contractor, helping to set plans and priorities for the features you want to go into your app and to give approval to each increment before starting the next.

Your contractor, if they are truly capable to work this way, should only bill you for increments that you have approved, and those increments should be fully tested.  For most apps, expect to pay for 3–4 iterations minimum to get a basic application together – that’s 3–8 weeks.

Get your project assessed by a professional…

Custom software development can be a very risky proposition:  Not all firms apply discipline and rigor to their delivery practices which can delay your app and significantly impair your time-to-market.  When in doubt, consider getting professional guidance from a consultant who understands iterative/incremental software delivery and the best practices required on a developer team to make it happen.  There’s more that goes unseen when choosing a vendor that you need to be aware of to make an informed decision on who to award a contract.

To meet this need, I am currently developing an offering to provide customers who are pursuing custom application development an independent assessment of their prospective vendor’s practices and how it aligns with risk exposure and opportunity for success, along with suitability of the customer to work in a manner that will increase and optimize the return on their investment.  Armed with cost-effective knowledge, business owners and managers can make an informed decision about the suitability of a firm to meet their needs and time-to-market.

If this sounds interesting to you or someone you know, please don’t hesitate to reach out to me via my blog.  I will be providing more information on this offering as it is completed for the New Year.

Comments are closed

About Me

I am a Toronto-based software consultant specializing in SharePoint, .NET technologies and agile/iterative/lean software project management practices.

I am also a former Microsoft Consulting Services (MCS) Consultant with experience providing enterprise customers with subject matter expertise for planning and deploying SharePoint as well as .NET application development best practices.  I am MCAD certified (2006) and earned my Professional Scrum Master I certification in late September 2010, having previously earned my Certified Scrum Master certification in 2006. (What's the difference?)