Solution development lifecycle with DWKit
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.
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.
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.
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.
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.
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.