Basing on the gathered information, the analysis of requirements (functional and non-functional ones), goals and objectives of the project, one forms a list of project tasks, so called Product Backlog. It is formed this way: all the features to be implemented within the project are enlisted, all analytical material and client’s wishes are considered. This all is elaborated and organized as a structurized table of “User stories”.
This document contains a generated list of tasks with the following data for each:
- User history;
- Direction of development;
- Acceptance conditions;
- Business value;
- User roles;
Example of Product Backlog:
The development of the visual concept is the schematic design of working-model user interface for an IT solution on an interactive wireframe.
Wireframes’ development begins with drafts on paper. Thereafter, when the development team coordinated the drafts, the wireframe is rendered in an interactive (clickable) plan. In addition to the wireframe, the navigation map for project section, subsections and pages (screens) is made (the mindmap of the project)
The interactive wireframe allows:
- To test if the user interface and navigation is intuitive, simple, user-friendly enough.
- Determine the suitability of the user interface solutions for the tasks of the project.
- Demonstrate to the customer, investors, focus group, partners, etc. visual concept of the future product in the form of schemes for preliminary discussion.
- Lay the foundation for future graphic design (color, font solutions, animations, etc. will be worked out at the next stage).
- Become the basis for specifications development.
Wireframes are made as detailed as possible and should take into account the following: script errors, system notifications, intermediary pages (screens), etc.
The technical description of the project is being done alongside with the development of interactive wireframes.
First of all, a technical team led by the CTO determine the stack of technologies used on the project. It consists of:
- list of used technologies (PHP, Java, iOS native, React JS)
- a list of used frameworks, databases, ready-made solutions, libraries, etc.
- descriptions of integration with third-party services,
- API requirements,
- the general scheme of the IT architecture of the product.
The project manager also describes the product’s working mechanisms and scenarios, all the nuances and functional details. The scenarios of the interface’s are underpinned with technical basis and are described in detail.
A document is formed, which becomes the "road map" of the project and the main document for further accurate calculation of the cost and planning of subsequent development stages. Document example:
Sure enough, during the project’s implementation, this document can be modified and changed. Possible changes in: conditions, requirements, technologies, certain approaches, as a result of the team's constant work on searching for better solutions and optimizing the product.
As a result, at the first stage, the customer and the working team have project documentation at their disposal, consisting of:
• Analytical information (analysis of competitors, niche issues, portrait of users, etc.)
• List of functional (backlog),
• An interactive prototype,
• Project maps,
• System architecture diagrams,
• Terms of Reference,
• Requirements for the API.
All these materials allow us to begin the direct product development, as well as to make an accurate detailed estimation and work plan for the next stage. Usually it is the development of the MVP product.
Only when we have all the necessary documentation, we can prepare a detailed evaluation of the project’s development of the project and determine the exact time and cost.
If the project is not large (3-4 months) and no changes are expected to requirements and conditions of development before its release, we can fully fix the total amount and timing for its implementation.
But, when the project is quite large and complex, and in the course of its development it is expected that the conditions affecting its cost and terms will change (functional expansion, design refinement, code optimization, etc.), we make an accurate assessment before each iteration. We work on agile development methodology, where the development process is broken down into iterations, which, as a rule, corresponds to the monthly period. It is under the functionality planned for every iteration that an exact estimate is made. If iteration is equal to a month, the planning is also done, respectively, for a month.
Based on the prepared information, we create a table with a description of all the functionality to do and all types of work.
Understanding the duration and timing of the development of each functional unit will allow us to plan the project.
In cases, where the preliminary estimation exceeds the expectations and capabilities of the client, we propose steps to optimize costs:
- Reduction of project functionality for the first release,
- Orientation to a narrower range of devices, platforms, screen orientations,
- Using ready-made solutions,
- Use of simpler and less costly approaches and technologies.
All this can significantly reduce the cost of the project and enable the customer to test the concept of their product with a minimum acceptable risk.
Before starting the project planning starts, we compiled a backlog of tasks, defined the dependencies of each task on the other, and prioritized the tasks of complexity and business value, after which we had a plan for implementing the project.
Such a plan can be presented in the form of a Gantt chart to understand the timing of development.
When drawing up the work plan, we define the development team, as well as the involvement of each team member in the project.
Based on the involvement of the team, as well as the deadlines set by the clients, we determine the number of stages / sprints for the project, as well as the duration of each stage / sprint (basically the duration of each stage is the same and is 4 weeks).
After the team and the number of stages are determined, we take from tasks for each team member from the backlog in the region about 70% of his involvement in the project and the remaining 30% are allocated to another activity and to fix bugs for each stage based on its duration.
When we have already defined the team and compiled a list of tasks that are planned to be implemented at this stage, we plan to load the team in our project management system JIRA, where we expose all activities of the team in the form of tasks, plan holidays and weekends, as well as holidays that were also taken into account when determining the involvement of a team member in a project.
Next is the iterative development for the planned stages and with the plan drawn up considering all the dependencies that we have on the project, whether it's blocking tasks or holidays for the guys. At the end of each stage, we produce a finished product that can already be tested and shown to users.