Why Bespoke Software Might Be Right For Your Business

March 25, 2013

It is often assumed that choosing package software over bespoke software is the right choice for most business scenarios. However, as with many things in life, it’s not quite as black and white as many package vendors would like you to believe.

In my 30+ years in the software industry I’ve seen many package software implementations go wrong. I’ve also seen many millions of pounds/euros/dollars wasted on trying to make a package fit a business’s needs.

In my experience organisations consistently underestimate the amount of work needed to implement a new software package. In particular they significantly underestimate the amount of customisation that is needed to make the package suitable for their business.

If the “fit” of the package is not greater than, say, 80% then excessive customisation of the package may be required to satisfy requirements, or significant changes in business processes may be required to accommodate the software constraints. Such package customisation or process change, almost always extremely complex in execution, is a major cause for large implementation failures.

In fact, many companies would have been better off choosing a custom solution as they would have spent no more and would have got a perfect fit.

The Cutter Consortium investigated this area in their report ‘Application Package Software: The Promise vs. Reality’ and there were some interesting findings:

  • Of 78% that applied extensive or moderate changes to their packages, only 50% expected to apply this degree of change to their packages.
  • Nearly half of all respondents (49%) said that the customisations exceeded what was anticipated and what was budgeted for the project
  • The perception of senior management that packages can be dropped into an organization with little change is typically inaccurate
  •  31% of respondents expended a great deal of effort integrating application packages with existing in-house applications, and another 46% spent some effort on existing systems integration
  • 42% of respondents had a great deal of difficulty in integrating existing data into a package, while another 39% experienced some difficulty. This is an essential step with almost any package, and these findings indicate that data integration challenges are nontrivial
  • Application packages are, according to this survey, only fully implemented 28% of the time. While this is not necessarily a sign of success or failure, executives should note that a package is unlikely to deliver or be deployed to the full breadth of capability that a given package provider may be suggesting.

Of course this doesn’t prove that choosing package software over custom software is the wrong thing to do. Many packages do get implemented successfully. I would be the last person to recommend that you implement a custom accounting system or HR system unless (highly unlikely) you had some really unique requirements.

The debate over package versus custom really begins with those systems where your requirements are specific to your business and where a package doesn’t easily cater for them in a standard implementation. In these cases the decision is less clear-cut.

In part 2 of this blog I will be looking at the 7 reasons why custom software just might be the right choice for your business.


Stop Wasting Money On Software You Don’t Need!

November 29, 2012

Part 3 of 3

In Part 1 of this article (http://blog.kynetix.com/2012/10/23/stop-wasting-money-on-software-you-dont-need/) I laid out the evidence for the enormous amount of waste that exists in all software. In Part 2 (http://blog.kynetix.com/2012/11/09/stop-wasting-money-on-software-you-dont-need-2/) I went on to examine how waste is created in software.

In this final part I want to put forward some ideas about how you can prevent waste happening in your software projects.

HOW DO YOU AVOID WASTE IN SOFTWARE?

You could probably fill a library with all the books available advising on all sorts of development practices designed to make the process better, leaner, quicker, cheaper. However, for the purposes of this short article I would offer the following four suggestions.

Adopt an incremental approach to development – No more big bangs

Commit to delivering only the most important 25%-30% of features in the first release. Get that released and then listen to the feedback. Make the second release contingent on the feedback from the first.

By responding to what’s actually needed, this will greatly increase your chances of not creating waste. It will also create a system that the users actually want to use.

If you think about it, good software will usually change people’s working practices and behaviours. They will be able to do things they couldn’t do before and they will become more efficient at certain tasks. It’s only through the use of the system that you can really know what the most valuable features for the next release are.

Make sure the users know that there are further releases to come and that you will base the decision on what to release on their feedback. This gives you a much greater chance of controlling the “kitchen-sink” mentality.

Use timeboxing to control scope (& waste) creep

This is the highest payback action you can take to avoid waste. Scope creep is the cancer in software development that leads to huge amounts of waste.

The key to this is to drive projects by strictly controlled timeboxes,  making the deadline more important than the feature set. This focuses everybody on only building the most important features for that release and will ensure that there is less opportunity for waste to creep in.

If you’ve never worked this way before it can be hard to believe that you will get the system you really want. And that’s true because instead you will get the system you really need and without waste!

Use an Agile development method

If you can get the first two suggestions implemented then you will need to have a development approach that is compatible with these. This is where Agile development fits perfectly.

Agile development is based around the concept of frequent deliverables where the requirements can change as the project progresses. It is also founded on the principle that adherence to timeboxes matters more than scope.

Don’t tolerate obscure or complex code

To deal with this issue you will need both an educational and a monitoring approach.

You should have rigorously enforced coding standards which ensures that developers follow the corporate line. You should also implement peer reviews of the code. It is vital that you have extra eyes on the code to ensure that unnecessary complexity doesn’t creep in.

To ensure that your developers are consistently improving you should develop a best practice culture in your organisation. Make it unacceptable to develop obscure code. Get your best experienced developers to mentor more junior people and set the quality expectations.

SUMMARY

Every organisation, large and small, has already wasted, and continues to waste, huge amounts of time and money on unnecessary software. The key question is this. Now that you know how much waste there is in software what do you plan to do to stop it?


Retrospective Meetings: Agile Learning from the Past

August 1, 2011

In the latest Visual Studio Magazine, Aaron Bjork writes a pithy reflection on the power of learning from the past and gives some insight into how to get the most out of retrospectives in your Agile projects.

He reflects on one of the twelve principles behind the Agile Manifesto:
“At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly”.

Read the full article at http://visualstudiomagazine.com/Bjork0711


Software that’s Secure

March 8, 2011

The SAFECode organisation has just refreshed their whitepaper: Fundamental Practices for Secure Software Development.  It covers a broad range of security topics with brief overviews and best practice.  Each section then includes pointers to related tools and resources.  I recommend it highly.

I got the link through Microsoft’s Security Development Lifecycle (SDL) website.

-Krip


Achieving Leaner Software

November 9, 2010

Steve McConnell is widely regarded as the leading authority on software development best practices. He has written many books about the subject and “Code Complete” in particular is a mandatory read for all new developers at Kynetix.

He has written a great article on Achieving Leaner Software. Key points from the article are:

  • trim all features that are not absolutely necessary
  • simplify all features that are more complicated than absolutely necessary


He makes some strong points about feature-creep and states that “to support lean software, the change board must say no to new features more often than it says yes”.

Read the full article at http://www.stevemcconnell.com/ieeesoftware/LeanerSoftware.pdf.


Follow

Get every new post delivered to your Inbox.