Solution development lifecycle with DWKit

By Dmitry Melnikov on August 13, 2018

In this article, we will describe the development process with DWKit depending on your solution’s lifecycle. We distinguish four key stages of project development: prototyping, MVP development, continuous improvements, and support.

For each stage, we will provide recommendations on how to configure your solution’s infrastructure with the help of DWKit.

PrototypeMVPContinuousimprovementsSupport
Type of changes Prototype MVP development Continuous improvements Support
Data model Many Average Few Almost none
Business logic Many Many Average Few
System settings Many Average Few Few
Release frequency Several private releases Regular releases and unexpected hotfixes Regular releases Rare updates with high criticality of service interruption
Importance of data safety Not important Important Critical Critical

1. Prototyping

Prototyping is the first stage of development where your task is to evaluate the viability of the project and show your business users that your team will cope with project implementation. At this stage, it is important to show users the key aspects of the solution while spending fewer resources.

Goal: Prove that the project could be implemented

Features: Several key features of the solution and 1–2 processes

Timeline: 2–6 weeks

Key factors: Time-to-market, minimal budget

Workplace configuration:

Since the users do not work with the system at the prototyping stage, we offer to use a common database for developers. It should allow you to reduce the time spent on the creation of a deployment script and ensure that each developer has access to the actual database structure. Changes to the development code and DWKit metadata (except AppSettings, Users, Groups, Roles, and Permissions) will be stored in your source control system. AppSettings, Users, Groups, Roles, and Permissions are stored in the database and are available for all developers.

Developer 1DatabaseDeveloper 2Source controlDeveloper 3

It is better to demonstrate the solution to users using a developer’s computer or moving the developer environment and database to a dedicated server.

2.MVP

MVP is the most significant stage that can determine the future of the project. At this stage users should start testing your solution or first commercial clients should appear. It is recommended to implement the production environment and tools for continuous delivery.

Goal: Implementation of key business functions that will enable users to utilize the developed solution

Features: Key features and critical processes

Timeline: 2–6 months

Key factors: Time-to-market

Workplace configuration:

When building an MVP you should ensure that each developer works with his own local database. The solution has an in-built source control system that allows to merge source-code changes made by different developers. DWKit metadata is stored in separate files in JSON. As a result, you shouldn’t have any difficulties merging data. To make changes to the structure of the database, commit scripts to source control in a single commit or pull request together with the development code. Besides, it is important to keep updated scripts to initialize the following objects by default: AppSettings, Users, Groups, Roles, and Permissions. It is necessary to add the production environment to your solution’s infrastructure to enable end users to work there. If you use the Agile methodology with releases that occur more than once a month, we recommend you to set up continuous delivery.

Web serverContinuous deliverySource controlDeveloper 3Developer 2Developer 1DevelopmentProduction

3.Production/continuous improvements

Your business users started utilizing the solution. Great news for your business! Now your major tasks are to fix possible issues and enrich functionality.

Goal: Enrich the solution’s functionality based on user requirements

Features: Key aspects and critical processes

Timeline: 1+ years

Key factors: Error-free, predictability of improvements, optimal level of technical debt

Workplace configuration:

The use continuous delivery tools becomes a necessity. A test environment is added. Sometimes system functions expand and it is necessary to divide the solution into separate parts. It happens when you decide to move to the microservice architecture when the core part of the solution’s functionality is already developed. At present, you will have to divide the solution into separate parts yourself. However, in the future we are planning to implement modules in DWKit. Follow our roadmap.

Web serverWeb serverContinuous deliverySource controlDeveloper 3Developer 2Developer 1DevelopmentTestProduction

4.Support

The stage of making active improvements is completed; now your major task is to fix existing errors if there are any, and prevent the new ones from appearing. The users can’t stand bugs in the system.

Goal: Ensure that the system works properly, using minimal resources

Features: All the needed functionality is developed

Timeline: Forever

Key factors: Error-free, stability of the solution

Workplace configuration:

Configuration remains unchanged. You still need to have development, test, and production environments.

Web serverWeb serverContinuous deliverySource controlDeveloper 3Developer 2Developer 1DevelopmentTestProduction

Conclusion

DWKit is an optimal solution for full-cycle development of enterprise systems and web apps. From a prototype to a production system, DWKit integrates easily with modern tools including source control, CI/CD, and supports modern methodologies, such as Agile and Scrum. DWKit allows you to easily move from a prototype to production with a predictable level of cost and fast time-to-market.