Automating the automators

We have automated them, it is time to automate us

Pablo Iorio
2 min readFeb 12, 2020
Credits: https://www.pexels.com/@atomlaborblog

For the last 50 years, IT has been automating business functions; accounting, human resources, finance, rating, scoring, claims, among many others. The first decades, Software Engineering was largely manual with long cycles of development, manual testing and integration, especially integration. Followed by risky snowflake deployments. The definition of feature completion has been evolving over time [1].

In the last decades, we have been paying a lot more attention to automating the process of business automation. Software Engineering has been improving over time and productivity is higher than ever before. This trend has 3 major factors.

Frictionless development pipelines

Removing friction from the development process involves being able to provision resources quickly, automating the creation of new environments including masked data; being able to regression test your deployable without manual intervention and so on.

This leads to a set of practices to automate processes called DevOps. The first conference named DevOpsDays was hosted in Belgium in 2009.

Minimizing code inventory

Code inventory is source code that is sitting in the code repository that has not been released to Production yet. Similar to a car manufacturer having brand-new cars in stock. Hence, reducing the amount of code in flight at a given time will bring enormous benefits. We can accomplish this by reducing the release cycles and having independently deployable bounded contexts which coincides with the architectural principles found in microservices.

Minimizing inventory is not a new concept, we are talking about lean. The lean process is a method for creating a more effective business by eliminating wasteful practices and improving efficiency.

Fast feedback loops and adaptation

Having fast iterations and reassessing what is the most important for the next cycle will allow you to get rid of effort that is not required and focus on the essential.

Having rapid sprints and removing unneeded work led to Agile methodologies. The Manifesto for Agile Software Development was published in 2001.

Conclusion

IT is fairly new discipline compared with other branches of Engineering, and in many cases it feeds from other methodologies, processes and techniques that have been developed many decades ago in a different practice.

It is necessary to understand why these methodologies, processes and techniques are adopted. And why it takes so long to become mainstream. After well over a decade, they are here to stay and to improve the Information Technology industry as a whole.

References

[1] The evolution of the definition of done by Pablo Iorio

[2] Going Faster: Speeding up Software Development by Gregor Hohpe

Disclaimer

This is a personal article. The opinions expressed here represent my own and not those of my employer.

--

--

Pablo Iorio

I enjoy thinking and writing about Software Architecture. To support my writing you can get a membership here: https://pablo-iorio.medium.com/membership