A former colleague of mine who was in enterprise sales used to always say, it's all about people, process and technology. I've found that to be a great way to frame how software tools not only get sold but also adopted. Having a great technology is only one small part of the battle for success. In fact, many companies become highly successful without having the best technology compared to the competition. Having a best in class product makes success easier, but it does not nearly guarantee success. Many piece are required to fall into place.
Process considerations are highly underrated. Many software companies clearly see the value their tool brings to their customers but they often don't see the changes that must be made in the way the target market adopts the solution. Making their customer's lives easier in one aspect of their job may introduce headaches in others just as easily. Making a change to accommodate another tool may be just too much for an already overstretched company to handle. Even if the result is a much more streamlined process, the initial cost of changing the organization to a newer process may be daunting in both effort and risk. Organizations may be experts at what they build, but may not be experts at instituting a new process that helps them get to their goals faster.
People issues always are the most dynamic and unpredictable. Organizations are made up of people who have their own MBO's and most importantly, their own personal agendas. Finding who owns the pain and who can alleviate that pain is critical. Often many initiatives fail to have a true owner, someone who has the skill, the fortitude and the necessary bandwidth to gain success. No wonder project success rates are abysmal. People are pulled on different projects as priorities change, and a string of unfinished initiatives are left hanging. Taking on an initiative also has its challenges. The risk of failure can be high and nobody wants to be associated with a failed initiative. Taking on risk is important for any company to survive -- but minimizing the risk through proper resource allocation, outside expertise and good planning is essential.
At Code Integrity Solutions, we have worked with many different customers in many different industries. It's amazing to see how such skilled individuals are being asked to do the impossible - to drive important initiatives in the face of constantly changing requirements. We've seen people responsible for numerous other important initiatives while also trying to drive a source code analysis intiative throughout a large organization. The challenges are great for companies trying to find solutions that satisfy not just their technology needs but also their people and process issues.