How to make Software succeed?

Introduction

When talking about software failure, most people will point it to software which failed to achieve their objectives either temporarily or permanently, or software which ran over budget. However, there also lots software failure due to the purchasing organization, such as poor requirements, overambitious requirements, unnecessary requirements, poor drafting, poor contract management, poor end-user training, or poor operational management. Except from those two main reason, sometimes software may also fail due to lots of other things, such as pressure from public opinion, competition with other similar products and so on.

Some unsuccessful software

Perhaps most people don’t know what is “Google Buzz”. It was a social networking, micro-blogging and messaging tool that was developed by Google before Google+ and integrated into their web-based email program , Gmail [1]. The project was launched on February 9, 2010 and discontinued one year later on December 15, 2011. Some media even regard it as one of the top unsuccessful IT product ever. However, what really makes Google buzz fail? There are two reason: The first and the main one was that people just regard it as a twitter clone with nothing improved, they have no reason to move from Twitter to Buzz; Another, and quite serious reason was that it had privacy concerns from the very beginning, people thought it leaks user’s personal information somehow by using user’s email.

google buzz

Universal Credit is another example. It is a new welfare benefit in the United Kingdom that will replace six of the main means-tested benefits and tax credits[2]. Unlike Google buzz which is a permanent failure, Universal is just a project with ongoing problems. However, the loss of it is just incredible, developers expected the total cost of it to be £2.2bn, whereas it cost about £12.8bn in fact, almost 6 times bigger, and that is just an estimated number. The main problem with Universal Credit was that The schedule has slipped. Only one of four planned pilots went ahead according to the original schedule, and this pilot was restricted to extremely simple cases[3].

universal credit

Maybe people won’t expect the famous video game Pac-Man to be a failing software project. However, it is. It was developed by Atari, and published in 192. Atari created 12 million cartridges, hoped that the success of the game can also help boosting their system sale. Pac-Man sold about seven million cartridges, the unsold units together with the expense of large marketing campaign just led to large losses for Atari. The over estimation of the game finally made Atari lost their prominent position in the home console market[4].

6081_pacman-cutters-on-black1

 Software failures& how to make software succeed

Concerning about the reasons that make software fail, there could be corresponding solutions to them. These solutions are not just invented today, but software still happened to fail from time to time. Bad management is common, just like there is almost no perfect program with no bugs. Here is part of those problems and their solutions:

  • Project run over time: Carefully design at the very beginning, make reasonable  schedule; Don’t  expect big jump between steps; Get the whole system working on time first,  rather than  spend tons of time working on a tiny component; Give up some  bad idea, before it is too late to do so.
  •  Project run over budget: Either estimate the time or the budget for a software  project can be relatively  hard. Just be realistic, make the budget based on the full requirements. Work  with team which has record of delivery within budget.
  •  Poor communication: “Never assume anything”. Always make sure that both of the people in the  team or the customers understand each other. Solve problems at the very  beginning, don’t leave it until it is almost impossible to change things.
  • Never reviewing project progress: Milestones could be the most helpful solution for this, challenges can be  overcome at each milestones, and stakeholders can be warned of delays and  changes to the products
  •  Inadequate testing: Leave enough time in the schedule for testing in the schedule. Regard testing  as important as  the initial development. In addition, even if product has  been released, testing can still be lasting at some point, before actually get  feedback or complain from the user.
  •  Lack of quality assurance: A few is not always better than nothing. Sometimes, leaving programs with  not completed documentation, or even worse, not completed implementation  will just spent whoever continues to work on it more time. People will  always prefer to writing their own code rather than reuse others’ confusing  code.

 

Conclusion

Software is not like anything other kind of products. It is probably the one which has the most failures. With day goes by, the competition between software developers has also become more and more intense. A good developer should not only be able to give attractive designs but also be able to manage projects properly, makes sure the project will neither run of time nor budget, the whole team understand each other from the beginning to the end, and tests are always adequate. Maybe not comprehensive, but this isreasonably be part of the answer for how to make software succeed.

References

1.http://en.wikipedia.org/wiki/Google_Buzz

2.Iain Duncan Smith announces the introduction of a Universal Credit

3.http://www.theguardian.com/politics/2013/oct/31/universal

4.Mikkelson, Barbara and David (2001-03-21). “Five Million E.T. Pieces”.Urban Legends Reference Pages. Retrieved 2006-07-20.