Technical Feasibility

37 prog-techincal-feasibility

Technical Feasibility is an essential step in the design process that ensures the proposed solution is feasible across the range of devices and platforms the application is intended to support. Surfacing these issues early in the process is more cost effective than surfacing during them during the development process.

Explore More.

Inputs:

Low Fidelity Designs, device and environment use-cases

Outputs:

Technical direction on design constraints

Validation of a proposed design needs to occur early in the design process.

A technical architect familiar with the capabilities and constraints of the selected platforms is in the best position to surface concerns that may impair the experience or cause implementation issues. It is generally best to perform this validation in the context of specific use cases and environments. For mobile users, this includes anticipated network conditions and the potential need for offline operation.

Mobile Applications

Mobile applications may be created with a variety of development technologies including PhoneGap (Cordova), Nativescript, Xamarin, and the native tooling for the respective mobile platforms. Each of these development solutions provides capabilities and limitations that the designs must be validated against:

  • The low-level design may describe user interactions which will be difficult to achieve with the chosen development technology or may not be well supported on all the platforms the application intends to support. This may require the selection of an alternate development tool.
  • Designs should be validated to ensure they respect the conventions of each mobile platform the application will run on. Some alternate development tools may provide a user experience that differs too much from the expected platform and will likely result in poor user satisfaction.
  • The proposed functionality may require native device capabilities that the intended development toolset cannot fully support. Even for applications intended to be developed with native tooling, the feature set available to mobile application developers differs among platforms.

Web Applications

Web applications are generally intended to run on a range of devices from phones to desktops. Each of these platforms have restrictions that the proposed design must be validated against:

  • Browser based applications generally have further technical restrictions that prevent them from interacting with device hardware to the extent that is available in a traditional mobile application. Designs must be assessed to ensure they are not dependent on device capabilities the browser cannot support.
  • The design must also be validated to ensure it will not outstrip the performance and rendering capabilities of the browser environments in which it will run. Business requirements may dictate the support of older browsers that cannot support the types of interactions that low-fidelity designs call out for.
  • An assessment must be made to ensure the proposed design renders with adequate speed on the range of devices by which it will be accessed. - The addition of mobile support brings with it the issues of network connectivity, which can result in poor performance over low bandwidth connections and the complete lack of app availability under offline conditions. The design must be validated to ensure adequate communication with the user is in place when these network issues inevitably surface.

Common Pitfalls

Organizations typically fail to properly identify issues that arise when implementing a design within a specific platform context. In most cases, it can be attributed to one of the following pitfalls:

  • Lack of early involvement - Failure to involve a technical architect who is familiar with the platform capabilities early enough in the design process is risky, as it allows too much design work to be completed and opens the potential for redesign. In some cases, this is taken to an extreme when the architect does not review any design during the design process. In these situations, the design team may have moved to another project. In these cases, it might be left to the implementation team to modify the designs to fit within the technical constraints.
  • Premature selection of development tools - Oftentimes, decisions are made about a specific development platform before the needs of the experience are fully identified. In these cases, there is a much greater chance that the platform limitations will conflict with the designs.