Insights Into Federal Agile Transformation Q&A: Enabling Code Simplicity in the Agile Process
Welcome to the Makpar Insights Into Federal Agile Transformation content series designed to provide federal IT leaders with all of the strategic tools and insights they need to best leverage Agile development today – and into the future.
In this installment, we speak with Grant Moore, a DevOps Engineer at Makpar, who provides insights into enabling code simplicity in the Agile process.
The following conversation has been edited for length.
Q: Why is enabling code simplicity important in the Agile process?
When we think of code simplicity, it’s all about adopting the right frameworks. A common problem with application development is spaghetti code, which emerges when there’s no uniformity in how the teams solve problems. This leads to sections of code that are duplicated, and this issue comes down to everyone not using the same framework, or even the right framework.
In terms of the Agile process, it’s all about gathering the user story requirements, and breaking them up into manageable chunks. The Agile process is about breaking up Epics into stories, then breaking them up into smaller tasks. Each one of these stories is then an incremental change that you add to your application.
If the code is commented correctly, then any other developer can look at it and know what it does, and re-usable code is also very important for simplicity. It’s also important to code only what it absolutely needed to deliver the function.
Q: How is it possible to enable code simplicity in the Agile process?
Common knowledge and standardization are critical to enabling code simplicity. This comes down to training teams in several modern 21st century practices, then you standardize from there. This includes common ways to code and the ability to learn from each other with pair programming, which helps to create a unified way for creating code.
When it comes to how we do it, once we have the stories, we implement Behavior-Driven Development (BDD), where we have testers script out the tests and describe how the user will interact with the application. These tests become the acceptance criteria for our stories, and it is called Test-Driven Development (TDD). Also, built into the Agile process is an automated framework for when these stories will be completed.
Ultimately, TDD and BDD work together for simplifying the entire Agile development process.
Q: How is Makpar leading the way with simple Agile development?
This is part of the pragmatic empirical version of Agile development that we practice. We also tie in Agile Six Sigma. We believe that it’s more important to focus on what you are not doing, than what you are doing.
By simplifying everything, we also free up our developers to innovate, improve and to do more work. Our team does not need to do more work and chase down complications because we have automated everything.
We also have a modern, flexible and cost-effective stack, and we have the underlying processes to support this stack. This is a bleeding-edge approach, and we can do this because we are small and swift, and we can easily pivot compared to the larger industry players. In other words, we can quickly adapt to whatever the government customer needs.
Our automated playbooks also help with rapidly deploying code and putting it into production.
Stay tuned for our next installment in this series where we will focus on how to be an Agile DevOps leader.
Makpar is pioneering pragmatic Agile development for government through methods such as Scrum, Kanban, and Lean development. Our Agile practice minimizes communication gaps between Development and Operations teams by expanding DevOps-based automation to the entire development lifecycle. Please click here to learn more.