The essentials to building a successful project: How to satisfy your customer and stay happy

retail/BTW
5 min readJun 6, 2022

During the celebration of a long-lasting partnership with Ocado Technology, DataArt Retail has decided to share lessons learned from IT collaboration. It’s no secret that the IT project team consists not only of technical specialists but also of the customer and others interested in the successful launch of the product.

Nevertheless, many perceive the customer as a person outside the team. This leads to miscommunication and dissatisfaction with the final results.

The customer in the project is the person/people who know the product best and understands the value it creates. Customer believes in the project and communicates this importance to the entire team. This is possible only through close interaction at all stages of work: from idea to product launch.

Sometimes communication with the team can take a significant amount of time. For example, preparing and describing tasks. If the customer cannot get involved in the work as much as possible, it is better to hire a product manager or team leader who will have enough competencies to make decisions on product development and interact with the team instead of you.

The most efficient way to organize work.

Scope. Before starting work, it is necessary to determine the scope of tasks that must be completed by a given deadline. This is necessary in order to be able to build a work strategy and convey to the team a complete picture of the project.

Based on this, the project can be divided into several parts, each of which will consist of a specific set of tasks. Tasks will be split into smaller ones and distributed among iterations. This allows product development to be more flexible and allows you to easily prioritize tasks based on user feedback and other external factors.

Tasks should be started and described in the design environment. This should be one centralized place where all project participants should have access.

Roadmap. After you have decided on the list of tasks, you need to break down all the functionality by time intervals and set deadlines for them, which are then discussed and adjusted with the team.

Roadmap is a flexible tool, so deadlines and functionality may change depending on the speed of the team, user requirements and other external factors. Its main goal is a vision of further product development.

Prioritization. In order to make sure that important tasks are completed on time, when planning a sprint, tasks are prioritized. Priorities can be set both for individual tasks and for logically integral functionality — features. For example, if the functionality solves the main problem of the user, then it is a high priority, and if it is “cool to do, but no one will use it” kind of feature, the priority is low.

Sprint planning. In order to constantly see progress, as well as painlessly change the direction of the project, development is divided into sprints. Each sprint is planned by the entire team. A list of described tasks is prepared for sprint planning. Sometimes the discovery phase is required. In addition to the main functionality, there are other tasks in the project: creating autotests, solving technical debt, writing technical documentation, and fixing bugs. All of these aspects must be taken into account when planning and prioritizing.

Demo Version. Demonstration of the intermediate result from the team. Demonstrations can be performed at the end of each sprint, or at any other necessary frequency. The main purpose of the demonstration is to show what the team managed to accomplish during the sprint and to understand whether the execution meets the final requirements.

In demos, the customer gives the team constructive feedback and makes sure it’s documented. Also, on demonstrations, the team can analyze the past iteration, identify positive and negative points, and develop solutions for them.

Tasks Acceptance. During final acceptance, the team checks the quality of work by testing the functionality. It is important to review the volume of completed tasks every day. This will allow the team to put all the unfinished functionality into a new sprint.

Tasks acceptance will allow you to identify problems with the understanding of tasks by the team at an early stage and correct the descriptions of the tasks. In addition, without tasks acceptance, the task will not be closed and, accordingly, the team will not be able to complete the sprint.

Quality Assurance. Tests help to make sure that the functionality works and looks as it was intended, which is especially important when the system grows and it becomes very time-consuming and unreliable to manually check the entire system.

Most often, writing tests takes as much time as writing the code for the functionality itself. In order to speed up the process of writing tests, it is necessary to describe test cases and draw up checklists. When writing test cases, customer’s (or product owner) participation is required, since he/she knows best how the product should look like.

Usually, autotests are written along with the functionality. However, in some cases, the team can postpone writing tests to speed up the development of functionality.

Team Communication. Team needs to be available to communicate with each other in order to resolve issues in a timely manner. Communication should be transparent for all team members, so most discussions are best done in general chats.

There are usually 4 main sources of communication between project participants:

  • Slack / Skype
  • JIRA
  • Email
  • Calls / face-to-face

After each call or meeting, there must be a document confirmed by all participants. This is necessary in order to make sure that everyone received important information and perceived it correctly, without distortion. Also, the documentation ensures that participants not present at the meeting are up to date.

Transparency. Considering that the work is mostly done remotely, especially after COVID-19. Customer and team are not sitting in the office altogether.

Everyone has to count on the transparency of the team’s work and openness to communications. The minimum requirements for this are creating and configuring a project environment, including a task manager, chats for communications, and a repository. Everyone should always have access to what the team is doing.

Stay informed with:

  • Daily Meetups
  • Worklogs
  • Task Monitoring
  • Reporting

The key to the success of the project is honesty and transparency. Only in this case, there is a chance to finish the project in a timely manner and satisfy each side. Problems in projects can be very different, ranging from the fact that you may be uncomfortable with some specific team member to missed deadlines.

The good news is that most of the problems are solved by communication both within the team and brought up for discussion with the team’s management — with those people who signed a contract with you and promised high-quality work.

Happy teamwork!

Kind Regards,

Your DataArt Retail

--

--

retail/BTW

Retail is the Capital of Great Technology. Spreading knowledge about logistics, supply chain, IoT, ML and Data.