The True Agile Is Value Delivery That Never Stops
It just keeps going and going and going. If you aren't consistently and constantly releasing and improving product, you might not be Agile at all.
Join the DZone community and get the full member experience.Join For Free
Software can be shipped by deadlines. In that case, it has some value that does not grow over time. To make the app great, it must be continuously upgraded. This is what true Agile is about.
"The Definition of Done" is a complex problem for many software development companies. How do you know when there are enough features? Is it worth the time to implement a functionality nobody might ever use? How do you know if we develop a thing the end users will adore? Do we stop at MVP or should we continue to work on the product?
We think the only correct answer to these questions is following the Agile principles by heart and even more — executing them daily through DevOps workflow.
DevOps — Continuous Design, Delivery and Feedback Loops
The whole concept of MVP and shipping the product is faulty today. It worked 20 years ago, when developers were given 20 pages of Waterfall product specifications, had to meet deadlines, and almost never met their software in production. Today we live in a highly-connected world, where software development teams are in nearly constant contact with their customers and even end users, so they face the consequences of their choices immediately.
There are no deadlines for DevOps engineers. Well, not in a traditional sense. They do not ship the software by the deadline and throw it over the wall to be someone else's concern. They live by a "you build it, you run it" principle, so monitoring the software in production is still their personal concern.
Truly Agile developers have to provide maintenance, answer customer's questions, and gather feedback on the app's performance and functionality. Then, they are again the people that process this feedback and have to apply it to designing and provisioning new features, or by adjusting/removing the unnecessary ones. This said, true Agile software development is a continuous design process, followed by continuous feedback loops.
Why is this better? Because this leads to much more than shipping a product within the deadline and under budget. This product gets the job done and the team gets paid, and forgets about the product until the next update is needed. Then they get the next task for the next batch of features, complete it on time, and forget about the product once more.
Such an approach is predictable, reliable...and limited. It excludes iteration, communication, collaboration, permanent purchase of higher efficiency, the feeling of belonging and, ultimately — the customer loyalty. This latter is, undoubtedly, the most valuable part of success for any business.
When the customers see their questions answered, their feedback implemented in new features, their suggestions appreciated, they get the feeling of being a part of the team themselves, where everyone is a designer. This leads to building a continuously expanding network of value that is not limited to products, but incorporates customer relations.
Final Thoughts on True Agile
Developers used to interact with the end users through a sales representative 20 years ago, via a mobile app today, and will be doing this via Alexa or Siri tomorrow ... and maybe via an AI in a decade? The point is the developers should be in constant touch with the end users of their products and improve the design continuously.Design. Build. Test. Deploy. Monitor. Gather feedback. Repeat.
Sounds familiar? Yes, this is the DevOps paradigm.
Published at DZone with permission of Vladimir Fedak, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.