Change is the only thing that we can count on being constant and eternal. With changes come headaches, but also great opportunities. May I suggest a way of working that might ease your ongoing and coming technological shifts and give you the possibility to be one with the present?
You might have heard about continuous deployment, which is way of working in an Agile process where test automation gives the possibility to test committed code very quickly and release it to production without further delays. You get a short lead time between development and the release of new features in production. This also gives you:
- A lower cost when the invested time gives you benefit quickly, and with simply no warehousing of software
- The possibility to get out new features quickly
- The possibility to quickly change existing features and to correct bugs
But… it also puts some requirements on you that I will come back to later.
You too might have started to work with cloud-based solutions. We mainly use Azure as the base for our development, a nice environment that continuously grows in terms of size and capabilities. It gives us a modern base to build upon, several great features that we do not need to develop ourselves and a flexibility where we can change, test and deploy new systems quickly and with the press of a button.
Together with an agile process this gives an evolutionary way of developing and maintaining your software and systems. The work is continuous in small steps where you can evaluate the things you create in order to make adjustments and decisions for the next step. You are gradually changing the system to become better by adding, changing and removing functionality. Using a constantly evolving platform as Azure also forces you to do these adjustments and decisions as you can’t count on them to remain completely the same for all eternity. You simply must embrace the continuous change.
Initially this can be scary as you will not be able to make a complete plan. Software development is engineering, not production. This means that detailed planning which is appropriate for deterministic processes and linear scaling does not work well. Software development is a stochastic behavior and the complexity for detailed planning is huge, if even possible.
So, you need to work differently and embrace continuous change:
- Focus on the backlog so that you prioritize what is important and what comes next
- Focus on delivering to gain the effect of the developed functionality
- Focus on feedback from the users so that you can adjust/change your backlog items
You are a part of an environment that is going through a constant evolution and by making your software/system a part of that continuous change you can keep it relevant for your operations and/or your customers both now and in the future.
At Stratiteq we use Agile processes, and we keep the backlog for each system and project as the base for our development. This way we will be able to constantly adapt to changed and new requirements that our customers come with over time. We will also be able to utilize new technical features that the platforms release during the lifetime of a system, improving and many time simplifying our part of the implementation when the platforms get more and more capable.
So, let’s set up a vision together for what we want to accomplish, prioritize what is important and what comes next, and last but not least keep our eyes and ears open for the possibilities and capabilities that we can adapt and bring into the backlog when they are coming to us.
Head of Technology at Stratiteq
About the author
Fredrik is Head of Technology at Stratiteq and states that as most things remain to be done, we need to adapt change and continue our work along all possibilities that comes to us over time.