Full cycle of IT product development on the example of a project: roles in a team, customer tasks, stages.
The internal kitchen of an IT product developer is multifaceted and always full of different tasks. In every project, people with different responsibilities find their way.
Using the example of one project, 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 performer.
Competent planning of the functionality of the future product and analysis of requirements play a key role for the entire project. This stage is the responsibility of the project manager, since he is responsible for the success of the entire development process.
Prior to product design, planning is “rough” because it is impossible to know the exact development progress at this stage.
After the UX / UI design is completed, you can draw up an exact plan for how the development will go and what functionality will be in the product.
After planning, it is 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 designers’ work.
System architects work with them to decide what structure the finished product will have and how it should behave.
Developers follow one of the methodologies – for the company it is mainly Agile. This methodology assumes 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 specialists perform different types of testing: unit testing, integration testing, interface testing, and others depending on the purpose. This category of specialists must come to the final conclusion that the product has no bugs and is ready for release.
The product can then be deployed and integrated with third-party software. The development process does not end there – it continues until improvements are made.
The finished product may need additional support, whether it be additional questions about the product from customers, or the need to make changes to the already laid down functions – support specialists are always ready to help.
Most development projects go through all stages of the above life cycle.
For example, we will take a closer look at the product development process on the current company project.
Stage 1: Idea
The customer is a state-owned printing company. All over the world this industry is going through hard times, but in the US, printing companies stay afloat thanks to innovative technologies. A printing company approached us with a request to develop an application for augmented reality – Augmented Reality, AR.
The US 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 those 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 wanted to license the 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 solution from Catchoom. Therefore, our task was to develop a suitable system in return.
Stage 3: Planning
The customer described the main functionality of the product before contacting us. The development team had to study the project idea and collect all the necessary requirements, identify bottlenecks, and document everything. Details of the project and technical details were clarified within each sprint.
The team that collects the requirements, evaluates the information received, the proposal, the development costs and the price, is called RFx. Typically, this team consists of technicians, a project manager, and a sales manager. RFx is valid until the start of the project.
The customer reviews the project estimate to gain a basic understanding of what the project will look like and how development will proceed. It also determines time and cost.
After the customer has approved the development plan and budget, the project can begin.
Project manager Alexander’s comment:
“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 product release, and use it in development of the most modern technologies. ”
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 vision 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 tasks of a business analyst;
UX / UI designer;
At the initial stage, the developers carried out testing on their own, without the participation of QA specialists. The challenge was to create a set of prototypes to demonstrate at conferences and attract potential clients. Then detailed testing was not needed.
When the development process got to work on the core functionality, the team needed to expand. As a result, it looked like this:
Business analyst with a wider range of tasks than the manager had before;
UX / UI designer;
team leader (Team Lead);
System architect who designed the product structure;
DevOps is the liaison between development and operations, working with the network and product deployment.
The head of the development team Igor introduced his innovations:
“In this project, I am responsible for completing project tasks, reviewing the code, planning sprints (development iterations), introducing new tasks. I suggested running unit tests with GitFlow and coding with AWS Lambda. I also bring new team members up to date, and I am responsible for their adaptation. ”
Joining Team Lead was an important decision, as he helped coordinate the development of the iOS and Android versions of the app and the web version so that everything moves in the same direction.
Business Analyst Flor says:
“Thanks to the organization of the project, my work was extremely clear and efficient. I processed customer requests and passed them on 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 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 team composition can ensure competent system development without errors.
Stage 6: Support
Support is usually provided at 3 levels:
First level. Basic help, at this level simple questions are handled that do not require much attention.
Second level. Extended help from staff with more in-depth product knowledge. They are not necessarily technicians, but they definitely know the product very well.
Third level. Expert level, carried out by experienced professionals: product managers, engineers.
There is also zero support through brochures and instruction manuals.
In fact, there is no time when the work on the software is considered completely finished. There are either new requests from the customer to expand the functionality, or support for the product users is required. For example, the client’s users had wishes to update the application and expand its functionality.
This project represents all stages of the development life cycle well. If we look at it in detail, work on any software looks about the same and often follows the pattern described above.