AGILE Software Development – What business executives need to know
As a business executive how much do you really know about the Agile approach to software development? As the leaders within the company responsible for using technology innovation as an enabler to accelerate the business operations and improve the companies results, do you really understand your role and involvement in the technology development methodology used in your organisation? How can you direct the team if you do not understand the principals of the software development game?
All executives in businesses using an agile approach for software development must understand the basic principals, rules, practices and concepts of “Agile”. With an understanding of the methodology the software development team is following, a better understanding and appreciation of the team and their efforts are reached improving your ability to lead and direct the people involved across the business.
This series of Blog Posts provides an executive summary of the “Agile Software Development Approach” to get your tow in the water.
Agility is expected in modern software development and the customers assume that through appropriate planning, solutions are build with the ability to anticipate changes and to realign over time as requirements and needs are changing.
Agile comes from the Latin word ‘agere’ which means “to do” – it means the ability to progress and change direction quickly and effectively while remaining in full control.
Software development delivering products and solutions, usually come about through the same phases within the business:
- A need – The business has a particular demand and/or requirement and need a new software product or changes and enhancements to existing software solutions to address this demand and deliver value to the client and/or customers.
- Funds – Budgets are drawn up and the business secures the availability of funds required to deliver the new project
- Project Acceptance – The business stakeholders approves the software development project and it is chartered.
- A Plan – Project Planning and Management is the fist but also a continuous key exercise in any project.
- Execution – Build it!
- Acceptance and Go-Live – The business accepts the software as fit for purpose, addressing the need and it is released into production.
- Support – The provision of operational and technical support to keep the new software working after deployment into production.
In addressing this business need, software technology development teams follow a typical cycle – The Software Development Cycle:
Requirements –> Design & Architecture –> Functional Specifications & Use Cases –> Acceptance Criteria –> Technical Specifications –> Code Engineering –> Testing –> Deploy –> User Acceptance –> Production –> Support –> Requirements for a new cycle
In traditional software development, individual specialised groups of Business Analyst, Testers, Architects, Designers, Developers and Network Engineers completing each step by working through the full scope of the project before it is handed over to the next step. A lot of effort is spent in each of the steps and more time is spent in handing over documentation and knowledge from one step to the other until the project is done.
In agile software development, the entire project team, consisting of members from specialised groups, is responsible to complete small increments of working software that deliver value to the business. Collaboration, across the whole company and the end user, client or customer during the development of each increment, ensures the need is met. The full Software Development Lifecycle is followed in the development of each increment, which is concluded with a release of working software into production. Change is the only constant in today’s world, so the project planning is done one increment and release at a time starting with high-level functionality. More incremental releases are completed adding more detailed to the functionality until the full project scope has been completed or until the business is satisfied that the need has been addressed.
Agile project management is not meant to replace formal project management methodologies, but to compliment it.
Agile Software Development’s Prime Goal: High value, high quality software, delivered quickly and frequently!
Agile is all about – expecting change through rapid feedback and interaction though-out the project; the ability to adapt and anticipate change events, delivering scalable components that address the stakeholder’s needs; parallel cycles of work delivery with good communication and progress feedback; keeping it simple assuming the lowest cost and simplest solution is the best; demonstrating the progress after each cycle and evaluate improvements to feedback into the next cycle.
Being agile is all about being flexible and adaptable to continuous change. Agile project management can help to manage change consistently and effectively. It is all about thinking lean and making optimum use of resources as well as looking after the team though continuous interaction, coaching and mentoring to increase the performance.
Inception – Setting the project up for success
During inception all members of the team collaborate and define the outcomes of the project and what success looks like. The team grasps an understanding of the business requirements, meet the stakeholders, and compile a prioritized list of the functionality required broken down as “user stories” – later more on user stories. The high level solution design and underlining technical architecture are compiled followed by an estimating exercise defining the high-level effort required to deliver the project scope.
Iteration 0 – Preparation that enables the team to be productive from Iteration 1
In this iteration preparations of the team’s workspace, tools and infrastructure are completed.
Execution – The execution consists of a series releases that each consists of a series of time-boxed iterations – also called sprints – where the software increments are planned, built (coded and tested), deployed and demonstrated to the stakeholders.
Closing – Was the business need met by this project delivery? Ensure everyone understands how the new changes introduced by the project will work in operations with appropriate handovers from the project team to the operational teams. The team does a retrospective to discuss the ‘Lessons Learned’ – What has worked well? What caused difficulties? What value and benefits were added? How accurate was the estimates? What should be done differently next time? These answers are an important feedback loop to continuous improvement.
Cycling through the iterations, the focus is on continuous improvement of the functionality, productivity and efficiency to optimize the use of funds and reduce waste. Through this constant cycle of adapting and learning, excellence becomes an reality.
Let’s Talk – Are you looking to achieve your goals faster? Create better business value? Build strategies to improve growth? We can help – make contact!