Software has brought us major gains in productivity and teamwork but often at a high cost. We have even come to expect software problems as a normal part of business.
It’s difficult for non-technical users and managers to understand software development and deployment as they often don’t know what questions to ask. They are unable to determine if software problems are caused by poor decisions or poor execution.
The following questions need to be asked by the business community to help establish a meaningful dialog with software developers.
1. Do we manage software projects in a way that helps us reduce risk and meet time and cost goals?
More and more companies are adopting agile software development techniques. Large projects are broken up into collections of smaller ones that are easier to manage.
Software teams deliver functionality incrementally and often. It is also important to establish metrics and track them weekly or monthly to help uncover potential problems early. Ask to see some of the data. What’s being tracked and how is it reported?
2. Are we following any established operating procedures and have we taken steps to adopt technology standards?
There are many resources available to help standardize operations. ITIL, ISO and CMMI are good places to start. Many companies are looking at Service Oriented Architecture as a way to compartmentalize software.
Don’t accept an answer such as “We follow Microsoft guidelines”. Blind reliance on the advice of a single vendor is asking for trouble.
3. What are the major complaints of the people who use our software?
This question can be asked about internal (employees only) or external (customer) software. How are the complaints logged and tracked? Find out what people don’t like and what’s being done to address their concerns.
Answers like “we’re not sure” or “complaints vary widely” suggest that there’s no process for handling user feedback.
4. How many problem reports do we get from our users per month and what is the trend?
Problems reports will rise and fall as new releases are distributed and other system changes occur. Between major changes, there should be a steady decline in problem reports. If not, why not?
5. What are the percentages of employees and contractors within the development organization?
It’s not unusual for companies to become addicted to software contractors. They just keep bringing people in as needed. Problems develop when contractors are kept on staff for long periods of time. Their numbers just keep growing until a tipping point is reached.
6. How many of our systems are aging and nearing obsolescence?
This answer will vary by system type. Mainframe computers can last for decades. Desktop and laptop PCs are usually good for 3-5 years. The key concept is asset management, along with an awareness of aging and possibly trouble-prone equipment.
7. What is the replacement cost of the software we’ve deployed and use regularly?
Replacement cost is a good number to keep in mind. It’s common for companies to want to expand the functionality of a piece of software only to discover it has to be replaced instead.
If a software application had to be replaced as is, that is, maintaining the existing functionality, would new software have to be custom written or could a commercial or open-source application meet the need? In either case, what would it cost?
8. What percentage of our software projects are late, over budget or canceled?
Software projects are notorious for late and over-budget delivery. The bigger the project the greater the likelihood that it will miss its goals. This problem is so bad that delays are often expected and people just shrug when the news comes out.
Continuous improvement demands that companies track project deliveries and develop an understanding of why projects succeed or fail.
9. Which of our competitors has the best reputation in software?
More and more companies of all sizes have external-facing software applications. They may be for use by customers, suppliers and/or partners. These applications can have a dramatic impact on people’s perceptions of the company.
Knowing who your competitors are and how well they manage their software has become a critical differentiator in many markets.
10. Have we outsourced any software functions and if not, why not?
There are many options for outsourcing some part of development operations. Most firms leverage external suppliers to reduce cost, improve quality, or accelerate time to market. The company should know what it costs to deploy and maintain every software application and what external suppliers would charge.
Software can be complex and difficult to manage. Knowing the answers to these questions will make it a little easier for everyone.