Development process - Lionk-Framework/Lionk-documentation GitHub Wiki
1. Initial Planning Phase
- Defining Objectives and Initial Architecture: Establish clear project objectives and an initial system architecture for Li/onk Core, considering the integration of various components such as sensors, displays, and other smart home devices.
- Creating the Product Backlog: Compile all necessary features, tasks, and improvements into a product backlog. Use user stories to describe features from the end-users' perspective.
2. Iterative Development with SCRUM
- Sprints: Divide the development process into 1- to 2-week sprints. Each sprint begins with a planning meeting where the team selects tasks from the backlog to complete during the sprint. As an example, the first sprint is planned using github project, issues and Kanban. It's available here : Project
- Continuous Development and Testing: Apply pair programming and continuous integration to maintain code quality and respond quickly to changes. Encourage test-first programming to ensure each feature is properly tested before integration.
- Sprint Review and Retrospective: At the end of each sprint, hold a sprint review with stakeholders to demonstrate developed features and receive direct feedback. Follow this with a sprint retrospective to identify process improvements.
3. Validation and Continuous Delivery
- Regular Deployments: Ensure regular deployments of functional software versions for continuous evaluation by end users, adjusting the product based on feedback and changing requirements.
- Data-Driven Improvements: Use collected data (e.g., statistics on dangerous situations) to continuously improve the product.
- Automatic workflow: Implement automatic testing and deployment workflows to streamline the development process and ensure consistent quality.
- Feedback Loop: Establish a feedback using channels such as github issues.
4. Adaptation and Scalability
- Continuous Evaluation: Integrate regular checkpoints to assess if the project aligns with long-term goals and user needs.
- Flexibility: Be prepared to adapt development plans and product features in response to technological changes and user feedback.
5. First plugin developement
**Plugin Development**: Create a simple plugin to demonstrate the process and provide a foundation for future plugin development.