Choosing a Software Product Development Partner: Why Strategy, Customisation, and Scalability are Important

By Nikola Krastev - September 3, 2020

How does Customertimes’ Product Development as-a-Service differ in nature from other services traditionally provided by an IT Consulting organisation, such as Systems Integration, Process Automation, and Enterprise IT solutions?

First, let’s consider the different characteristics of a tailored, single-customer system implementation compared to a product that will be used by a wide audience. Then we will examine the impact of those differences in each system-lifecycle stage.

Complexity of product development, as visualised in the The Mythical Man-Month.

Product development vs Single-Customer System

Consumer audiences

Products built by us, as a PDO partner serve the customers of our customers – usually there is little to no direct contact with the end-users of the system.

Training and onboarding of users is usually self-service or indirect, achieved by guide wizards and on-screen help pop-ups instead of manuals. It involves a higher level of self-explanatory UI engineering characterised by simpler interfaces.

On a single-instance system, which is tailored for a specific known user group of internal employees, there is an option to train those users to work around known defects or incomplete functionality. However this is completely unacceptable for a proper product system.

End-user product audiences most often cover a large age or computer-literacy demographic, meaning that software products need to be able to support different modes of interaction.

“Product Grade” system

A Product Grade system needs to be 100% self-service from installation to troubleshooting.

Environments must be available at all times in order to support the usage habits of its audience. They must also be able to support a large number of devices, browsers, OS, and personal configurations of the underlying systems where the product operates.

Modern software users expect the software to “learn” and adapt to their manner of usage rather than the other way around.

Distribution and support

Support for end users is a part of the product service offering here.

Rollout and customisation of products are often handled by 3rd party implementation partners: they install the product on a customer environment and sometimes extend it. From the PDO’s point of view, the implementation partners are a user audience of their own and the design principles for self-servicing apply to them as well.

Rather than releasing by deploying code in a specific environment, PDO practice works predominantly with marketplace/app-store mediums. This involves rigorous security reviews, extensive installation testing, and parallel support of different versions.

Since the partner doesn’t have direct access to the environments on which the product is running, the transition to new versions involves careful planning and testing. All possible states in which the product may exist must be considered in order to ensure that multiple versions are supported.

Customisations

When we talk about extensible software products, we consider different levels of customisations:

  • Predetermined product settings configurations
  • Meta-data
  • Localisations
  • Extensions of data model
  • Alternative integration modules
  • Code plugins

Products favour controlling encapsulation of their controlled elements and extensibility of the codebase by uncontrolled code by means of inversion-of-control mechanisms. These include strategy and subscriber-producer OOP patterns, dynamic service discovery, and dependency-injection.

Scalability

Scalability cube

In terms of both future-proofing and volume-scaling, software products are far more sophisticated than single-customer implementations. For example, hosted micro-services must be segmented and automatic tenant provisioning must be in place so that newly installed instances of the product can work with their own data-segments as soon as the installation is complete.

Product Development Service Life-cycle

Discovery and Ideation

We guide and assist our customers in clearly defining their:

  • Business vision
  • Go-to-market strategy
  • Target consumer audiences

And produce for them:

  • Prototypes and demonstrators
  • Risk and cost assessment
  • Delivery roadmaps

Customertimes’ specialised Product Owners drive these activities to help our customers maximise the value and return of their products. The Product Owners, unlike Project Managers or SCRUM masters, are solely dedicated to designing products and managing stakeholder needs.

Analysis and Specification

Whether the project is iterative, incrementive, or up-front, lean or detailed, structured or visuals-centric, each project is unique. The optimal approach to analysis and delivery depends on many factors, including:

  • Size and complexity
  • Go-to-market strategy
  • The nature of the project (i.e. if it is a UI tool for communication or a web-service computation provider with a public API)
  • The maturity of the product
  • The investment approach

The tendency, however, is to have product development projects documented to a higher level of detail.

Implementation

For product development, the preferred engagement type for our customers is a self-managed development team. FDD and Dual-track Agile SD approaches offer the flexibility of iterative design and requirements changes while maximising development efficiency and removing the need for direct customer involvement in development activities.

Validation

A software system, which relies solely on tests to be validated, is fundamentally prone to unexpected errors. This is even more true for products, where all possible states, supported versions, customisations, user preferences, running environments, and data combinations can not be fully tested. To ensure a high-level of reliability, architecture reviews and analytical correctness verification must be completed as part of the implementation process.

Apart from the variety of methodologies and individual skills that factor into each project, it is the PDO organisation’s internal quality standards that play a crucial role in the predicted reliability of a software product. Customertimes adheres to the highest quality standards and ensures that each project is validated and implemented correctly.

Release and Upgrade

We use a combination of different techniques to deliver the most efficient, user-friendly release cycles based on product specifications:

  • Release trains
  • Long-term supported versions in conjunction with minor releases
  • Push updates
  • Remote configuration to disable modules
  • Blue-Green environments
  • Beta early-adopter releases

Support

The User Support of a particular product is an expected service, part of the product offering. In the case of software products, high-level automation and self-service are required.

Retiring/Replacement

Retiring and replacing a product requires careful planning and forethought. Terms of services and length of service support should be considered and under-written.

Individual out-of-warranty support can be arranged on customer-to-customer basis by the Customertimes team.

Conclusion

While building a software product is nothing new, it is important to recognise the increased level of complexity, effort, and planning involved in reaching a wide user audience and providing a product-grade level of user experience and self-service.

The value of a PDO partner is not only found in the technical know-how and the professionalism of the implementation team. Rather, it lies mainly within the strategic advisory service provided to the customer and the product-centric thinking, in which their practice specialises.

Customertimes has received PDO Specialist Navigator status. We implement real-world solutions to today’s business problems, and our deep knowledge of relevant software products and tools across any industry allows us to help our customers put the right product strategy in place, at the right time. If it’s time to consider a PDO partner that brings more than just implementation to the table, visit Customertimes.com

This post was originally posted on LinkedIn.

Nikola Krastev

Nikola Krastev is Engagement Director and Head of PDO practice for Customertimes. Nikola specializes in Architecture of Distributed Systems, Micro-Services and SOA, as well as Technology of SD lifecycle and optimization of rapid development methodologies. His professional career in Information Technology spans nearly 20 years, and he has a large portfolio of successful software projects ranging from start-up products to large enterprise eco-systems.