Methodology Overview
- The project's team lead had limited time and needed some relief.
- The project, which could confidently be called a super-app, was sizable. Typically, it took new developers 3–4 weeks to fully understand the work. We needed to speed up this process.
What to consider as a component
Advantages of this methodology
- Team leaders spend less time on the project since they don't need to tackle high-level tasks like reviewing every feature's code or assigning blame.
- All team members know how each component works because everyone has access to the roadmap, specifications, and video presentations, which I'll detail later.
- Getting up to speed on the project and understanding the components takes less time, accelerating development.
Roles and responsibilities in the team
Teamlead | Feature Owner | Developer | Заголовок 4 | Заголовок 7 | ||||
---|---|---|---|---|---|---|---|---|
Assigns feature owners. Approve roadmaps crafted by owners. Conducts code reviews for the component when it’s ready or when merging the component branch into the dev or release branch. Manages Git workflow. |
Develops Component Roadmap. Updates Roadmap as needed. Updates documentation with input from analysts. Develops and executes tasks related to the component. Refines and resolves bugs identified during testing. Assigns tasks among developers. Conducts code reviews for tasks completed by other component developers. Compiles builds for testing. Presents the component. |
Develops and Executes Tasks. Refines and fixes bugs identified during testing |
Нужен блок | Нужен блок с табличкой для статей на вихре | Нужен блок | Нужен блок | Нужен блок с табличкой для статей на вихре | Нужен блок |
Feature owner's role in life cycles
- Breaking down the application into components.
- Creating an Epic for each component.
- Assigning a Feature Owner to each component.
- Establishing a task pool for each component.
- A component branch is created and named according to the convention "components/component-name/task-number-component-component-name" or "components/auth/MPB2B-123-component-auth."
- Tasks related to the component are added to the backlog.
- The Feature Owner develops the component's Roadmap, coordinates it with the team lead, and adds it to the Epic. Coordination with the team lead ensures consistency in component structures and prevents reuse.
- All tasks must be executed according to their lifecycle (see the following list).
- After completing all tasks, the Feature Owner submits the component branch for code review to the team lead.
- After code review, the team lead merges the branch into the release branch.
- Additionally, after code review, the Feature Owner builds the release branch and hands it over for testing.
- If testing reveals defects, the Feature Owner addresses the bugs.
- The Feature Owner creates merge requests with fixes for defects directly into the release branch.
- The Feature Owner presents the component to all team members.
- The presentation is recorded on video.
- The Feature Owner updates the Roadmap.
- The video presentation is added to the documentation, and a link is included in the Epic.
- The project manager or team lead selects tasks from the backlog and adds them to the board.
- The Feature Owner creates a branch from the component branch, named according to the convention "components/component-name/tracker-task-number" or "components/auth/MPB2B-123".
- The Feature Owner begins working on the task. If there are many tasks, they distribute them among themselves and available developers.
- If a developer is working with the component for the first time, they first open an Epic and familiarize themselves with the Roadmap and the specifications.
- If the task was worked on by the Feature Owner, once completed, it's merged into the component branch. If another developer works on it, the Feature Owner reviews the code.
- Tasks marked as "Waiting for test" are assigned to a tester for evaluation in the task tracker.
Component documentation
- Description drafted by the analyst.
- Name and contact information of the Feature Owner.
- Link to documentation approved by the analyst.
- Link to the Roadmap and technical description of the component.
- Link to the video presentation of the finished component.
3- The video presentation is essential for ensuring all team members understand how the component functions, the value it brings, and where its scenarios begin and end. These insights are crucial for grasping the overall context of the entire application.
Closing thoughts
2- Our contentious issue was recording a video after implementing a feature. While initially stuck to the plan, we abandoned this practice for subsequent projects.
- The team lead indeed began spending less time on the project and focused solely on critical tasks, allowing more time to be allocated to other projects.
- The project documentation proved helpful right from the start. On average, a new developer spends 20% less time researching and communicating with other developers to understand how the feature works.
- As a result, we ended up with a fully documented project. Even if we return to it in a few years, we'll quickly recall how it's implemented, avoiding spending too much time on familiarization. And if another team starts working with it, it will be a manageable task for them.