Why should you care about accelerating time to market?
Time to market (TTM) is a metric that defines the speed with which you ship new products or new features of existing products to the market. Although executives use the term “time to market” across all business branches and at various levels of business maturity, we will use it here in reference to mature software products specifically.
TTM is the speed of rolling out new features or new digital product versions to the market in enterprises.
For organizations with established processes and usually a mature, wide-ranging, or ever-expanding products’ portfolio, it’s essential to keep software in line with their business tempo. Staying robust in the business game can be tricky, though, given the old applications’ performance and tech, organizational, or security-related legacy challenges that companies are trying to fight. Let’s then first examine which processes you’d use TTM for and how it helps assess them.
A crucial metric in the product development process
The time from feature or product change ideation to its implementation is an essential metric used to track product cycles and measure product development effectiveness. It helps realize whether the implemented workflow procedures are successful and introduce improvements.
Generally speaking, the faster the time to market of products and features, the faster the sales returns and profit realization.
The delivery of an improved product version to the market is a financial investment. So, the rollout of new features directly affects the break-even time of enterprises introducing changes in their products.
In practice, a longer break-even time for new features means that companies withstand more time in ‘an “investment mode” instead of “profit mode.” That’s the main reason why enterprises are eager to shorten their product development cycles, and hence their time to market. One of the ways to do that is to use a Return Map.
Thanks to the Return Map, you can see the effect of product development tempo on profits’ realization. In the context of fluctuating market dynamics and fierce competition, the last thing you’d want is for your solution to go to the end of your paying customers’ wish list. To keep users at your product, you are compelled to constantly introduce changes to it. Customers’ appetite for innovation is yet another force behind time to market pressure, as TCGen points out.
For many consumers, the incredible rate of innovation in mobile handset devices has set the expectations for a continuous set of improved features on a yearly cadence.
These are the external forces you have little effect on, but what can you do on your side to speed up the delivery of new product versions with updated functionalities? There are some solutions you can use both on the business and technical side, but before we get into that, let’s look at what can set your efforts back.
What can slow down time to market in enterprises? A few examples
Even though faster TTM is inseparably connected with largely uncontrollable market forces mentioned above, there is a surprisingly lot you and your teams can do to delay it.
Communication seems to be an obvious road to take in change and project management, yet it’s a surprisingly rarely traveled one. As the PMI Pulse of Profession study shows, if the average US $135 million is at risk in projects, more than half of that is due to poor communication. Quite a lot, isn’t it?
Insufficient communication of system changes and the inner workings within the change processes can create a real mess in your project. On the other hand, those endeavors that bet on good communication are more successful.
The impact of effective communications on project success. Source: PMI Pulse of Profession study
The direct reason for a longer time to market is a full-of-delays development process. There are many ways to sabotage the software development process, but IT projects show that code quality plays an important part. Suppose you’re experiencing some level of UX or tech debt manifesting itself in poor app performance. It may result from unaddressed issues accumulated in your product over the years.
Another example of what’s holding you back from optimal time to market involves outdated practices leading to higher legacy levels. Not every organization selling digital products has highly automated internal software development processes or DevOps specialists, but the perceived increased level of tech debt may soon force such adjustments in CIOs’ budgets. Tech leaders that represent the minority investing more in reducing tech debt than laggards are setting an excellent example of that.
Tech debt level and tech debt spending according to CIO survey. Source: McKinsey
Lack of product-focused person with decision power
In a perfect world, the Product Owner’s role is to take the product decisions and serve as a proxy between the client and the outsourced IT team. In reality, though, Product Owners’ responsibility is often effectively limited by other stakeholders, their real power being much lower. Another thing is that the idea of the product being developed is sometimes spread between various decision-makers which delays the final resolution even more.
If there is no person to act as an intermediary or the PO is working on multiple projects and cannot fully commit to helping the team, rushed decisions can lead to mistakes and delays, introducing unnecessary technical debt.
So, we know the examples of mistakes that can contribute to slower TTM. Let’s take a bird’s eye view of the solutions at your disposal.
How to reduce the time to market of system changes? Best practices for tech leaders and their teams
✅ Process improvement
The rollout of new features in an existing product is an excellent opportunity to look at the time to market effectiveness. That’s because without any analysis, shipping new features onto an existing product may negatively affect your user experience quality. To minimize the chances of releasing a distorted product on the market, it pays off to use feature branch workflows.
In these decentralized processes, you delegate feature development to a separate branch, uncoupled from the main branch, gathering all the changes. Such localization of changes facilitates developers’ parallel work within multiple secondary branches with no manipulation to the main branch until all commits have been pushed. As such, it postpones new features’ integration until they have been signed off and facilitates feature collaboration across teams through pull requests. Temporary localization of the work on features away from the centralized repository introduces order to the development process, benefitting multi-workflow enterprise platforms.
That’s the technical side of process improvement. But what can you do on the business side? For starters, if you don’t want procedures and formalities to block your teams’ progress, simplify the feedback flow in your IT projects.
From reduced Product Owner’s autonomy, through long approval processes, to bureaucracy and people’s inaccessibility, power relations can effectively stop your project in its tracks. Shorter feedback cycles and greater power of Product Owners will prevent that from happening. This way, you’ll rid your projects of institutional complexities.
Five layers of complexity in complex applications. Source: Nielsen Norman Group
Another critical angle to improving your processes is planning. It’s never a good idea to stuff your product vision with so many requirements that it lacks consistency and becomes bloated, sabotaging TTM. Instead of packing the product with every requirement everyone has ever come up with, prioritize them to choose only the ones that ensure minimal usability. This way, you’ll avoid the TTM pressure and focus on more realistic goals. If you’re looking for more planning-related tips for modernization projects, check out this article as well!
✅ Infrastructure adjustment
The main functions that mature companies’ software should fulfill are scalability and consistency. After all, you shouldn’t have to stop your organization’s growth because of rigid and non-functional technology.
What if you cannot add new features because the system is not flexible enough to allow it? Due to its spaghetti structure, obsolete software often prevents your product from scaling up fast. Another typical example is when your teams are overburdened with manual administrative overhaul, caused by system irregularities.
Your software should grow with your business and provide the level of consistency that enables maximal automation. Luckily, you can use some modern solutions: containerization and Infrastructure as Code.
On the one hand, containerizing your app together with its runtime environment ensures that it’s not locally dependent but externally configurable. That’s what the box-within-the-box structure provides.
Virtual Machines vs. Containers. Source: IBM
This greater independence, in turn, results in taking less space and memory and no necessity to start up another operating system along with the container launch. Containers’ maneuverability also ensures a wide choice of environments or clouds to use. Microservices are not all roses, though.
You can achieve the decentralization benefits only when containers go hand in hand with a more profound system upgrade, not just a “lift and shift,” as IBM notes.
3 software modernization strategies
In turn, infrastructure as Code builds IT infrastructure based on code consistent enough to be automated and used across different environments. It gives you a significant time gain, as “an IaC code generates the same environment every time it is applied.” Without the need for manual environments’ adjustment, your teams can speed up the deployment. Aside from the automation potential, the very possibility of working on infrastructure like you work on the code is another time-saver. A way to go, isn’t it?
✅ Software quality
If you know your app’s tech debt is immense, you may be wondering where to start. It’s a common problem with apps suffering from overengineering, where the code is dirty, and architecture is too convoluted. To overcome complexity, first, examine the code quality level. Perform a routine preliminary clean-up which includes removing unnecessary dependencies and redundancies and performing programming languages’ and libraries’ updates.
Apart from introductory modernization clean-ups, you need to do regular code reviews. They facilitate structured work on the code, showing the priority labels for specific to-do items. You may also go for a more visual representation of the changes to be made, e.g., in the table form.
Both clean code practices optimizing your apps and early and regular code reviews pave the way for automation. Whenever possible, it pays off to introduce it, reducing the time spent on tasks and eliminating the risk of human error. To that end, have your teams use automated tests in conjunction with manual testing. The bonus to gain is the time for development work.
Automation will free your teams from the need to perform a quadrillion of repetitive tasks, letting the system do it for them more efficiently.
- Automated API tests
To ensure the highest quality of your APIs and catch bugs as early as possible, go for automated API testing. The thing with errors is that the faster you identify them, the less work goes into eliminating them. So, automating your Test-Driven Development makes a fundamental difference for your time to market goals as well.
One of the tools you can use is Postman. It’s versatile across multiple environments. What’s more, project managers can use it just as well as QA experts. It’s that easy. When utilizing automated API tests, foster communication between developers and testers, as the latter will have to validate API endpoints quickly.
- Automated E2E tests
The end-to-end test suite, used in Continuous Integration processes, is a more expensive choice, but its benefits are also worth noting. Among the various types of software tests, E2E tests simulate user flows to check if they function the way they should in response to user behavior.
As the name suggests, end-to-end tests verify the functioning of your platform comprehensively from beginning to end. The main challenge of the E2E test setup is efficiency. These tests can require high maintenance and run slowly. One way of going around that is to select only the most valuable user actions for end-to-end testing, as Martin Fowler notes. The example he gives is the check-out phase in an e-shopping platform.
Another challenging aspect of E2E testing is that you cannot always have access to the ideal testing environments, or in some cases, to the system. In such situations, try to emulate the production environment as much as possible, focusing on reflecting business processes in testing environments, staging, and development. To counteract these limitations in automated mobile and web testing, use Cross-Browser Testing and BrowserStack to access real devices and browsers in the cloud.
- Manual and automated regression tests
Regression refers to a situation where something that used to work doesn’t function properly anymore. Regression tests ensure that the last changes in the code leave the rest of the code untouched. While conducting regression tests, QA experts make sure the changes in effect work harmonically with the whole platform.
Three main functions of regression testing:
- Ensuring that after a bug has been found and fixed
- Scanning the platform for any side effects of the introduced changes
- Checking if the last corrections have not broken the functionality that used to work
The upside of regression tests is that you and your teams can verify if the new features require further tweaking and adjustments or if they can stay as they are. It’s a way to go if you want to prevent unwanted changes from messing up your platform. One of the tools you can use for regression testing in the Jira setup is Xray. Remember to plan your regression tests before major releases and make sure you also use automation to speed up your workflows.
As much as code changes are important, don’t forget about those who will use the new features or a revised product. Users will be the first to let you know your software is outdated. So, don’t be tempted to rush the TTM without considering their usability needs. UX shortfalls accumulate in products constantly, so treat UX debt management as a routine part of the enterprise game.
Whether you have in-house users or paying customers, gather as much information as possible to enhance the development process. This way, you won’t have to go back later on to improve usability, thus delaying TTM anyway.
✅ DevOps processes
If your teams are just kicking it off with DevOps processes, but still you’re looking to accelerate TTM pronto, now’s the time to go full speed. The latest GitLab 2021 Global DevSecOps Survey shows that 60% of devs perform code releases twice as fast as before, owing to DevOps. Let’s look at what you have to gain from it, then.
- Cloud-related system optimization
While cloud computing is the backbone of modern and time-effective software development, migration to the cloud should not be a goal in itself. It’s only the beginning of your journey towards faster software development and reduced time to market. The difference between advanced cloud adoption and simple migration to the cloud is well captured by McKinsey & Company.
(...) companies tend to fall into the trap of confusing simply moving IT systems to the cloud with the transformational strategy needed to get the full value of the cloud.
There is a fundamental difference between simply moving your systems and infrastructure to the cloud versus optimizing your processes and executing full-swing organizational change that results from upgrading your software.
If your system is on AWS, for example, but you’re still executing tasks manually — and your true cloud capability and automation are still limited — you may be doing more harm than good to your solution.
The cloud is an answer to many of today’s business challenges, like scalability and market robustness. Still, it is also a fierce commitment to automation, upskilling, and modernization, all of which present their challenges. So, to reap all the benefits of cloud computing, you may need to verify your readiness for software modernization.
Automation has already been mentioned a few times here. It’s a true time-saver for software engineers. It’s also indispensable in agile release management. Aside from more stable (error-free processes), automating the releases of new accretions at the end of a sprint will allow you to have multiple releases per day. It’s crucial for apps with hundreds of dependencies that convolute and slow down the development. Use tools like Gitlab Pipelines and Terraform to achieve these benefits and maximize user satisfaction from quickly-delivered new features.
In modern software development, you simply can’t do without Continuous Integration/ Continuous Delivery pipelines (CI/CD). CI/CD comes in handy when your project tasks exchange hands and when some disturbances disrupt the workflow. The benefits of CI/CD are worth the effort. Your teams can say goodbye to increased downtime and manually-performed tasks while embracing innovations and more optimal processes faster than the competition.
(...) the CI/CD pipeline is a method that builds, tests and deploys code by using automation. The impact of this type of pipeline includes more frequent and reliable updates to software and applications and a more collaborative, agile workflow for DevOps teams.
The Continuous Integration/ Continuous Delivery pipeline. Source: IBM
If you’re struggling with obsolete enterprise software, consider using APIs. They simplify backend communication by providing access to important data and creating personalization opportunities, as McKinsey notes. You can use tools like GraphQL to obtain precisely the data you need and complement it with caching and lazy loading on the frontend to improve performance scores. Here are some recipes for using APIs to your advantage:
✅ Team management
Even if you have the perfect product solution to implement, it may not be possible to deploy it quickly due to limited team capabilities.
New solutions and functionalities and the related deployment automatization often bring to the fore team-internal limitations.
A lack of knowledge necessary to instigate an effective digital transition may be a barrier standing between your outdated solution and the more robust, modernized product. In such a case, you should sketch out a development plan and reorganize the team make-up to best reflect the current needs. This may include outsourcing external experts like Quality Assurance specialists, software architects, or designers to strengthen your ranks.
A dedicated team changed the client’s way of thinking about the project from features’ micromanagement to concentrating on priorities and milestones.
Agility ensures you can quickly rise up to the demands of your external or internal users. It is what differentiates market leaders from laggards. It shows in the speed of reaction and elasticity to new challenges per arising business needs. Let’s take a look at how to make your operations more agile.
5 tips on how to introduce more agility into daily software operations
- Use the fast-fail methodologies like Scrum or Agile
- Exchange regular feedback after introducing new features
- Make a record of all software issues to solve
- Foster communication across various teams
- Use workshops to gather product intel
We’ve implemented better procedures and practices. What’s next?
Becoming a more agile organization that’s responsive to market needs is a must today. Even though faster time to market is already a seismic shift for organizations struggling with legacy system setups, it’s only the beginning of the road ahead. The bigger picture is maintaining the constant value of your software operations, products, and team dynamics. That’s why you should adopt the quality practices mentioned above not as a one-time undertaking, but rather as a long-term investment that’s bound to pay off.
All caught up in upgrading your product and processes? See how we helped other companies address similar software modernization issues!