If you are rewriting a complex, internally-facing software application, applying human-centered design (HCD) practices is a key play for driving success with end users and management.
The Challenges of Rewriting
Many custom, internal applications were originally created for complex, custom business processes that couldn’t be satisfied through off-the-shelf software. After an initial, significant development phase, subsequent development is usually made as incremental add-ons with tight time and budget constraints.
There is usually not enough prioritization, time, or budget for add-on requests to focus on the application holistically or on overall quality. It’s not uncommon for IT maintenance teams to manage and perform update requests solely through digital request systems that don’t facilitate or encourage collaborative design or testing. When it’s time to rewrite an internal application, the user experience, technology stack, and code quality are usually extremely complex and woefully neglected.
Due to expectations of feature parity, significant undocumented complexity, and transition management considerations, I believe a successful rewrite project is more difficult and daunting than new product development.
A Better Approach
As a first step, get the right team to take on your rewrite project. Don’t ask an IT team that is accustomed to updates and maintenance to take on a massive rewrite effort. An experienced product development team, supported by key IT team members for infrastructure and integration expertise, will do a better job at scoping, planning, and executing.
A good product development team will apply HCD methods during your project’s scoping and planning phase. This will help refine and prioritize requirements.
Early in the scoping and planning phase, have your team’s lead designer and developer:
- Work with business stakeholders to identify the different functional groups of users, the value each group creates from use of the application, and the number of users in each group.
- Meet with and job shadow five to eight users (some is better than none, but value diminishes beyond eight) from each functional group to learn how the existing software is used. Identify:
- Goals and common use patterns over different dimensions of time (e.g. daily, weekly, etc.)
- Essential features and pain points
- Unused features
- Tools used outside of the system that could be beneficial to add or integrate (you may observe cheat sheets, sticky notes on monitors, data dumped into Excel and re-imported into the application, etc.)
After the lead designer and developer meet with users across functional groups, they can work to identify:
- Features that could be improved to increase efficiency, quality, etc.
- Features that can be simply copied
- Features that could be removed
- Cross-cutting features that are valuable to multiple functional groups
- Groupings of features that could represent a meaningful, intermediate release for one or multiple functional groups
Another added bonus of meeting directly with end users is that they will likely feel valued and invested in the project. Users will more likely be enthusiastic about the rewrite project when they are part of the change instead of having change forced upon them. You can continue to build enthusiasm and support by keeping users involved in design feedback sessions and also seeking their feedback on release plans.
The Benefits of Using Human-Centered Design Methods
By employing HCD methods, you will build goodwill and enthusiasm for your rewrite project. You will gain validated insights into possible, incremental release plans.
Incremental progress builds momentum, delivers value early, and increases managerial support. This approach is much more satisfying than the common pattern of simply updating technology, delivering a monolithic release (likely late and over-budget), and being bombarded by complaints about how the big upgrade missed the mark.