The Greek philosopher Heraclitus of Ephesus (c. 500 BCE) is credited with saying, “The only constant is change.”
This is a statement that, more than 2,000 years later, still holds true. Today, we are in a time of great change.
Everything is in flux. The fact is, we are always in a state of change even if we are not fully aware of it. This is especially true in product development as this is multi-faceted. Product development is frequently experimenting with drastic innovation or process transformations involving better leveraging of tools, task automation, and AI. This shift has teams moving faster and delivering products at a sometimes dizzying speed. This is a future we must anticipate and embrace.
In a few years, when we look back on this era of software development, we will say this is when everything changed. We may not realize it today, but the leaps and bounds away from traditional slower development and delivery to rapid development and deployment are staggering. The eras with few to no easy and useful tools are gone. Tools are now simpler to use, available on more platforms, and are much more capable of executing complex tasks in new areas. We are in the midst of a paradigm shift.
A facet of this dynamism is that this rapid transformation is global. Around the world, organizations are busting out of old work paradigms. For the first time in my experience, these changes are universally impacting everyone at the same time. This is not a Silicon Valley or IT Tech Center phenomenon as has been the case in the past. Drastic modulation would be initially focused in tech hubs and would very slowly disseminate out. Even the oldest, most conservative companies, like financial service companies, who have a reputation for slow, super-cautious change, and being stuck in the past, are unexpectedly leading the charge toward blockchain.
We have been aware of the rapid state of development being commonplace for a long time. We have essentially learned it to be a constant. This rapid and exponential change is our steady state. This is what is gradually being accepted in software development. The old phrase, “That’s the way we have always done it here”, is now more likely to be followed by “and that needs to change” than “it’s the best way”.
Steve Jobs was quoted for saying, “If you don’t cannibalize yourself, someone else will.” It hearkens to the idea that you should not rest on your laurels, or stop trying to innovate. As the iPhone grew in popularity, it slowly replaced the need for the previously super successful iPod.
While it’s important to make sure that you are staying up to date with your practices, it doesn’t mean that your company should throw out successful products just for the sake of change. It instead means that you should reexamine how you make your product from a modern perspective. Look at modern tools, modern development infrastructure such as cloud or Infrastructure as Code (IaC), new staffing models, and new practices. Make sure your customers are getting value from every release, getting it fast, and that you are receiving and using immediate feedback from them. Perhaps more dynamic competitors are doing these things already. Every product has newer, faster, and cheaper competitors. The world has changed.Of all the companies I go to each year, I do not know a single development team today that is not already experimenting with serious changes to their development processes and trying new tools. Whether it is an AI tool or simply more sophisticated tools that are changing how they build and deliver products, I notice the same theme all across the board and it goes by many names: IT modernization, digital transformation, disruption, or simply progress! Many software and hardware product companies do not use the phrase “digital transformation”, they have been leading it. Regardless of what stage your company is in, make sure you are always progressing forward. If you are “coasting”, remember, you can only coast downhill.
From the not-too-recent past of “process documents”, “standard practices” or “best practices”, every organization is now continuously looking to get rid of outdated methods and experiment with lean practices of empowering the team to make local but not global process changes. Even though some of these radical ideas have been around for a while, in just a dozen years Agile, Scrum, XP Lean, and now CI/CD, and Continuous Deployment, have changed product development forever. Considering how few large turning points there were in the decades previous, this era has been overwhelming.
All this is boosted by modern tool development from CruiseControl in 2001, to Jenkins, and beyond. Pipeline Automation is revolutionizing all companies. You are either on the way to it or you will be left behind, what step you chose to follow next will have an impact.
Particular to our business, the biggest set of change has been in tool use.
Test Automation tools that range from clunky and difficult using proprietary languages with miserable test maintenance, have been replaced by astoundingly better Automation tools that easily fit into the organization’s tool chain and better Automation methods. Soon the Automation of tests may be automatic—we are progressing toward this at lightning speed. We, test engineers, are aiding in this rapid change. More and smarter Test Automation is powering many organizations to make the transition away from only manual, to more modern product development methods. Optimizing and re-running Test Automation is the first place AI is making serious inroads for development teams.
As the year comes to a close, we take this issue to look in-depth at trends and the future of software testing. It is important to take note that this is a special era. Whether it is new product development paradigms like blockchain, new thinking around tools using Artificial Intelligence, or to process changes, one thing is for sure, change is the only constant.