The Software Development Cycle

By | December 30, 2016

Technology and software development cycles often talk in terms of “alpha” and “beta”, and live releases. What do these stages mean? And how can they be used to deliver better products and services?

Alpha, Beta, and Going Live

The alpha/beta terminology for software development was first introduced by IBM, and there are now many interpretations of software service and product development. I’ve found the UK Government Digital Service to have quite a good overview of different stages of development, although there are plenty of others out there focussing on web development, game development and looking at alpha and beta phases from a testing stand point.

However you look at the development cycle there are a series of levels of maturity which a service or produce needs to go through. At each stage you will need to ask yourself questions about whether you are ready to move on to the next stage, or whether more work is needed.

software development cycle

Discovery (or Pre-alpha) Phase

The Discovery phase isn’t the time to start building your solution. Instead the discovery, or pre-Alpha stage, generally has the focus of gathering information about users and their requirements. Putting user needs first helps avoid building something that isn’t wanted, or that solves the wrong problem.

This phase also involves getting a broad idea of the business constraints of the project you are working on, such as the will of senior management, and any potential resourcing issues. This phase is also an opportunity to see what competing services or products are out there that may also be attempting to meet the needs of your users – perhaps there is not the gap in the market you had initially thought?

The End of The Discovery Phase

By the end of the discovery phase you should have a broad idea of the scope of the project you are embarking on, and a good sense of the needs of your users. Neither of these need to be absolutely pinned down at this stage as they will be refined as you move into alpha.

If after working through the discovery phase you find that there isn’t the user need you anticipated, or that the users’ needs are already being met, or that you will be unable to meet them, then the end of the discovery phase is an opportunity to terminate project activity before investing further resources. Stopping after the discovery phase is not a failure – it means that you free up resources to target problems you can more reasonably hope to solve.

It may be that after the discovery phase you are not confident about either terminating the project, or progressing to the alpha stage. In which case you can repeat the discovery process to get a better idea of the environment in which you are working, and of user requirements.

Find out more about the discovery phase

Alpha

If, after the discovery phase, you are confident you understand the needs of your users and the constraints you are working in, then you can begin the alpha phase.

The alpha phase is all about prototyping solutions that meet the needs of your users. Prototypes will help you discover any problems with your design, and establish technical feasibility. The alpha phase is also an important opportunity to identify risks to the project as it enters the beta and live phases. Identifying and acting on the risks now will be much less costly than further down the line. Throughout the alpha phase you will continue to analyse and refine user experiences to improve the fit of your final design.

The additional information around technologies, risks and requirements will also give you a clearer sense of the likely cost of the project.

Three Stages of Alpha

There are three key stages the alpha development phase.

  1. Inception: this stage sets goals for the prototyping alpha stage
  2. Iterations: this is the core of the alpha phase, where you build, test and refine your prototype through multiple iterations
  3. Conclusion: you review what you have learned from the prototype iterations and make a decision on whether to go ahead to the beta phase.

Alpha: Inception

The inception of the alpha phase builds on the discovery phase to refine what exactly your goals are for the prototyping stage. You should answer questions such as:

  • What is the product or service we are making? And who is it for?
  • Do we understand the likely users?
  • What competition is there to meet this need?
  • How will our solution integrate with existing systems and services?
  • What do we want to achieve from this project? What is our vision?
  • What are the risks to successful delivery of this project?
  • What will we do in the first iteration?

Alpha: Iterations

The inception stage consolidated what you had already explored in the discovery phase. Now you move on to the core of the alpha phase: the iterative development of prototypes.

Iterating your solution means rather than picking a final approach and sticking to it, you build and test many prototypes, testing each one against user and business needs. After each iteration you should be able to show what you have learned, and what you will do next.

Iterating through prototypes will help you understand your users better and help you formulate a plan for the beta phase. You should also think about which metrics you can use to measure and monitor your solution as it reaches beta and goes live.

You should keep iterating until you can show that you have met the user needs established during earlier phases. If during the process of iterating it becomes clear that you do not yet fully understand the needs of your users, you should return to the Discovery phase.

Alpha: Conclusion

Your alpha prototype should give you confidence that you understand your users and that the solution you are proposing will not fail at the beta stage. You should now have a better sense of the timelines and resources required to move on.

The conclusion of the alpha phase may also be that, having explored possible options, your resources would be better spent elsewhere, addressing other user needs. This could be that the technology is not yet available to implement your solution, or that user needs are being met by an existing or alternative solution. Realising this before the beta phase is much less costly than afterwards.

Learn more about the alpha phase

Beta

The beta phase means building a working version of your solution, based on what you learned from the alpha prototyping. The beta version should work with real world interactions, work at the kind of scale you expect when it goes live, and be subject to continuous improvement as your understanding of user needs, and technical constraints continues to grow.

The beta phase is typically split into two parts: the private beta and the public beta.

Private Beta

In the private beta you test out your beta version with a relatively small, select group of users. By keeping the beta testing private you can control the type and volume of users, and get more immediate and targeted feedback on any remaining issues. The private beta gives you the chance to iron out problems before it goes to public beta.

Public Beta

The public beta gives you the opportunity to get feedback on your product or service from a large number of users, under more or less real world conditions. Large companies such as Apple and Microsoft often have public beta programmes where users can sign up to test services that may be close to production ready. The upside for users is that they have access to functionality that would only otherwise come in the next full release.

Read more about the beta phase

Going Live (or Release)

After the public beta you should have confidence that your service will meet the needs of users at the scale intended.

Before your service goes live  you should make sure you have a plan in place for continuing to monitor the needs and experience of your users. If these change, you will need to adjust your solution accordingly.

Other things you should consider and monitor include:

  • Maintaining quality assurance
  • Security
  • Hosting
  • Performance
  • Availability

Read more about going live

 

One thought on “The Software Development Cycle

  1. Dani Bartello

    Hey Duncan, my name is Dani and I’m a marketing coordinator for Centercode. Great content, and thanks for the mentions! If you ever want some more free beta resources, email us at info@centercode.com and I’d be happy to help you out! 🙂

Comments are closed.