Netguru is a software company. We help our clients grow their business by helping them create digital products and services. Developers are at the center of our organization, so let’s have a closer look at their role in the projects we develop for our clients.
There are many different styles of client-developer cooperation. Some developers just stick to writing code and leave all the communication with the client to their project manager. And there are clients that just expect developers to provide them with solutions that they need, without any consulting or explanation.
But from my perspective, the most important role of a developer (and the most underestimated one at the same time) is to build a relationship with the client that founded on mutual trust and respect.
I always try to work with my clients as closely as I can. Of course, I don’t want to fill the shoes of the project manager. Not at all. But I believe that maintaining a partnership with the people I’m developing products or services for is the most effective way of client-developer cooperation. I encourage you to go further than just writing code.
Imagine that something in the project goes south. A feature was bugged and crashed the whole application, for example. When you have a strong relationship with your client, you can be sure that he/she won’t blame the situation on the lack of your goodwill. I assure you that the client will help you to find a solution to the problem. Because who doesn't help his/her buddies, right?
Maintaining a good relationship with the client is the most important job of a developer, but working efficiently with other team members is also extremely important. We work based on the scrum methodology. We’ve established a standard process of product development that I want to describe very briefly.
When starting a project, we establish in advance and plan every sprint we’ll have during the project. Such sprints usually last for a week or two. The important thing is that when we’re starting a sprint, every team member knows exactly what to do over the next few days.
During sprints, we usually have a short and very effective stand-up meeting every day to let everyone know what have we completed so far, what prevents us from moving forward, and what help we need to fulfil the assigned tasks.
After finishing writing the code for a particular feature, it is reviewed by peer developers. If everything is ok, it goes to staging, where QA specialists test how it works in real-life conditions. It is important to describe the way in which the feature should work with details. That makes the QA work easier.
When there’s something wrong, the whole process starts again with improving the code. If everything is ok, we schedule the release of the feature. The client can give their feedback and approval at this stage or check the feature in the staging environment.
The biggest team I have ever worked with at Netguru consisted of 10 developers. Small projects can be developed in a team of four people, but more complicated projects for enterprise clients could even be developed by dozens of developers.
I think that every project should have at least two developers working on it. It is always better to run your ideas by someone else, to check each other's code, to learn from one another. And the quality of the code is higher when working in a team.
Senior developers give their recommendations about the team set up, according to the client’s brief and budget. They talk with the PM and assess whether two senior developers are needed to fulfil this assignment or a senior and a regular.
Nevertheless, we never leave junior developers on their own. During their three-month trial period, we always team up junior employees with much more experienced colleagues. We give them a mentor – a person they can learn from and who will protect them. We don’t expect that a junior developer will be able to run a project on their own.
During those three months, a junior developer gets to work on two different projects – for a month and a half on each one. Thanks to that, they can gain relevant experience for more independent work with clients in the future.
The shortest period during which I was involved in a project was just a month. I was asked to help a team that was working for the client for a couple of years by then with one particular issue. After that, I moved on to new assignments. My job there was done.
There are some projects that will take only 3 months, especially if this means finishing something that was started by someone else and the client just needs us to finish the job or develop some particular features.
Usually, if we’re tasked with building something from scratch it takes from 9 to 12 months to deliver the MVP (minimum valuable product). Nowadays, if you don’t constantly update and develop your product or service, it means that it is basically dead. So those 9 to 12 months are just the beginning of a project’s lifecycle.
Netguru was founded 10 years ago, and we’ve been working with some clients for a really long time. Developing new features, keeping the product or service up to date and taking care of its UI and UX is an ongoing process that can last for years.
A developers' role in such long-term cooperation is crucial. The quality of our work is what makes or breaks the relationship with the client. And always remember that maintaining a partnership with your clients is your most important task.