Maintaining enterprise applications can be very expensive, not to mention challenging from a quality perspective, especially if your organization is not large enough to use a commercial-scale services factory like DevFactory or other industrialized outsourcers.
With the right approach, organizations can save up to 50% or more in ongoing costs and improve quality significantly at the same time – all by wholeheartedly adopting proven principles of industrialization. Depending on how big your company is, this piece of mind can add up to millions of dollars saved that can be better invested in other areas to help you grow.
It’s important to approach improving quality and saving costs on software development like other key aspects of your business; you need to plan it from the start and you need to be ready to implement techniques that will help you save costs and improve quality.
Can’t Hire a Software Factory like DevFactory? Tips to Reduce Software Development Costs.
Unless you can afford to hire a true software services factory to handle software testing and maintenance, cost reduction and quality improvement may be difficult in the traditional model of IT services outsourcing – especially as overseas labor rates rise, and developer productivity struggles simply to maintain ground. That said, here are some tips you might use to move your IT organization’s processes toward proven industrialized programs:
1. Test Early, Test Often
Even if your release-to-production schedule follows a more traditional waterfall approach, the disruptive quality and cost benefits are only possible when automated and continuous testing is implemented. Imagine a factory assembly line where a bad engine is installed on a car, only to be discovered during the car’s first test run. All the assembly step are wasted (increasing cost) and the output of the factory is reduced (decreasing productivity).
2. “Stdin / Stdout”
Old school computer programmers will recognize this section heading as the “standard in” and “standard out” streams that computers use to communicate with each other. By being in a standard format, computer systems can make assumptions about how to talk to each other without a complex set of rules and one-off approaches. To think in a more industrialized way about your IT services, consider having standard project engagements that can be performed repeatably. It’s amazing how much more efficient things get when a repeatable process is used.
3. Embrace Agility
Agile software development is an approach to software development that is based on iterative and incremental development; the focus is on developing your software gradually by collaborating with stakeholders who can review your software, make suggestions, or approve smaller sections of the software, before you proceed.
Agile can mean different things to different people, but by focusing on the basic concept of iterative improvement, large projects can be tackled piece by piece. This can also help you give priority to needed functionalities. In other words, you can avoid adding unnecessary features that’ll only increase your costs, and you can instead focus on adding features that users of your software actually need.
4. Perform a Thorough Requirement Analysis before You Start
Make sure you have a clear understanding of what really needs to be done on your apps before you start. IT projects sometimes have a tendency to start with a high-level idea and work out the details as they go. This approach produces unbound project durations and results that may or may not suit the needs of the business.
One tip from the manufacturing world is to think about your Quality Control (QC) checklist upfront. Determine how you will decide when the work is complete with quality and use that to drive your requirements.
5. Change is Hard
The hardest part of making changes toward a more industrialized process may be your own organizational culture. Many organizations are averse to transparency, and the savings that come from the efficiency may cut against the grain in some silo’ed organizations. Everyone wants to do the right thing for the business in concept, but there are also realities of fiefdoms and politics.
This is one reason why organizational initiatives to adopt industrialized approaches often start with redirecting work that is already being outsourced to a third-party vendor. The emotion is removed and it becomes more about dollars and cents.
6. If You Can’t Measure, You Can’t Manage
So the saying goes… But imagine an assembly line process where nobody knew exactly what the productivity was at each step of the production? There would be oversupply, undersupply, and a general mismatch in operations. Many organizations generate Key Process Metrics (KPIs) but don’t take the next step to map day-to-day activities to those KPIs. The results? Undirected and inefficient work tasks that aren’t well connected to the actual results reported to management.
Here’s another clue: If it takes you more than 15 minutes to generate daily or weekly metrics for your projects, you’re doing it the old fashioned way.
7. Baby Steps
Shifting your organization (or those of your partners) toward a more scalable, industrialized approach takes time. Start with small steps that can begin the continuous improvement process and then expand from there. Similarly, start with a small set of applications or projects – and then based on success, expand the program. Even the staunchest nay-sayers stop and take notice when cost cuts in half and measurable quality increases.
If you are trying to save costs and ensure quality as you develop and maintain software, especially when you are not yet ready to hire an external software factory like DevFactory, these tips may help nudge your organization away from the status quo.