IT outsourcing: Java, С#/С++, .NET, Python, JavaScript, React, Go

Seldemirov Aleksandr / 19.07.2019

How to estimate IT system development time?

How can a client be sure that the payment for the development guarantees the same amount of working efforts, and all declared time is used for solving the task?

Such a question wording is typical for us and not typical for the West. Such a question has a presumption of distrust. If a client does not trust, then he usually solves it as follows: put all the programmers in the office while naively thinking that if a developer spent 8 hours in the office, then it means he worked. Using such an approach for programmers is wrong. It is very difficult to evaluate time they spend because developers are similar to creative people; they are like artists or writers. Senior Developers quickly understand methods, algorithms inside a program and development tools, therefore do everything faster.

What does a programmer working time consist of?

The problem of a developer’s working speed should be solved. A developer’s work is evaluated not in hours, but by its efficiency.

There are main components of a developer’s working time:

  • Writing the code (takes up to 30% of the whole working time of a developer)
  • Idea creation process
  • Intellectual process inside the brain
  • Architecture modelling and construction of each element
  • Designing of the implementation using the code of the given task

A difference between working in the office or at home, from the efficiency point of view, is that a developer is not distracted. Because if a developer gets distracted from the intellectual working process, then he would need even more time to return to the same process and completely immerse himself in the context. For example, Yandex company provided for developers small fenced rooms for 6-8 working places, where it is prohibited to talk to each other. Therefore if we look deeply inside of the working process of a developer then we will understand that it is of utmost importance to provide for a developer an opportunity for work and not to distract him. If this is office work, then it is better to schedule some meetings and stand-ups at the beginning or at the end of the working day, or schedule some negotiations in advance in order for a programmer to save a result of his current work and resume working after coming back.

An evaluation of labor efforts and making a client sure that work is being done are typical questions as:

  • How can a client be sure that there is work progress?
  • How can a client get the result he needs considering constant changes and improvements?

To answer all these questions, a story of short runs was invented. A client checks a developer’s work in short intervals, usually once in two weeks, without distracting him from the working process. In such a case, there is a chance to correct a programmer’s work if this is necessary. It is easier to correct mistakes if they happened within the last two weeks instead of the last half a year.

How to be sure that a developer works with maximum efficiency?

If there is only one developer solving the task, then it’s very difficult to do it. One needs an evaluation by an expert who would confirm or not confirm that the amount of time allocated for the task is correct. When a team starts working, especially a team with quite strong specialists, then the evaluation is being done by the whole team. The team can see how the team and the Team Lead are strong, how efficiently they can find a weak member whose work does not match the pace of the whole team. Underperformance of one person immediately sticks out from general context and it is possible to work on it. It means that the team has a quite experienced person who can quickly understand whether a developer works according to his own level or he is doing not enough. Usually this is a role of a Team Lead.

For example, a developer takes a task and evaluates it. Then, through daily stand-ups and Team Lead control, it becomes clear whether working pace is expected or not.

How to be sure that task estimation is objective?

A subjective evaluation of one person has a different error margin. Usually, the more a person is mature, the less an error margin is, but it still is dozens of percent. The higher qualification and richer experience a specialist has, the more accurately he can evaluate given tasks, particularly regarding meeting the deadlines. In order to increase a quality and trustworthiness of evaluation, it is necessary that:

  • Evaluation of task planning should take place at the beginning of a sprint and at the stage of allocation of the tasks among developers
  • Evaluation should be mutually approved by several people on each stage
  • Carry out efficient collaboration between evaluators and testers on each stage of the project

Accordingly, only team evaluation and group joint control minimizes error and increases trustworthiness of the evaluation.

How to increase developer efficiency?

Developer efficiency, in contrast to mechanical operations, can vary 5-10 times depending on how his work is organized. If a developer is provided with a calm environment to solve the tasks, if he is not distracted spontaneously, if he is allowed to work peacefully and continuously, then his efficiency is extremely high. One should accept without prejudice the evaluation given by a developer, trusting his expertise.

Latest

Reading lists
Seldemirov Aleksandr / 28.04.2020

Episode #5. The 'Locomotive' Roles in the IT project. What is a difference between O/PO/PM/TL and why are they all necessary?

Today we will talk about a responsibility assignment matrix. We will also discuss in more details the roles which in the previous article were named as ‘locomotive’, which are pul ...

Seldemirov Aleksandr / 28.04.2020

Episode #4. Roles and Responsibilities in an IT project. Why are all those roles necessary (Team Lead, Project Manager, Product Owner, etc.)?

Roles and Responsibilities in an IT project. Why are all those roles necessary (Team Lead, Project Manager, Product Owner, etc.)?  Sometimes big number of roles scares a c ...

Seldemirov Aleksandr / 28.04.2020

Episode #3. Can we trust outsource developers? How do we select a contractor?

Let’s discuss the mental barriers which most entrepreneurs, owners and directors encounter when they hear the word "outsourcing."  Lack of trust:I don't understand how man ...

Seldemirov Aleksandr / 28.04.2020

Episode #2. Outsource vs Development Team in the Company. Advantages and Disadvantages

Why and when you would hire an outsourced teamThere are several hidden advantages of outsourcing which we constantly use in our own company.There are preconceptions about outsourc ...

Seldemirov Aleksandr / 28.04.2020

Episode #1. What are the current events on the IT market? Remote work and the concept of distributed development. The future of the economy in a digitalized society.

All of us realize the reality of irreversible changes in the world around us. The majority of companies in the world are entering or already have entered the world of online busin ...

Seldemirov Aleksandr / 02.02.2020

BIMLIB case. BIM-content platform

Case: BIMLIB — Building Information Modeling Library Customer: A construction holding Task: Create simple and convenient system of quick preparation of a bill of materials f ...

Seldemirov Aleksandr / 15.01.2020

ERP for Business. Do I really need it?

Pondering over prospects of ERP platform integration into your business, you need to understand precisely which tasks you are planning to use it for. Do you evaluate your manuf ...

Seldemirov Aleksandr / 18.09.2019

Teamwork and roles in IT projects

Any project goes through initial overview steps, called “presale”: Conceptual foresight of the output productEstimated project budgetTime required for completion of the project ...

Seldemirov Aleksandr / 05.08.2019

How to become a Senior Developer. Path of development.

Where do programmers start from? According to an ideal scenario, a programmer starts his education in school already. Specialized mathematical education becomes a foundation an ...

Seldemirov Aleksandr / 19.07.2019

How to estimate IT system development time?

How can a client be sure that the payment for the development guarantees the same amount of working efforts, and all declared time is used for solving the task? Such a question ...

Seldemirov Aleksandr / 06.06.2019

How to involve a freelancer into teamwork?

Can a solo freelancer become a team player? Personal inclination for a team play has an important role. There are people who are comfortable to work alone and there are those w ...

Seldemirov Aleksandr / 24.05.2019

When is outsource development more effective than in-house, and especially, when should we look for it?

Creation of any project, big company, corporation, as well as start-up can be compared to a construction of a building. For an implementation, we would need the following:  ...

Seldemirov Aleksandr / 24.05.2019

Why do programmers inside of a company say “No” to you?

We are often approached by companies with unfinished software development IT projects which actually need to be redone from the scratch. Our statistics: 3 of 4 projects are like t ...

Seldemirov Aleksandr / 24.01.2019

Fix Price or Time & Material models?

As our experience shows: Fix Price model in general is 2-2,5 more expensive than Time & Material. With T&M model, everyone is satisfied with results and execution ...

Seldemirov Aleksandr / 17.12.2018

Oracle Hyperion Software

Oracle Hyperion Planning Software Oracle Corporation is an American company, the biggest producer of software in the worldOracle Hyperion is a software product line which is ...

Seldemirov Aleksandr / 28.11.2018

International Conference A2IC-2018

Main Hall of A2IC-2018 Conference  During the conference ITQuick Company presented one of the client projects. A2IC covered the following themes: Machine learningArt ...

Seldemirov Aleksandr / 01.08.2018

Development Principles — Agile and Waterfall.

If we talk about project development approaches we can highlight these two: Agile and Waterfall. These two development models are applied, not only during software development, bu ...

Seldemirov Aleksandr / 31.05.2018

CRM system. Client category 2. Continuation.

Previous articles: CRM system. Selection and setup. General information.CRM system. Client category 1. Continuation. This category of entrepreneurs understands that it is ne ...

Seldemirov Aleksandr / 31.05.2018

CRM system. Client category 3. Continuation.

Previous articles: CRM system. Selection and setup. General information.CRM system. Client category 1. Continuation.CRM system. Client category 2. Continuation. The third ca ...

Seldemirov Aleksandr / 28.05.2018

CRM system. Selection and setup. General information.

CRM is a Customer Relationship Management system. It also can be called a client database. This is not just a database, but a more coherent software solution which, with correct s ...

Seldemirov Aleksandr / 28.05.2018

CRM system. Client category 1. Continuation.

Beginning is here: CRM system. Selection and setup. General information.   Category 1. Very cool guys. As the best, they keep their data in a cloud or in the worst c ...

Seldemirov Aleksandr / 30.04.2018

How to solve a problem “URGENTLY”

We always want to solve a potential client's problem. In the beginning, we are trying hard to communicate with a client in order to clarify details, because if a client fully unde ...

Seldemirov Aleksandr / 28.04.2018

Sales channels from small to big

It happened that our company has been working mainly with small and medium-sized businesses (from 100 people) which were our clients. We look for clients through various channels ...