The Modern Software Factory is Key to Business Success
Why every company needs to modernize its software factory.
This content originally appeared on CIO.com.
Software has played an integral role in business for decades by optimizing the silos of sales, marketing, product development, HR, finance and so on. But in the digital economy, software isn’t just a mechanism for increasing the efficiency of your business; it has become the primary tool for engaging your customers. Today, delivering a seamless, high quality digital experience to your customers is the foundation of your brand, and ultimately, your business success.
The problem today is that far too many companies can’t meet customer demands with the way they currently manage technology. The old-style process-centric waterfall approach—with its emphasis on stability rather than rapid evolution, and project horizons that span months if not years—simply cannot deliver the innovations that customers want. Nor can it create the scale of software output required to satisfy the needs of a truly digital business. The process of software development and delivery must be transformed to achieve the key attributes of any modern production operation: high throughput, consistent quality, extensive automation and resource efficiency. What you need to attain those goals is a modern software factory.
Today, pretty much anyone who plans on being in business in three to five years—if not next year—has either a fledgling software factory under construction, or more likely, a legacy operation in dire need of modernization. Recent research CA conducted with Coleman Parkes showed that the more aggressively companies adopted new approaches such as agile and DevOps, the greater the business impact they saw. For example, expanding agile practices beyond development to embrace the entire enterprise boosts digital transformation business performance by 33 percent. And, building DevOps practices into the culture of the organization increase performance on the index developed in the study by 35 percent. Why? Because it’s these modern approaches that allow you to deliver the trust, value, speed and reliability that your customers demand.
Today, delivering a seamless, high quality digital experience to your customers is the foundation of your brand, and ultimately, your business success.
— Otto Berkes, CTO, CA Technologies
Wherever you are in your software factory journey, you will need to make sure you have the right talent, tools and processes required for success. A good starting point is to streamline the sequencing and orchestration of building, testing and deploying software. This change will enable the systematic and repeatable delivery of ever-improving software experiences. At some point you’ll encounter vestiges of old-school software development, such as defects discovered late in the life cycle, chronically overloaded dev and test environments, and, at times, a lack of transparency that challenges even the most efficient problem-solvers. The trick is to not let these potholes derail your journey and to recognize instead that digital transformation is a bumpy ride. Even agile itself will look messy compared to the neatly laid out—but seldom delivered—timelines of old-style projects.
In other words, forget about perfection. There is no such thing in a world where bi-directional feedback through your apps and services requires constant evolution to meet customer needs. You also need to recognize that every software factory will be different in composition. Standardization is achievable in places, but not everywhere or all the time. The hard truth is that some legacy pieces are best left in place to allow focus on areas where the greatest value can be derived from digital change.
The next step is to undertake an honest assessment of your current factory. Do you understand—to the deepest detail—how software gets created and delivered in your organization? Do you have the right skill sets to build and deploy modern code? Do you have the processes and tools in place to support high-velocity software development? To get a real view, step back and seek a wide range of opinions, including from resident skeptics. All the constraints in the system need to be made visible—from ideation to funding to design and delivery—for you to clearly understand your gaps and determine where your precious time and resources are best spent.
The final step is to build your map to the future. Like anything else in software development, this is part art and part science. Grasping the impact of new technologies as early as possible and developing and sharing points of view across your development teams will help drive coordinated action while avoiding the “lone developer” trap of heading down a dead end. At CA, for example, we have a robust and rigorous “POV” program that gives us a structured way to evaluate the implications of technologies on our doorstep today and ones that will have major impact years down the road. The program isn’t designed to make decisions but rather to make them easier and more informed—to ensure that there is an ongoing, productive conversation about innovation and emerging technologies that can be leveraged when critical investment decisions do need to be made. These are not elaborate publishing programs—but more like wikis where the risk of engaging in the discussion is minimal.
Getting started on building—or renovating—your software factory has to be job one in a digital world. The hard part is that there is no silver bullet. Constant iteration and improvement are the new way—in fact the only way—the best work gets done in a digital world.
The key to digital transformation begins with understanding that your primary focus is now outside the company and on your customers. The software you build and deliver is not an adjustment to your business; it’s at the core of how you create value and differentiate your brand.