Development Dynamics: July 2020

Steve Wyman, Director of Software, Homebuilder

Focus on agility.

Just as software continually evolves, the tools and methods used to create software evolve too. Back in the early 1990s, most software was developed using processes and methodologies that are today considered ‘traditional’.  Needs were analyzed, requirements gathered, plans created, the system designed, then coded, then tested, and finally the entire system was deployed to the client. From start to end this could take from a few months to many years, with no guarantee of success. 

While analysis, planning and design are extremely important parts of software development, this traditional waterfall methodology and large, long-term project plans can contribute to ballooning costs or even the failure of a software project. Here are a few examples of how:

  1. The analyst may misinterpret needs early, and the error might not be caught until late in the process, or even after delivery. 
  2. The client’s needs may change between requirements gathering and delivery. 
  3. The end users of the proposed system might not be consulted early, resulting in a system that meets organizational expectations but provides a poor user experience. 
  4. Plans can become bloated with ‘nice-to-have’ projects, or even ‘gold-plating’ that the client has not asked for. 

During the 1990s, software development changed rapidly. The growth of the internet, and object-oriented programming introduced new tools and technologies. In addition, frustrated by the problems associated with a heavy process-driven approach to software development, several independent groups experimented with creative alternatives to the traditional software development processes. These were collectively referred to as ‘Lightweight Methods’. The most prominent were perhaps Extreme Programming (XP) and Scrum. 

By the end of the 1990s, these new methods were gaining traction in the software development community, and in 2001, an alliance of several groups got together and created the Manifesto for Agile Software Development. This simple document made no attempt to dictate process or methodology. Instead it consists of four values (and twelve associated principles) that emphasize the importance of people, communication and collaboration, and delivering software in frequent small increments.  This document has become one of the most important contributions to the evolution of the software industry.

You’re probably thinking “Well, thanks for the history lesson Steve, but why is this relevant…?”.

We in Homebuilder Solutions are embracing agile methods.  Driven by a firm commitment to deliver frequent, valuable, high quality solutions for the most important needs, we are transforming our working practices to better serve our clients. This will become evident in the coming months as we deliver new versions of our products with greater frequency, and as we solicit customer guidance both through our colleagues who are in constant contact with our homebuilders, and in some cases directly from our Product Owners. 

When we release several versions of our products in a year, each version will deliver the highest priority needs at the time of development. Large and complex features will be broken into smaller pieces which are prioritized independently. This will enable us to eliminate bloat and gold-plating by delivering the highest-priority parts of each feature. When released, users will guide the relative priority of any remaining work, and we will continually refine and re-evaluate our plans based on ongoing user feedback. The content of each release will be driven by the highest priorities when it is planned. 

These are exciting times. While agile is a software engineering term, successful use of agile methods requires organizational engagement, and we have that. We are committed to bringing you more releases, higher value and greater quality, and we will appreciate your input and feedback along the way. Thank you for partnering with us on this agile journey.