Saturday 16 January 2010

Application development over the last decades: increased but hidden costs


Over the last decades a few trends have been made visible within application development. Methodology is one of them, introducing a.o. RUP, Agile and XP. COTS and code generation is another, trying to reduce the number of errors by pushing back the human contact with code

Apart from benefits, there are concerns here.
Methodology has put more focus and the project and timely delivery itself, forgetting that an application only spends 20% in initial development, and 80% of its lifecycle in maintenance. The human factor has been greatly increased by these methodologies, mirroring the increased dynamics of business
On the other hand, software building has greatly decreased the human factor

In both cases, documentation has suffered from the trade-off. Its level has shifted upwards towards business and functional design, and become more global than detailed. With the effect that the application itself is not very well described at the operational IT level, making errors a lot harder to solve.Which is causing the cost to shift from the project phase to the maintenance phase. That is good for the project bookkeeping, but very bad for the enterprise bookkeeping: it is a lot more costly to solve errors than to prevent them, and it is even more costly to solve them in a later stage as opposed to an earlier stage

This increased cost has been noticed, and has caused a surge in offshoring. In these areas margins are very low, so what I call "target-driven programming" is an even bigger goal here. Linguistical and cultural differences make for extra barriers, causing a lot of rework to be done during the delivery phase - getting even further away from up to date documentation

So, we're off worse than before. We're delivering more functionality within less time against less cost, but due to increased business all this code has to be maintained more often. And the knowledge to do that has become just as dynamic as the delivery phase, exponentially increasing the cost there. What does the code do? What is its functionality? How to test so errors can be reproduced? Many questions that now take more and more time to answer

Is Agile bad? Is code-generation? Yes they are, if you think they are one-size-fits-all solutions. And you might know my take on those by now.
Code-generate away and hand-code the remaining 20%-30%. But document it very well. Agile away and only write down the bare necessities during delivery. But document it very well when the application is live.

5 reacties:

Randy McClure said...

Martijn,

Good points. I have not ever put much thought into this in regard to costs shift from the project phase to the maintenance phase. Your experience and opinion mirror mine own as of late.

Do you have a references that this is an industry trend? Software vendors have traditionally charged a 18% maintenance fee per year. Are companies starting to increase their maintenance fees?

Martijn Linssen said...

Thank you Randy. It's what I'm seeing in my daily life and hear from colleagues, events, etc

But it might be interesting to know that SAP was planning to increase theirs from 17 to 22% over the next 3 years.
Oracle's already at 22%!

Rob van de Star said...

Hi Martijn,

Agree with your view on change in costs for Application Development.

As I think of many of the application landscapes of our clients are heterogenous, and interconnected: what's your view on the cost of developing and maintaining all these interfaces?

Martijn Linssen said...

Rob, thanks! Heterogenity is here to stay, written more than a few times on that (http://www.martijnlinssen.com/2009/09/business-as-service-business-as-usual.html)

Over the past 5 years I've seen exploding costs on the interfacing side: ESB and XML have reintroduced the point-to-point interface (http://www.martijnlinssen.com/2009/08/standardisation-alas-poor.html), SOAP is now introducing the point-to-point transaction (http://www.martijnlinssen.com/2009/07/soap-postman-has-already-rung-twice.html)

At the same time where we need more and more integration, as our world is continuing to grow, and our horizon keeps extending, this will need to dramatically improve

Unknown said...
This comment has been removed by the author.

Post a Comment

Thank you for sharing your thoughts! Copy your comment before signing in...