Ready to Start Your Career?
February 9, 2017
Software Development Methodologies: Tumbling down the waterfall
February 9, 2017
Picking up the thread from a previous post on structured software design and CASE, it’s worth examining some of the major development methodologies and their evolution. Where SA/SD and CASE deal with the process of designing and creating software products, methodologies are concerned with the process of getting them built. They exist within the realm of project management and as such, are concerned with managing a host of entities, not the least of which is people.The human element of a typical software project takes the form of customers, often referred to as stakeholders, project manager(s), development team, test team, configuration management personnel, tech writers, other management, and just about anyone else looking to join in the fun from the guy who sweeps the floors to the HR department. If there’s a physical component involved then folks from the hardware team will be included. And if any hardware is involved, you can be assured that the delivery timeline will be doubled. Just kidding, or am I?As you might imagine, managing such a diverse set of personnel can get challenging in a hurry. Throw Mr. Murphy's law into the mix and project schedules and deliveries can quickly get blown to bits. Early on in the game, the need for managing the chaos associated with a software development effort quickly became apparent.In this post I’ll provide a very broad overview in order to at least get the discussion going. It would be impossible to cover all of the existing methodologies. Without exaggeration, there are more methodologies in existence than there are obscure sects of every world religion combined! Not to mention, that the adherents of each are just as passionate as any religious zealot.For now, let’s take a 30,000 foot overview of the methodology landscape and just examine a few of the major approaches and how each evolved.Waterfall ModelNot long after the first digital computers came into existence, approaches for managing software development projects emerged. The forebear was a linear process consisting of discrete phases which has become known as the “waterfall” model. It was a development process that had its origins in the manufacturing industry and consists of the following steps or phases: