The full cycle of IT product development using the project example: team roles, customer tasks, stages
The internal kitchen of the IT product developer is multifaceted and always full of different tasks. In each project, people with different responsibilities find their application.
Using one project as an example, we will take a deeper look at the development process. Before that, I will describe all the stages of this process and the functional responsibilities of the employees in it.
IT product development life cycle
The stages of the cycle are described below, starting from the moment when the customer formulated his ideas to the contractor.
- Planning
Proper planning of future product functionality and requirements analysis play a key role for the entire project. The project manager is responsible for this stage, since it is he who is responsible for the success of the entire development process.
Prior to product design, planning is “rough” in nature, since it is impossible to find out the exact course of development at this stage.
After the UX / UI design is completed, you can make an accurate plan of how the development will go and what functionality will be in the product.
- Design
After planning comes the turn of UX / UI designers - specialists who design user interfaces. Designers study user behavior and build a human-readable interface. The visual appearance of the product is also the result of the work of designers.
Together with them, system architects work who decide what structure the finished product will have and how it should behave.
- Development
Developers follow one of the methodologies - for the company it is mainly Agile. This methodology involves a flexible iterative approach - that is, developers act sequentially, dividing the project into smaller tasks.
Agile iterations are called sprints, and one sprint includes work in all areas: planning, design, development, testing.
- Testing
Testing specialists carry out different types of testing: unit testing, integration testing, interface testing, and other types depending on the purpose. This category of specialists should come to the final conclusion that the product has no errors and is ready for release.
After that, the product can be implemented and integrated with third-party software. The development process does not end there - it continues until improvements are made.
- Support
The finished product may need additional support, whether it is additional questions about the product’s work from customers, or the need to make changes to the functions already laid down — support service specialists are always ready to help.
Most development projects go through all stages of the life cycle described above.
As an example, we will take a closer look at the product development process on the current project of the company.
Stage 1: Idea
The customer is a state-owned printing company. Around the world, this industry is not going through the best of times, but in the US, print companies remain afloat thanks to innovative technologies. The printing company asked us to develop an application for augmented reality - Augmented Reality, AR.
The United States Postal Service, which sends out printed transaction reports, provides discounts to partner companies that reduce paper consumption through technology. Our client has become one of these companies.
Stage 2: Contact
Company representatives contacted us to present their idea. They wanted an augmented reality marketing app. Before us, they used the Catchoom image recognition system, they also wanted to license a content management system as a separate product, but the company refused. In addition, the client wanted to add unique features, which was not implied in the Catchoom solution. Therefore, our task was to develop a suitable system in return.
Stage 3: Planning
The customer described the basic functionality of the product before contacting us. The development team had to study the idea of the project and collect all the necessary requirements, identify bottlenecks, and document everything. Project details and technical details were specified inside each sprint.
The team that collects requirements evaluates the information received, the proposal, development costs and price, called RFx. Typically, such a team consists of technical specialists, a project manager and a sales manager. Valid RFx before project start.
The customer studies the project evaluation to get a basic understanding of how the project will look and how development will be conducted. It also determines the time and cost.
After the customer has approved the development plan and budget, the project can be started.
Comment of the project manager Alexander:
“I am responsible for the continuous progress of the project. I chose the Scrum methodology to quickly respond to customer and market demands. Scrum helps us develop the product, take into account the needs of users in each release of the product, and use the most advanced technologies in development. ”
Stage 4: Design
The customer was open to any ideas of our designers and trusted the vision of specialists. The UX / UI designer described his view of the future system, based on generally accepted UX practices, the customer agreed, and the design began.
Stage 5: Development and Testing
The customer personally visited the company’s office to meet with the development team and get acquainted with the company’s management. In the first six months, the customer came once a month to establish communication, get to know the team better, and build trust between the parties.
At the first stage of development, the team consisted of:
- A project manager who also performed the tasks of a business analyst;
- UX / UI designer;
- development teams.
At the initial stage, developers conducted testing on their own, without the participation of QA-specialists. The challenge was to create a set of prototypes for demonstration at conferences and attracting potential customers. Then detailed testing was not needed.
When the development process came to work on the basic functionalities, the team needed to be expanded. As a result, she looked like this:
- Project Manager;
- A business analyst with a wider range of tasks than the manager had before;
- UX / UI designer;
- developers
- Head of the development team (Team Lead);
- System architect who developed the product structure;
- Testing specialist;
- DevOps - a link between development and operation, worked with a network and product deployment.
The head of the development team Igor introduced his innovations:
“In this project, I am responsible for the implementation of the tasks of the project, review the code, plan sprints (iterations in development), and introduce new tasks. I suggested conducting unit tests using GitFlow and creating code using AWS Lambda. I’m also introducing new team members, I’m responsible for their adaptation. ”
Joining Team Lead was an important decision, as it helped coordinate the development of application versions for iOS and Android and the web version so that everything moved in one direction.
Business analyst Flor says:
“Thanks to the organization of the project, my work was extremely clear and effective. I processed customer requests and conveyed them to the development team in an understandable and technically accurate way. I worked in tandem with a UX / UI designer, and our project manager was responsible for the negotiations, which gave me the opportunity to focus on my main tasks ”, as
you can see, the team needed additional specialists to solve the added tasks. Such a team composition can provide competent system development without errors.
Stage 6: Support
Support is usually provided at 3 levels:
- First level. Basic help, simple questions that do not require a lot of attention are processed at this level.
- Second level. Extended help from staff with deeper product knowledge. These are not necessarily technical specialists, but they definitely know the product very well.
- Third level. The expert level is carried out by experienced specialists: product managers, engineers.
There is also zero support through brochures and user guides.
In fact, there is no time when work on software is considered fully completed. Either new wishes are received from the customer regarding the expansion of functional capabilities, or support for users of the product is required. For example, client users had wishes to update the application and expand its functionality.
This project well represents all stages of the development life cycle. If we consider in detail, work on any software looks approximately the same and often corresponds to the above scheme.