December 6th, 2019 by Thea Maisuradze
In the following blog post, Sriram Rajagopalan - Inflectra's Enterprise Agile Champion, covers a number of key aspects of Agile Engineering practices. Among them are: technical excellence, general trends in agile engineering as well as practical recommendations for those how plan on undertaking a project like this.
This blog complements Inflectra's December 5th webinar on the same topic, with the webinar recording available inside.
Need for Technical Excellence
One of the important Agile postulates is the use working software as a measure of progress. Publicly releasing working software iteratively in small releases at a sustainable pace increases the value and benefits delivered to the customer. While program management emphasizes the continuous delivery of incremental, coordinated, and consolidated benefits depending upon the product being delivered, within an agile setting the product owner mostly focuses on stories related to customer value and business value. However, in the underlying technical platform that serves as the foundation for customer and business value stories, the continuous delivery of value-added stories is challenged. Hence, there is a need for specialized architect responsible for technical excellence. This professional should be a spokesperson, acting as a technical product owner, collaborating with the product owner and other stakeholders, championing the principles and practices that should be in place for any project delivery framework to be scalable, manageable, and sustainable.
Trends on Agile Engineering Practices
In reality,however, people get sidetracked by terms such as engineering vs. development, or principles such as coding standards and refactoring. The team wants to increase continuous integration but doesn’t want to have test-driven development with self-testing builds. When adding biases and preferences of tools that each team brings to the table without understanding the foundation principles that lay the groundwork for value delivery, agile becomes fragile and failure is like an accident waiting to happen!
These patterns can be found even in the State of Agile survey released by Version One. Comparing the agile engineering practices for a 3-year period from 2017 to 2019, one finds an increasing focus on emergent design, behavior-driven development, and continuous delivery. However, some concerns also effervesce to the top. For instance, the interest in unit testing subsides. This observation may be due to the result of tools getting better. Nevertheless, if unit testing subsides, conformance to quality may be delegated to other individuals creating a linear thinking. If coding standards do not take precedence, then refactoring may not happen effectively, thus increasing technical debt. Without test driven development and automated acceptance testing, continuous integration and continuous delivery may be challenged. But, the interest for continuous delivery increases while interest for continuous integration is reduced. These are patterns that indicate a lack of forethought when it comes to technical excellence.
Recommended Practices
However, there are a number simple practices that can help. These practices include
- a continuous strategic focus on the minimum viable product (MVP),
- proactive risk management to remove defects and build talent, incorporate cost of quality concepts holding everyone responsible for quality, and
- building the value delivery pipeline.
If you would like to get insights on these practices, please review the webinar below:
If you'd like to learn more about other agile webinars Inflectra is hosting, please visit our events page.
Good luck!