As we've been developing complex systems for a long time, we've managed to change a lot of approaches to organizing the work of teams within the company. We've tried giving more autonomy to project members, sometimes limiting and centralizing decision making and task allocation. As a result, we've developed a set of approaches that work best for our teams.
This is one of the most important moments in the development process - we believe that all participants: the design team, developers, and the testing team must understand the business problem that the project we are working on solves. It is also essential to understand the target audience, who exactly will use the project. Understanding these factors allows to avoid mistakes in development, for example, if you know who will use a certain report, a developer can understand in what format it must be created. Besides, this approach allows everyone involved in the process to offer new ideas for improving the system, regardless of whether it is in their list of responsibilities because everyone understands what they are doing this or that functionality for, everyone gets much more involved in the work on the project.
Communication between the development team and the client is crucial for most of our projects. If possible, we try to organize a "live" meeting in our office, so the client could see the team, and the team, in turn, could see who we are doing a project for.
In addition to mandatory moments, such as communication of business analyst with the client during the preparation of primary documentation on the project, we began to involve the design team at the stage of protection of visual materials on the project, the developers at the stage of the client demo and QA-specialists at the stage of training the client team to work with the system. As a result, the client understands who is solving his problem, and the development team becomes much more involved in the project.
An extremely important step in working on a project is to analyze the results of the work performed. Upon completion of each project, we conduct a retrospective, gathering all project participants and discussing what we did well, where mistakes were made, and how to avoid them in the future.
The retrospective - is a separate ceremony, for which there are many ready-made scenarios. Project analysis helps us to improve our system, on which we build all our developments - fdForge, supplementing it with functionality that is lacking in projects, as well as to accumulate collective experience. all results are recorded and when starting a new project a common list of positive and negative experiences from previous similar cases is analyzed.
Protection of a certain stage of work inside the company was a very important step which has greatly influenced the quality of the result, so, when submitting a design-mockup UI- team makes an internal presentation of their work to Front-end developers and business-analyst of the project, telling about the decisions made, finalizing all the agreements on the mechanics of the realization of certain moments. Specialists who accept the work and will be involved in it from their side can point out the deficiencies or missing elements for the acceptance of the work.
This approach has allowed us to:
The above items are largely basic, but they allow us to provide high-quality projects for our customers and partners, as well as train and develop our team, making the work on each new project the most interesting and at the same time effective. .
We hope that this information will help you to optimize your own projects!