
Enterprise software projects are inherently about change and inevitably carry risk. Whether it is migrating an on-premise application to SaaS, designing a new application, or integrating several existing applications, the average software project can be expected to run over 200% late, almost the same over budget and deliver little more than half of expected business value and ROI.
“I have managed scores of software projects but this is the first one where I didn't feel like it was a black hole for IT resources or a crap shoot for success.”
-Enterprise client, Catalyst Resources London
Typically software development projects end up challenged, not because of technical mistakes, but rather from errors in the design of the application. For example, the information architecture misses mission-critical interdependencies, the back-end business logic/data is not validated to work with the front end user interface, the design components do not scale, or the application simply doesn't deliver value to users.
These functional design risks, if not identified and mitigated can derail the successful delivery of any business-critical software or enterprise cloud computing project.
Intelligent risk management
Risk management for software application design follows the same basic principals as risk management for financial asset protection. Identify the risks, their likelihoods, their importance, their downsides or upsides, how they compare/interact with other risks and how they can be managed.
The ultimate objective is to give organizations confidence in the decisions they make, the applications they deliver, and the assurances they give.
Identify the top risks
Catalyst Resources' work on over 350 SaaS and business-critical application design projects shows that the following risks are among the most critical to manage for any application design and development project.
Risk #1: Experience with applications
When selecting a team to design your application, ask what percentage of their experience comes from applications as opposed to web sites. As a simple rule of thumb, eliminate anyone that comes in under 75%.
Firms with most of their experience in web design are primarily visual designers. This is just one component (and not the most critical) of what is required to design effective enterprise applications.
Risk #2: No coded, testable prototype
Creating visual mockups in a imaging or quick prototyping tool is adequate for the product definition cycle, delivering initial feedback, and giving a good sense of visual design. But this is not sufficient for complex application design.
Before your in-house or offshore teams begin coding a final application you want a working, testable prototype of the primary design system, coded in your technology, linked to your backend, that will validate the end-to-end technical architecture and performance, as well as the visual design and user experience.
Risk #3: Screen-based design
The most common approach to UI design is custom screen-by-screen production. The designer builds screens/pages as they are planned. It is certainly a faster way to prototype and demo. But when it comes to deployment of a Desktop, Cloud, or SaaS application that is scalable and can be easily extended, updated or reconfigured, it is essential to re-factor the screens into a modular, reusable UI design system.
Using modular, reusable UI, developers will work faster, interfaces will be consistent across the application(s) so users will learn faster, and designs will automatically scale when you add new services or features.
Risk #4: Failure to understand users
For enterprise software applications, in the battle of form vs. function, function has historically been the winner. Applications are designed to support theoretical business processes, rather than how real users do work or how much they enjoy working in the application.
But understanding how users work and optimizing the user experience is not simply about form. The user interface is the tangible part of business processes that underlie the application. Streamline and validate the user experience and you streamline and validate the business process.
Failure to understand users and design for them, in addition to poor user adoption and high support costs, means failure to address inefficiencies, streamline processes, and increase productivity.
Risk #5: Failure to focus on high value
Application developers often talk about designing software around use cases. But while most applications are based on hundreds or even thousands of use cases, there are typically less than ten key high value user scenarios, from which users gain the most value.
Validating and building an application around high value scenarios translates to bottom line productivity and reduced support costs. Developers spend time coding and maintaining features that are actually used, rather than 'what-if' use cases.
Risk #6 Wrong presentation layer technology
When building complex business applications, there are many different technologies employed on the back end (both software and hardware) and many different requirements for transaction performance and front-end availability (web browser, desktop app, mobile phone and tablets).
Iterative prototyping with rapid application design tools can drive out and clarify these requirements. Too often though, due to the effort already spent on prototypes and the time pressure to turn them into the final system, developers use the prototyping development technology for production. The final deliverable then ends up incapable of meeting the full technical & design specifications.
To mitigate this risk, the application should be designed with high-speed prototyping tools that encourage revision until the definition and design is right, but do not lock in the final implementation. Before final coding, the design is re-factored into a modular, working UI kernel using the optimal presentation layer technology that maps to the technical architecture, levels of availability, and delivers the required performance.
Risk #7: Mobile is an afterthought
In most organizations mobile is an afterthought when designing enterprise applications. While business laptops and desktops remain the primary user platforms for in-office work, there is a growing shift to mobile phones and tablets for frontline workers, customers and work performed outside of the office.
Organizations need to design both mobile and browser-based versions of applications. Well-designed mobile apps extend and expand on the value of existing SaaS and enterprise web or desktop applications.
Risk #8: For SaaS, you design only the core application
With traditional on-premise enterprise applications, each touch-point where a user interacts with the product - e.g., signup, provisioning, training, etc. - is managed by sales and support staff. The software itself is designed to deliver only the "core" usage functionality.
But with Software as a Service (SaaS) many of these touch-points can and should be exposed to users in software via automation and self-service. Depending on the underlying business model of your application, there can be fundamental cost and productivity advantages.
Downside protection, upside competitive advantage
Businesses are always choosing what to do and how to invest its money, knowing these decisions carry risks. Identifying and managing the risks described above will improve the odds of delivering a software project that comes in on-time, on-budget, and delivers maximum value.
On the one hand you get protection from being blind-sided by projects that can't be designed, that miss functional requirements, that require rework, or in the worst case, that users simply don't use.
On the other hand, applications get to market faster and have greater functional impact, resilience, customer facing innovation, and competitiveness.