Today we'll be taking a closer look at a unique, yet rather popular, software development model, colloquially known as the Big Bang model. While the tenets of the Big Bang model, such as they are, are almost excessively simple, use of the model should not be wholly discarded or ignored, as it can be a powerful tool to manage the software development life cycle (SDLC) of a wide range of projects.
Loosely based on the cosmological model and theory of the same name, the Big Bang model of software development is designed around the notion that, beginning with nothing, a rapid growth and expansion of code will quickly emerge, thus producing a finished product in a mere instant (relatively speaking).
In this article, we'll take a closer look at what exactly the Big Bang model is within the context of software development, how it is typically implemented, some cautions for using it as a deployment method, and both the advantages and disadvantages of the method overall.
Some more specific takes on SDLC include:
|Rapid Application Development||Test-Driven Development||Waterfall Model|
|Iterative Model||Extreme Programming||Scaled Agile Framework|
|Agile Model||Scrum||Rational Unified Process|
|Software Development Life Cycle||V-Model||Conceptual Model|
|Kaizen Model||Kanban Model||Spiral Model|
Unlike nearly all other popular SDLC models, the Big Bang model is unique in that it requires virtually no planning, organization, best practices, or typical procedures. Instead, the Big Bang model is fundamentally about simply starting the project right now, at this instant, with no formal development structure or organization. It is typical that very few if any team members, let alone the customer, are completely familiar with what the requirements are for the project, nor what is necessary to meet those goals, and thus every single aspect of the project is developed and implemented on the fly.
Day-to-day development occurs at the whim of the team members and is loosely based on the requirements that are generally known and accepted at that present moment, without much regard for consequences or future requirements that may arise. Everything about the project is completed with a laissez-faire attitude, with little regard or care for what may come next, and instead simply enjoying the work that is being performed at that very moment. In short, the Big Bang model is the heavy metal of software development methodologies.
As a lesser component of software development, the deployment phase of a product or release is typically one of the final and most critical steps in the software development life cycle. While most projects will opt for a typical, incremental rollout for a new deployment, in some instances it can be infeasible to slowly introduce a new system, particularly when creating a dramatically new version of a product or release.
In such cases, the only logical solution is a deployment that occurs instantly, like flipping a switch. This method is often referred to as big bang adoption, which requires that all users of a system are moved to the new system at a specific date and time.
It should come as no surprise that implementing any system via big bang deployment -- in particular a new software system -- is fraught with numerous risks. In many cases, unforeseen issues can cause quirks in the system or failures to properly handle migrated information that may exist when coming from a previous version of the system.
In the worst cases, such instantaneous deployment can lead to bugs in the code that are so severe, the system virtually fails to function on all fronts. One such real-world example of a big bang deployment that went terribly wrong was in 1992 with the Computer Aided Dispatch program for the London Ambulance Service. The software was intended to facilitate the rapid allocation of responding ambulances to emergency services calls.
Unfortunately, within just a few hours of the system going live, numerous problems arose, such as the software sending multiple units to one location while other locations were completely ignored. The application began producing such as massive number of error messages on dispatchers' terminals that incoming emergency calls were completely lost. A mere eight days after the system was launched, it was completely shut down in favor of the old, manual system.