In the energy market, which has become even more dynamic with the rise of the digital energy system, conventional approaches to project management are frequently seen as no longer sufficiently flexible, especially in regard to the development of custom software solutions. In the conventional approach to software development (sometimes referred to as the waterfall method), tasks are processed in a fixed sequence – from the collection of requirements to the go-live. The next project phase always begins when the previous one is complete. If errors go undiscovered during the project, it is often difficult to correct them after the fact. It therefore comes as no real surprise that agile methods are so popular in software development.
Seven2one has been using the Scrum method for software development for eight years. This method has enabled agile work with clients on projects such as TransnetBW and Stadtwerke Krefeld. What are the advantages of the agile approach, and what challenges can I expect to face as a client? This blog post summarises the answers to these questions.
Reaching the (project) goal in an agile manner
In agile project management, you make your way forward in small steps, with each step generating added value and benefits for the client. In development intervals lasting just a few weeks (referred to as sprints), our clients receive functional software increments that have already been tested internally.
Before the sprint begins, we first clarify the goal for the coming sprint together with the client. This consultation essentially revolves around planning the content for the upcoming sprints and getting feedback on the increments that have already been delivered. A feedback round takes place after each sprint, and then the next sprint is planned. Moving forward in this way in intervals that incorporate feedback early on makes it possible to identify and correct errors or misunderstood requirements at an early stage. The client can also change the prioritisation and thus also adjust the direction of the project on short notice. In this way it is possible to respond to changing conditions.
Conventional versus agile project management for custom software projects
At the start of the project, the solution has already been (precisely) defined in a functional specification, but this requires that the requirements remain the same over time
The overall project plan is specified in more detail and provides a legal basis for the expectation that it will be precisely followed
It is very time-consuming to update amended requirements in the course of the project
The client can only test the software at a very late stage in the process
This means that there is a risk that the project will fail at a very late stage
This solution is not optimal
The client is exposed to very high expenses at the beginning and end of the project
Functional software is delivered at an early point in time and on a regular basis
Greater flexibility: goals and plans can be more easily adapted to changing requirements
Faster time to market
The solution can better fit the requirements of the client and market
Significantly reduced risk of complete failure of the project
Greater transparency through close cooperation (regular planning and review rounds)
A disciplined approach creates great potential for savings
Relatively steady effort exerted by the client over the course of the entire project (coordination, testing by the relevant business area, installations, etc.)
Ultimate solution more difficult to predict
There may be less formal documentation
Inappropriate when it is necessary to use a tendering process
What are the advantages of agile project implementation?
Delivery of software components that can already be used
As a software provider, we deliver a software increment to you according to a mutually agreed timeframe. The software “piece” you get is executable. This makes it possible for you to receive a functional interim version that can already be used to preview the software and provide you with an initial impression. The software increments connect and interact with the other increments. The intermediate results can be planned much better by working through and meeting the requirements in short cycles. Errors can also be corrected immediately, and change requests for each delivered increment can be promptly incorporated. Overall, this approach greatly reduces the risk of not meeting the requirements.
No functional specification, but instead an approach guided by priorities
In the agile approach, you work strictly according to the specified priorities. As your project partners, we act in accordance with the priorities you have set. In our experience, the importance of the requirements in a project varies greatly. Accordingly, there are requirements that absolutely have to be implemented. Then there are requirements that should be implemented if possible. At the bottom of the hierarchy, there are requirements that can be implemented if the budget allows for it after the other requirements are met. The advantage for users is that they can influence the order of the requirements to be implemented in each phase of the project, ensuring that the most suitable result can be obtained for them at the end of the project.
Close cooperation brings about greater efficiency and transparency
In joint planning sessions, we work with you to specify the requirements and prioritise the short-term goals. Regular reviews – which take place after each software delivery, for example – ensure a high level of transparency regarding project status and additional steps to be taken. However, we not only ensure that your requirements are implemented but also analyse how we can optimise workflows and coordination processes in the project. In a nutshell, everything here revolves around highly efficient implementation and keeping the focus on the essentials.
What challenges are associated with agile methods?
There are two sides to every coin, so I should also mention the challenges and stumbling blocks associated with an agile approach.
Continuous effort in the ongoing project: Intensive cooperation and regular planning and feedback rounds are indispensable for an agile approach. An agile approach requires a greater level of uninterrupted cooperation from the project partners than a conventional approach. This is effort that you need to be aware of and appropriately plan for.
Agile projects need the right environment and mindset. It usually does not work to simply announce that “we’re agile now”. If a company decides to make use of the concept of agility, then it is necessary to embed this change as a mindset in the company. Specifically, this often involves a true paradigm shift in the way the organisation works, with entrepreneurial action on all levels of the hierarchy, a new way of dealing with mistakes and coaching instead of commands. Then nothing will stand in the way of an agile approach.