An onboarding process is a crucial step across the board. But in software development the onboarding process is, frankly, not limited to the IT team only. Even though many in the industry see a customer as somebody “from outside”
Onboarding of a customer is the most vital moment in any software development project, for a ground up startup projects all the way to corporate legacy systems. That’s why we at Mad Devs play this close to our chest. We have a positive and clear customer onboarding process to ensure that you know everything about your project progress and how we work.
We are open to discussion, and we make sure all the processes are as transparent as possible.
Depending on project-specific features, the customer onboarding process template might change. Here, we are going to talk about the “fixed” parts of the process and take you for a ride on our customer onboarding process.
Customer onboarding process includes a lot of details
Before we start working on your project, we need to consider a lot of important details. Those are:
- The team (specialists, their seniority level, their roles, etc.);
- The stack we are going to use;
- Communication channels for the team and you;
- Management processes, and so on.
We start working on a project
We start our work by organizing a call with the participation of the team and the customer. Our main task at this stage is to elaborate a clear project vision and determine what specific problems the project shall solve. Along with these purely practical reasons, the first call offers a great opportunity to start building trust with the client and lay a foundation for further collaboration as a team.
We divide the project into stages and create a roadmap
The project manager divides the project into parts.
It is done to:
- Estimate more accurately the time needed to complete a feature or a function
- Discover so-called “black boxes” and prepare a plan to eliminate them.
Then, these small tasks are discussed with the team and prioritized. We assign a higher priority to the functions that solve issues. If a function is cool but it is not clear whether users will use it frequently, it gets a lower priority.
So, after splitting the bigger tasks into smaller ones and their prioritization, we can provide a roadmap on how we are going to work on the project. You can follow the roadmap to see the progress and check whether everything is going as expected.
We should mention though that the roadmap is not static. If the requirements of users or business expectations change, the functionality of the product will require changes, too. If it happens, be ready that the tasks, deadlines, and the project budget shall be adjusted.
Further, technical aspects of the project follow
We aim to be maximally transparent in technical details, too. Even if you aren’t an expert in software development, we want you to understand what every action means and why it is needed.
Why do we need to store code?
We use GitHub or GitLab to store code there. Of course, we provide you with detailed instructions on how to register in GitHub or GitLab and explain how to add new team members and DevOps engineers to the repository.
Why is it needed? For you to have access to the code. If you need to perform external code auditing, you can access the code without anybody’s help. If you decide to add somebody to the project or to change the team completely (we don’t want it but sometimes, it is just an objective necessity), you can access all the code.
Storing code in a single place, a repository, means the convenience of work for developers. It means that specialists will work more efficiently, and thus, will spend less time on tasks. For you, it means a faster release of product features and reduced costs.
Why do we create and maintain project documentation
Project documentation is important. It explains the project features and how we work on them. You as a customer get many benefits if the project documentation is created, updated, and stored correctly.
For example, a README file allows you or additional specialists to use the repository content without external assistance. With a README, new developers can be added to the team and start work on the project asap, without extended onboarding processes.
In reports, we:
- Inform you about the business value delivered during a specific time;
- Explain what features we have implemented and what issues we have solved
- Inform about the plans for the next period.
Every document is created with a purpose - to facilitate the development process and make every step as transparent as possible.
Why we set up CI
We set up CI that works better for your specific project and add our DevOps specialists to the repository.
The CI pipeline allows us to integrate changes to code in small parts. Every time a change is implemented, it is tested automatically. If any issues arise, we can detect and fix them long before users encounter them.
For us, a correctly working CI pipeline means less disruption, no bugs accumulation, and fewer issues with software in general. A server can run thousands of tests which is more efficient than manual testing.
For you, it means fewer costs spent (automated tests are cheaper than manual ones, needless to mention their efficiency), and a product every feature of which is bug-free and functions as expected.
Why task management is important
We use JIRA to manage a project. Why JIRA? It offers us the freedom to choose a SCRUM, a Kanban board, or both of them.
The Kanban board allows you to see the workflow. It is a To-Do, Doing, and Done board, and when we move the tasks from one status to another, you can see how the work on the project is moving on.
The Scrum board enables you to see the tasks in detail.
We set up communication channels
Communication is important at all stages of project development. So, we set up communication channels to keep in touch with all the team members and you.
We use Slack for all work-related communication and email to send reports and important project documentation. We add you to all channels, and you can participate in our discussions.
The majority of our customers are from abroad. Therefore, conducting offline meetings with them is impossible as frequently as required for a successful project. That’s why we use Hangouts and Zoom for synchronous meetings and Slack and email for asynchronous means of communication.
Testing is important at all development stages
Writing tests might take the same amount of time as writing code. That’s why it is important for you to understand why tests are needed.
Continuous testing helps us to detect bugs as soon as they appear and fix them. It helps to prevent bug accumulation and more serious issues in the future. If we do not test code, in the future, you will be spending more on bug fixes rather than on the actual product development. Technical debt will be accumulating. And in the end, it might come to the point when it is easier to develop a new solution than maintain the existing one. We are sure you don’t want it. That’s why we test everything after every code merge.
We use test cases and checklists, they help us to reduce the time needed for testing new features.
All in all, with testing, the development process moves slower, but in the long term, it helps to avoid many issues or reduce their number and ultimately reach success.
How we deliver tasks and document results
We work in sprints. A sprint is a specific time period within which we commit to complete a set of tasks. Normally, we work in two-week sprints. For us, this timeframe is convenient because it allows us to manage a good part of the job. For you, it is optimal because you can follow the process without being distracted constantly from your main tasks. However, if a project requires, we can select a different time frame.
A project manager sends you a new sprint plan for approval. Once it is approved, we move on with the tasks.
We prepare demo sessions regularly. For us, it is a way to demonstrate what we have done. For you, it is an opportunity to see what changes were implemented, how they impact the product, to ask questions, and to give feedback.
You have many ways to check the work progress
We prepare for you a detailed list with information about how to check the progress. There, we include the following details.
- Standups: every team member reports on what was done during the day and what is planned for the next day. So, you can track the progress every day in detail.
- Sprints: they are planned once every one or two weeks, depending on the project. During the sprint, you can check what is done and whether the team manages their tasks in a timely manner.
- Roadmap: you can see the plans for the project 1-2 months in advance.
- Comedian daily and weekly reports: you can track how many hours every team member logged and how much the team has managed within one day or one week.
- Monthly reports: in a monthly report, we include a summary of all works completed during one month, a detailed description of completed tasks and the value they deliver, and plans for the next month. This document gives you a detailed overview of what was done and what is planned.
Everything is noted in meeting notes
We register all our agreements and all meetings’ details in Meeting Notes. The notes are available for you whenever you want to check something or when doubt arises.
As you can see, we aren’t hiding anything. On the contrary, we want to make sure you know everything about our approaches and work. We, from our side, count on constant feedback. It helps us to create a product you are expecting to get.