Instant gratification. What was once a pop culture buzzword has become the default for many businesses across industries. Customers have come to expect it, companies are striving to provide it, and the resulting impact on the software world has been swift and strong. The software landscape has changed drastically even in the last few years as a result of many factors. It has been shown that first-to-market software products can expect to garner 50-70% of their niche, while those that follow can expect to see a maximum of 20% market share. This fierce competition manifests itself in numerous ways, and it continues to lead to time-to-market innovations like continuous integration/continuous delivery, or CI/CD.
You see, with the move to the more fluid set of processes that form the foundation of CI/CD, companies are streamlining their internal workings while simultaneously giving customers what they want—better products, faster. As with any positive business development, there are some caveats and warnings to heed. There are also some tactics for speeding up your time-to-market that can be put into immediate use, and it’s to these that we turn our attention today.
1) Assess Your Software Development Methodologies
No matter your specific situation, there is undoubtedly a project management framework or methodology that will help keep your projects on target. With that said, only you know those specifics, so we’re not going to attempt to dictate which of the myriad methods out there is the right one for you. Rather, we’re going to give you a quick summary of our favorites that are proven to cut costs and speed time-to-market. We encourage you to dive deeper into those you feel might be appropriate to find your way forward to reducing this key metric.
Agile methodologies have become the dominant force in SDLC frameworks over the last 20 years. And for many companies and scenarios they can work fantastically. The sad truth, however, is that in many other situations it can fail. Hard. The majority of these failures can be chalked up to miscalculations, misunderstandings, and miscommunications on the part of the stakeholders pushing the Agile transformation forward, while others are down to the limitations of the methodology itself.
For instance, laser-focusing on “working software over comprehensive documentation” often gets teams into trouble. This is one of the tenets of the Agile methodology, yes. That said, it commonly becomes warped and twisted until projects are moving forward with very little documentation of any kind. This leads to stakeholders coming forward with “missing” components that were completely overlooked, or to the first working model of the app being incompatible with the client’s existing system simply because nobody remembered to check for dependencies.
This is why, when it comes to improving your next project’s time-to-market, assessing and truly understanding Agile and related methodologies is crucial. If you’re using a methodology that isn’t working for you, the time spent on rework, retroactively creating process documentation so you can find where the derailment occurred, and so on won’t serve you or your users well. Take the time now to assess the situation now and put in place processes, documents, and protocols that will work. You’ll end up getting that time back and then some in the end.
2) Be Selective in the Adoption of New Technologies
I think we can all agree that technology is pretty awesome. And the speed with which it moves is downright mind-boggling at times, never more so than right now. Here’s where one of those warnings comes into play—the latest and greatest isn’t always the best option.
Relying on tech to fix a botched deployment doesn’t work. Adopting cutting-edge technology into an environment that’s not ready for it is a recipe for disaster—often taking the form of infrastructure collapse and incompatible systems. Bringing emerging technology like serverless computing into a corporate environment where users are still using decades-old software versions will cost you in terms of set up and maintenance, while the majority of your users won’t be able to reap any of the benefits.
Let’s stick with serverless computing for a moment and look at an example. Serverless is often conflated with cloud computing for several reasons—mainly because it does, in fact, use cloud infrastructure for hosting and connectivity. The primary difference is in the payment model. With traditional cloud deployments, you pay for server space and bandwidth whether you use it to capacity or not. Serverless, on the other hand, means you only pay for what you use. Yes, there are still servers involved, making the name a bit confusing.
Now, say you’re mid-migration to a mixed-environment cloud model and someone wants to use serverless for the new version of your primary internal app. While the cost savings of going serverless are indeed attractive, you need to remember a couple of the major downsides of serverless, namely cold starts and latency. Both of these can introduce major delays in the app’s ability to respond when being hit with periods of higher traffic. And if this is the app used by 95% of the organization at the same time every day, you see where this is going.
Taking the time to thoroughly investigate new tech before implementing it will save you time and money in the long run. You won’t lose time as teams upskill and learn new platforms, languages, etc. And you won’t delay launch when an untested tool goes live and brings your network to a crashing halt taking your code with it. Sometimes the fastest route is indeed the route you already know instead of the fancy shortcut through a new development where you may find incomplete roads and unfilled potholes to dodge.
3) Think About Outsourcing
Far from its unsavory association with cost-cutting measures of 30-some years ago, outsourcing has grown into a legitimate option. Yes, it’s still true that you can save money over hiring internal teams, but there’s more to it than simply cost-cutting. You can easily bring on a ready-built team of highly-skilled developers, well versed in the newest programming languages and with their own quiver of tools, skills, and experiences. Outsource development teams are routinely called on to work on different projects for widely varying clients, so by default they develop a wider-ranging set of skills and abilities than captive teams can. This experience with a mix of environments and languages means it won’t take long to get the team up and producing code. With such a short spin-up time, you can have a working model faster than ever, imagine what that will do to your time-to-market?
With the explosion of online development bootcamps and other learning opportunities, these teams are springing up all around the world. And with that has come an uptick in nearshoring. This is where the outsourced development team resides in another country within your own timezone. Cutting delays and complexity associated with big time zone gaps in this way enables easy collaboration and quicker turnaround times, since nobody is waiting for anybody else to be awake and in the office as when teams are on opposite sides of the globe. Dividing and conquering the workload associated with a new project has never been faster, and cutting time-to-market has never been easier.
4) Whip Your CI/CD Pipeline Into Shape
If you asked your DevOps team if they have what they need for a smooth workflow, how would they respond? Would they immediately jump up and down celebrating and issuing emphatic “Yes!” answers? Or might there be a bit of hesitation before a slightly more lackluster, “things are going well, we guess?” Chances are, there’s something you can do to help speed the great work being done by this team, here’s how—get them the infrastructure they need. Not only today but going forward.
Here’s a partial list to get you started:
- Cloud servers for upcoming deployments
- The toolset to package and deploy to those servers (Docker, Kubernetes, etc)
- Automation tools (QA automation is a huge piece of the CI/CD puzzle)
- Version controlled repository (Git, et al)
Establishing a solid CI/CD pipeline will take work—on your part as well as DevOps. But the time savings you’ll begin seeing in your time-to-market metrics will render that work well worth it in the near future.
We say that because all the integration and efficient infrastructure you’re instituting now will improve overall communication and collaboration between teams, as well as between teams and external stakeholders. And as feedback loops shorten, downtime is eliminated as test environments will be ready and waiting since QA already knows what’s needed (for example). And finally, smoother iteration allows for cleaner code since devs are working on smaller chunks at one time so they aren’t distracted or drowning in the sheer quantity of code on their plate.
5) Automate QA Processes
Testing is absolutely critical to the SDLC. That said, it can also be a major bottleneck and time-suck when teams are tasked with testing new releases, patches, and updates to existing products at the same time. Unless they have discrete test environments set up for each scenario, much time is lost while the QA engineers switch over, only to switch back when the next batch of code comes in.
By automating early-stage QA processes like component, integration, and load testing; you ensure a more stable test environment and, by extension, a more stable codebase that’s ready for cutover at a moment’s notice. And that stable code base is what will allow your developers to get to work faster on the next iteration, thus speeding time-to-market as a byproduct. This is where the CI in CI/CD becomes noticeable. With less delay integrating tested code with the next layer, development projects are able to keep moving forward consistently. And that, in turn, is what enables the CD end of the equation to power reduced time-to-market.
These five tactics are in no way intended to be an instruction manual. Instead, think of them as guideposts pointing out waypoints you can implement as you’re able along the path toward a more sustainable and faster SDLC. Keeping customers happy with improved time-to-market has the rebound effect of keeping developers happy because they’re able to immediately see the results of their hard work. And that mutual satisfaction is what makes for more stable teams and more stable releases in the future.
Learn More About Intertec’s Software Engineering and Support Services
Intertec specializes in building and supporting custom software for its diverse clients. Our experienced team of interdisciplinary professionals have experience at all stages of the software development lifecycle. Click here to learn more. Prefer a personal consultation? Go ahead and schedule a meeting with us here!
Leave A Comment