How Software Teams Accelerated Average Release Frequency from 12 Months to Three Weeks
A Quick Guide to Agile Development for Non-Engineers
If you were managing 100 software developers you would have to choose the best way to maximize their productivity. Since the dawn of the computer era many software project management approaches have been tried. The waterfall model dominated software project management up until the 1990’s. In the early days of computing, project management was adapted from the manufacturing and construction industries, which required detailed planning and a great degree of structure. Projects were organized into phases (conception, initiation, analysis, design, construction, testing, production/implementation and maintenance) and progressed through these phases sequentially. Once a phase was done, the team moved forward to the next phase.
The waterfall model is better suited to situations where the requirements are fixed and well understood up front. This is nothing like the technology industry where the competitive environment evolves rapidly. In the 1980’s a typical software project required about 12 calendar months. In technology-driven businesses (i.e. nearly everyone these days) customers demand new features and services, and competitive pressures change priorities on a seemingly daily basis. The waterfall model has no mechanism to respond to these changes. This led to a seemingly endless cycle of planning and replanning causing delays and resulting in project budget overruns.
In the early 2000’s, the software industry embraced a new approach for code production called Agile Development. Agile is an umbrella term for several different iterative and incremental software development methodologies.
In Agile Software Development, the team and its processes and tools are organized around the goal of publishing releases to the users every few weeks (or at most every few months). A development cycle is called an iteration (or a sprint). At the beginning of an iteration, the team commits to completing working and valuable changes to the code base. With iterations occurring at short intervals, the organization can continuously reassess its priorities and incorporate them into future iterations. This allows the development team to more easily adapt to changing requirements.
In an average software team, the developers don’t always understand user environments and applications. In Agile Development, features are associated with user stories, which help the development team understand the context behind requirements. User stories include descriptions of features and acceptance criteria.
Agile is widely credited with boosting software productivity. One study sponsored by the Central Ohio Agile Association and Columbus Executive Agile Special Interest Group found that Agile projects were completed 31 percent faster and with a 75 percent lower defect rate than the industry norm. The vast majority of companies are getting on-board. In a survey of 400 IT professionals by TechBeacon, two-thirds described their company as either “pure agile” or “leaning towards agile. Among the remaining one third of companies, most use a hybrid approach, leaving only nine percent using a pure waterfall approach.
In an increasingly competitive marketplace, Agile methods allow companies to become more responsive to customer requirements and accelerate time to market. Agile also improves ROI because features delivered in each iteration can be immediately monetized instead of waiting months for a big release. Agile is the major reason that release frequency improved from around 3 months in the 1990’s to about 3 weeks in the 2000’s. However, improvements didn’t stop there. Today releases are occurring every few seconds using an updated approach which builds upon Agile.
In a future blog, we’ll explain the role that Agile Development plays in enabling accelerated and robust data analytics. We call this new approach DataOps. In order to fully explain DataOps, it also helps to understand a little about DevOps and the tools that data analytics can adopt from lean manufacturing.