The Agile Mindset
The ‘Process Wars’ of the 1990s resulted in software development projects failing due to the emphasis and search for the perfect process. In 2001, a small group of thought leaders got together to discuss why the traditional approach to managing software development projects was failing, and so the Agile Manifesto was born. The Agile Manifesto has a few key messages, the most important being that we should value individuals and interactions over processes and tools.
Agile should not be thought of as a process but rather a mind-set of how to approach development work. With the Agile way of thinking, what happens is that you put a bunch of smart people at the centre of the problem and you help them figure out what the right process is for now. The process is not important, the process for improving the process is.
We take an iterative product delivery approach, adding consistent value and visibility on the progress of the product. By reducing the feedback cycle between the development team, customer and end user, we can decide as we go along what features are going to be in each of those releases based on what we learnt in the previous cycle.
We prefer failing (learning) faster and thereby reducing the overall product success risk. Software development is ultimately about learning and capturing lessons learnt into software intensive systems. If we only deliver your product right at the end of your development cycle, and if you’re only going to deploy it and deliver it once, then you’re basically committing to not learning anything for the entire development process, which is ridiculously dangerous. It makes more sense to figure out the risks and assumptions of what you’re doing and what you need to learn to be more successful, and then how to test those assumptions to ensure you obtain real-world feedback on whether what you’re building is heading in the right direction.
Once you have those feedback loops in place and you are developing your software against those feedback loops in small iterations, then you can have a sense of agility in what you’re doing. As you learn new things about what your customers actually need, the trade-offs that your product needs to make and what your competitors are doing, you can put all of that learning into what we are actually building. With smaller, more focused product releases we also achieve a quicker time to market. This shorter time period significantly reduces the costs of the project or product.
With the Agile mind-set it becomes clearer on what the actual resource constraints are, giving stakeholders and investors a better understanding of what kind of return they could expect.
Using this agile development methodology together with our agile development platform we can achieve a competitive edge, with WORKING SOFTWARE being delivered up to X5 FASTER than traditional custom software development.
When we construct software using an agile development platform we focus mainly on the use of existing software components. The application of automatic code generation, further reduces the development-time. Once again this positively impacts the cost of the project.