Software customization is an undertaking associated with a great deal of risk and uncertainty in the world of business. Investing in custom software is very different than purchasing off-the-shelf tools available in the marketplace. Whereas most standard tools are purchased with the expectation that they are stable, robust, and ready for immediate implementation, procuring custom software requires a very different set of logistics: business needs to account for development time and costs, as well as ongoing user feedback, maintenance, and support.
Many of the building organizations I work with have a story of a large IT implementation project that suffered from cost and schedule overruns. These anecdotes were supported In a 2012 analysis by McKinsey&Company which cited that, on average, large custom software projects run 66% over budget and have a feature shortfall of 17%. Prior experience and statistics like these do little to ease the mind of company executives who are weighing the risks and rewards of signing their next software contract.
Nonetheless, the successful implementation of a custom software solution that is finely tuned to the needs of a project or an organization will produce a significant return on investment, in both quality and efficiency of output. To achieve these types of desired results, assessing the cost-benefit of customization up front and following through with effective management strategies is absolutely critical.
The successful implementation of a custom software solution that is finely tuned to the needs of a project or an organization will produce a significant return on investment, in both quality and efficiency of output.
The following 4 tactics are important considerations for making sure a custom software project, large or small, stays on the rails and delivers value to the teams they are intended to support:
Engage with the Users
Some businesses make a huge mistake in leaving end users out of the software customization process until the final deployment. In the worst case, a business may invest thousands – or even millions – of dollars on developing a solution, only to discover later that users find the tool cumbersome, difficult to use, or failing to address their needs. Additionally, a new piece of software may require special attention to education and other change management tactics to bring people on board with a new process. Return on investment absolutely depends on users adopting the software into their workflow. Money spent on custom software is money down the drain if the tools are not having a positive impact on the user’s process.
Money spent on custom software is money down the drain if the tools are not having a positive impact on the user’s process.
It is my experience that customization works best when end users are involved in the process from start to finish. From the outset, user input can help to define the goals of the software. Throughout the development process, key users should be involved in testing the application so they can evaluate if the tool is doing what it’s supposed to do. Then when it comes to deploying the final custom product, if successful, these test users will be the ones championing its adoption in the company.
Start by Focusing on Goals, not Features
Goals provide a north star for the development process and turn the customization activity into a creative problem solving approach. There is a big difference between stating a feature and stating a goal. A feature definition describes what to make, whereas a goal will help you articulate more clearly what you want to do and why. Starting with the feature is like putting the cart before the horse.
Considering the following statements:
- “I want a button in Revit that opens up a dialog box that provides options for [x] then adjusts my Family parameters.”
- “I want to be able to save time in my workflow by automating changes to Revit family parameters.”
The feature definition is more prescriptive of what to make but it also closes the door on possibilities for solving a problem in ways that may be simpler or more cost effective. By stating the goal first, stakeholders can better understand what the user wants to do (“automate family parameters”) and why the user wants to do it (“save time”). In this case, we also have a measure of success to use when benchmarking possible solutions. Is a potential solution faster when compared to the original workflow, or to alternative approaches?
Make a Prototype
As I mentioned before, investing in custom software can be an uncertain and costly endeavor. We also know that companies in the construction industry operate on tight schedules and profit margins. So how can a business begin to take advantage of customization while also managing risk and cost?
I am a fan of prototyping. In fact, most of the customization engagements with clients at Proving Ground start with making a prototype. Prototypes are meant to be fast and relatively inexpensive developments that allow teams to quickly explore the feasibility of custom solutions, and in so doing prove the value of development. It is also noteworthy that, as computational design workflows become increasingly common in design practices, many clients are surprised to find that they are already working this way, as the Grasshopper and Dynamo tools that their design staffers create in-house are, in essence, prototypes.
Prototypes are meant to be fast and relatively inexpensive developments that allow teams to quickly explore the feasibility of custom solutions, and in so doing prove the value of development.
A more formal development cycle that pursues prototypes gains value through flexibility. If a prototype fails to deliver the expected results early on, then the business will have saved the time and cost of investing in a project that may result in a dead end. If a prototype demonstrates clear value, then the business can proceed with much greater confidence to invest in a robust, fully featured application. And sometimes a prototype reveals potential value in workflows that have not yet been considered by the design firm, opening up opportunities to pursue additional avenues toward improved quality and efficiency.
Execute Short Development Cycles, Assess Quality
It is no secret that I am a fan of agile project management approaches. In many ways, they most closely align with the most successful approaches I have observed in my personal experience in the building design process.
As with building design, custom software takes time to realize, and the best solution is often the result of iterative problem solving and discovery. Instead of following one long linear project plan, in this context it is better to build the project around short cycles of development where the development team can frequently gain insight from users, assess ways to improve the process, and adapt to changing requirements (and they will change). I have found that an agile approach allows us to significantly reduce misunderstandings while promoting continuous process improvement: both of which are essential for delivering a quality project both on time and on budget.
While the scope and scale of a project is important to consider when looking at costs – an enterprise resource planning (ERP) customization may cost millions of dollars for a large business while a plugin for CAD software may only cost in the tens of thousands – it is equally important to remember that the fundamental factors that contribute to the success or failure of a customization effort are the same, regardless of a project’s size or complexity. Even a simple add-on to a BIM tool requires careful attention to setting out the right goals, user involvement, and management structure to be a successful investment.
With the right process in place, business managers can limit the risks of implementing custom software solutions while maximizing their return on investment.
With the right process in place, business managers can limit the risks of implementing custom software solutions while maximizing their return on investment. Software customization can be a powerful way to fine tune operations and introduce differentiating capabilities that will grow a firm’s bottom line.
Are you interested in custom software?
- Learn more about how we approach developing new tools.