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
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.
When we talk about extensible software products, we consider different levels of customisations:
Predetermined product settings configurations
Extensions of data model
Alternative integration modules
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.
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:
Target consumer audiences
And produce for them:
Prototypes and demonstrators
Risk and cost assessment
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
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.
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.
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:
Long-term supported versions in conjunction with minor releases
Remote configuration to disable modules
Beta early-adopter releases
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 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.
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
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.