Saturday, May 17, 2014

How Important are Engineering Practices to Agile?

The benefits of Agility are not sustainable unless engineering practices are adopted in the earnest.

Agile has been adopted in many companies, but the applications of engineering practices are rarely an agenda topic. How important are engineering practices to Agile. What are the essentials to Agile success?

Engineering practices are the core. Everything else is built on that. You achieve the ability to be agile in your software development by following engineering practices that allow you to adapt as efficiently as possible. Then things like Scrum and a more flexible mindset simply allow you to leverage the agility you've already built in.

It is essential to have engineering practices. A lot seems to come down to the culture of the technical team. If they are enthusiastic about technology and are up to date with best practice;  then usually engineering is high on the agenda. If the technical team is complacent or arrogant;  then they can focus more on planning meetings and less on the engineering side. If the feedback cycle is in place, then the need for good engineering practices should be discovered pretty rapidly. Getting a successful product into market is great, but if you cannot maintain that product over the long haul, then your company and product will fade away.

The benefits of Agility are not sustainable unless engineering practices are adopted in the earnest. So while practices related to business analysis and project management will yield quick wins, the optimal level of benefits and impact come in only when engineering practices are adopted. Agile is the software engineering management framework; design, code and test in the presence of continuous integration, automated testing and test-driven development are the software development framework. Without both in place, there will be at best marginal success and at worst, complete failure.

While agile principles are essentially about people, it doesn't mean that engineering problems such as refactoring, clean code and continuous integration can be ignored. The original signatories of the Manifesto for Agile Software Development thought it was important. As one of the principles is..."Continuous attention to technical excellence and good design enhances agility" 


Post a Comment