Subscribe

Modern software factory strategic to success

Software that a company builds and delivers is at the core of how a business creates value and differentiates its brand.

Andrea Lodolo
By Andrea Lodolo, CTO at CA Southern Africa.
Johannesburg, 10 May 2018
Andrea Lodolo.
Andrea Lodolo.

Today, any company planning to continue growing its business either has a fledgling software factory under construction, or more likely, a legacy operation in dire need of modernisation.

Recent research CA conducted with Coleman Parkes shows companies that more aggressively adopted new approaches, such as agile and DevOps, saw a greater positive impact on their business.

For example, the study revealed that expanding agile practices beyond development to embrace the entire enterprise boosts digital transformation business performance by 33%.

Undertaking an honest assessment of a company's current factory is vital. The company must understand how software is created and delivered within it, and the depth of this examination and resulting understanding must go to the minutest detail. Take a look at the skills set in the company and evaluate if there is the right IP to build and deploy modern code. What processes and tools are in place to support high-velocity software development?

In order to acquire a valid and clear overview of all of this, take a step back and obtain a wide range of opinions from all sides of the business, including from resident sceptics. Clearly identify all the constraints that exist in the current system... they should stick out like a sore thumb! This means all the way from initial concept through to funding, design and delivery. Only when the gaps have been clearly identified and understood, will the company determine where valuable time and resources are best spent.

Embedding DevOps practices into the culture of a company was shown to increase performance, on the index developed in the study, by 35%. Why would this be the case? The answer is because it's these modern approaches that allow the company to deliver the trust, value, speed and reliability that customers demand.

No second chances

As I have already highlighted, far too many companies can't meet customer demands due to the way they currently manage technology. The traditional process-centric waterfall approach, with its emphasis on stability rather than rapid evolution, and coupled with project horizons that span months (if not years), simply cannot deliver the innovations customers want to see. Nor can this approach create the scale of software output required to satisfy the needs of a truly digital business.

Perfection just flew out of the window.

The process of software development and delivery must be transformed to achieve the key attributes of any modern production operation, which are: high throughput; consistent quality; extensive automation; and resource efficiency. The modern software factory is a good option that companies should utilise to attain their goals.

Let's take a step back first and reiterate: the key to digital transformation begins with understanding that the primary focus is outside the company, ie, its customers. So a change in mind-set is required. The software that is built and delivered is not an adjustment to the business; it's at the core of how the business creates value and differentiates its brand.

Plotting the future

In my previous Industry Insights, I explained how to create the building blocks necessary to transform a company into a modern software factory. The next step is to construct a map to the future.

As with 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 development teams, will help drive co-ordinated action; but avoidance of the 'lone developer' trap, which always leads to a dead end, is crucial.

The implementation of a rigorous programme provides a structured path that evaluates the implications of current technologies on a business and the identification of ones that will have major impact years down the road. The point of this approach is to ensure decision-making is easier and better informed. There needs to be an ongoing, productive conversation about innovation and emerging technologies that can be leveraged when critical investment decisions need to be taken.

So, wherever a company is in its software factory journey, it will need to make sure it has the right talent, tools and processes required for success. If the ducks are in a row, it will enable the systematic and repeatable delivery of ever-improving software experiences. Yes, at some point, the company will 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 not to panic and allow these potholes derail the journey. 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.

Also, there must be executive support throughout. With local companies, executives have been known to declare directives based on what they have heard, eg: "Go and implement DevOps and agile because we hear this is the new way to do things faster and smarter." What is missing is their support for this, as these executives usually don't really understand what is involved, and that they need to be a part of the process. Without that, most of these initiatives struggle and fail as a result. Then the executives just say: "Go back to the old way as this new way doesn't work." The executives make their subordinates responsible for the success or failure of the project in an effort to distance themselves in case of failure. What they don't understand is that without their support and participation, 100% of it, they may well be the cause of the failure.

So, it must be clear now that perfection just flew out of the window. There is no such thing in a world where bi-directional feedback through apps and services requires constant evolution to meet customer needs. Furthermore, every software factory will be different in composition. Standardisation is achievable in places, but not everywhere or all the time. The hard truth is some legacy pieces are best left in place to facilitate focus on areas where the greatest value can be derived from digital change.

In today's digital world, getting started on building, or renovating, the software factory has to be the first priority. Constant iteration and improvement are proven to be the only ways to get the work completed, and not just to the highest standard, but to meet the expectations of customers who are increasingly tech savvy and spoiled for choice.

Share