How to digitize a developer or, in short, how to make the work of developers more transparent for the Company

Preamble



One, a medium-sized Russian bank, has an Internet bank for physicists and lawyers, websites and mobile applications. And there is also a subdivision that accompanies and develops all this economy. Here comes the young Leader, who has worked in this organization for more than 3 years, on whose behalf this story will be.



Background



The bank is modern, the processes are built according to ITIL, at first glance everything looks like a textbook. As you can see from the title of the article, we will only touch on one piece of the "Making changes" process that interests us.



Problem



Everything in this process was excellent except for one moment, namely, the Analyst agreed on the development time with the Customer - the owner of the product "Internet bank of legal entities, web + mobile channels", hereinafter we will simply call it the Customer. The customer always understood and accepted the work that took place in front of him or with his participation, namely:



  • Clarification and formalization of its requirements. He directly saw how a client story, a prototype, and finally a statement for a developer was born from his 2 lines of text.
  • All types of testing. He saw huge lists of tests.
  • Documenting. He could look at the number of pages of text and pictures (diagrams).
  • But in terms of development, the customer always felt a catch, it seemed to him that an evil (and in fact, a kind-hearted person) bearded team leader who gave his assessment, only sees how to enter 50 percent extra hours there, without bothering to meet SL and get motivation by KPI. It was this problem that the young leader had to solve.


Decision



Step 1. How to calculate the development duration in absolute terms There



were many ideas, one of them: making an estimate based on previously completed tasks is better than nothing, but:



  • laborious to do a retrospective analysis each time
  • Not all tasks can be matched with analogues.


What if you do not take the entire task, but divide each into the final components of work for our system (throughout the article, we will call the Internet bank of legal entities, web + mobile channels)?



In our case, it turned out like this:



  1. Changing the page layout
  2. Creating a new document page
  3. Finalizing the form, displaying a new form field from the database
  4. Typical control
  5. Complex control (complex non-trivial algorithm)
  6. DB schema extension
  7. SMS mailing script
  8. Script for mailing by electronic signature


etc. at the beginning of the positions there were about 20, and as a result a little more than 80



To assess the labor intensity of each block, a unit was invented - a standard unit of labor costs (CET, s). SET is an abstract measure of labor intensity, it has no physical meaning, it can be called whatever you like. Through a retrospective analysis (for the last 3 months), we (I, the system analyst and the team lead) divided all tasks into final components and proportionally estimated the complexity of each of them (si), the result is in the table (Table 1).







Now we could evaluate each task in SETs, for example:



  1. Objective: to implement a feedback form on the main page of the system, which appears for customers who have not given feedback. The form displays:

    • rating scale in the form of stars, by clicking on which you can give a rating from 1 to 5,
    • a free-form input field with a length of 500 characters,
    • the send button, by clicking on which the data is written to the corresponding database table, the form is closed without reloading the page.
  2. Determination on the simplest actions, according to table 1 .:
    • Creating a table in an existing database, writing a form display logic - 0.2 CET
    • Form layout, 2 fields + check for completeness - 1 CET
    • Writing an asynchronous request to the server side, writing a server function for writing to the database, - 1 SET
  3. Calculation of labor input in SETs: 1 + 1 + 0.2 = 2.2 CET


After that, the term productivity (p) was introduced, which defines the productivity of each category of developer (Table 2)







Now it has become possible to estimate the development duration of each task using the formula: let's







continue with our example



4. Determination of the duration of work for an employee of the Senior category:

2.2 (CET) / 1.5 (CET / day) = 1.6 days

Duration 1.6 days



We make assumptions: having full-stack developers, only one of them is involved in solving each separate problem.



The Customer liked the assessment method so much that he offered to evaluate the other stages of work:



  • clarification of the requirements
  • implementation planning
  • testing and documentation


in proportion to the development time, the following coefficients were introduced (Table 3):







Now it was possible to estimate the duration of each stage: the







entire duration of making changes to the system, according to the formula:







for example:



4. Determination of the duration of work for an employee (analyst and developer) of the Senior category:



0.2 * 2.2 / 1.5 + 0.3 * 2.2 / 1.5 + 2.2 / 1.5 + 0, 2 * 2.2 / 1.5 = 0.3 + 0.44 + 1.6 + 0.3 = 2.64 days

Duration 2.64 days





As a result, we got a fairly understandable methodology, the general meeting (the customer, me, the system analyst and the team lead) decided to try it out, the first results will be continued ...



All Articles