How do we work with clients and how do we develop their products?

The main source of income of DeepSource is our work with clients. That’s why we want to write more about what approaches we use during our work and what is valuable for us as a company.

Values

We consider our work valuable if it satisfies one criteria. The client product is not against common morals – for example we do not work on products containing and/or encouraging, porn, drugs, guns, gambling, hate and political manipulations.

The project chosen receives full dedication and attention from us. The things we expect from the client is to give us a very clear idea of the product what they want to be developed.

During our work we expect from both sides:

  • To be transparent to each other in our communication and clear and honest in our intentions
  • Testing and giving feedback on a daily-basis

We strive to help clients with advice on what’s most important from a development, design and business point of view so that we can develop a good product for the end user.

How do we start a project?

The approach really depends on the client because different clients have different requirements and different needs, but usually we proceed in the following way. If the client wants to work with us we prepare an initial offer. If they agree we sign a two-week contract and receive 50% of the payment in advance. In this way both the client and ourselves can be sure that if we don’t like each other’s work we won’t spend much resources. If we appreciate each other’s work, we continue with a long-term contract.

When we start our work we follow the following steps:

  • Based on what the client wants, we make a detailed plan and choose a reliable architecture and the best technological solutions.
  • The client will be dedicated an account manager and tech expert who will be by their side from start to end and provide all the support necessary.
  • A team of developers and specialists will be attached to their project.

How do we work?

The way we work with the client depends on their needs but if they don’t have any particular requirements we use the approach described below.

Project management

We try to keep things as simple as possible because adopting simple and easy to manage processes gives us space to focus on the more important things.

We use a few tools to manage the project we work on.

Asana – This is a project management tool we use to put all tasks the client wants to be developed. The developers and the client have access to it which means that everyone has a clear idea of where are we at the moment and where are we going to.

Google Drive – This is where we document everything related to the project. The client can see the progress of our work in real time.

We have weekly meetings within the team in order to sync the work between each other ,as well as weekly meetings with the client to sync the progress of the work and to receive feedback. We don’t have daily meetings because we try not to overwhelm the development process with lots of meetings which can distract us from the important things. If somebody has questions they can always check Asana or ask their colleagues. If the client or the developer needs a further coordination of our work, they can always initiate an additional meeting.

For the internal needs of the team we use a few additional tools:

Slack – This is a chat platform where developers and people who work on the project can discuss tasks, issues, etc.

Email – For major announcements and discussions we use email communication.

JIRA – This is project management tool used by the developers to manage the tasks in much greater detail.

For all communication channels we try to follow a few very important rules:

  • Do not flood the communication channel with pointless discussions. Be specific and short. Do not dive into long talks deviating from the main purpose – “discuss and find a solution”.
  • Try not to disturb the work of everyone if you have a question to a particular person.
  • Use email communication only if you want to email more than one person.

Releases

Releases give the client feedback about whether their software is being developed the way they expect it to be. We try to do releases as often as possible with short summary of what has been done that far. In return we expect feedback from the client.

Chat and conferences

If the client wants to speak with us they can always visit us at the office but if they want to have an online meeting we use Skype or Google Hangout.

The team

The people who will work on the client project could be people who already work with us or new people can join the company if particular knowledge and skill is required.