Managing development in a large project

 
3r3-31. On several projects for the implementation of corporate systems, I was faced with the task of planning and controlling tasks that are difficult to predict. Imagine, you need to perform many similar tasks, and they involve a large number of people, while you do not know exactly in what sequence they will be performed and how long they will take. 3r3189.  
The Gantt diagrams that are familiar to the project management work poorly in this case. A typical example is the development of extensions for KIS. 3r3189.  
Below, I will tell you what method we used on projects in order to control a large number of parallel tasks with minimal administrative costs. 3r3189.  
here . 3r3189.  
JIRA is distinguished by a slightly old-fashioned interface (this is a very advanced age system, which has already passed a very long development path), reliability, a flexible configuration system for everything you can (workflow, screen type, access, notification system), a huge number of plug-ins, both paid and free, and the possibility of deep refinement. 3r3189.  
We did not need revision, we set up and constantly improved workflow (workflow - recruitment and order of statuses for the task and transitions between them), as well as access for participants and dashboards to control the work. 3r3189.  
I do not set myself the task to describe in detail the features and possibilities of using the application, but for further presentation it is important to illustrate some points. 3r3189.  
3r3189.  
3r3r1616. 3. Workflow management task [/b] 3r3189.  
The workflow reflects the life cycle of the task, in our example, design, coding testing. In fact, the process is much more complicated. Depending on the organization of the project, recruitment of participants, control requirements, the number of stages can vary quite significantly. 3r3189.  
For example, on one of the projects was the following workflow tracking development tasks. 3r3189.  
3r360. 3r3189.  
Many stages of coordination, distribution of work, testing on all instances of the system But this made it possible to confirm each step in the system, track responsibility and know exactly who and at what stage the task is. 3r3189.  
3r3189.  
3r3r1616. 4. The complexity of the problem 3r3r167. 3r3189.  
The complexity of the task was divided into two components: design and construction. Design is the analyst’s labor for document preparation and development testing. The construction is the developer's work on the development of technical design, coding, own testing before transferring to the analyst. 3r3189.  
It is rather difficult to estimate the laboriousness of the task beforehand, without immersion in details, especially if there are several thousand tasks, as was the case in our case. But it is necessary to evaluate in order to understand the total amount of work, the required amount of resources and decide on the timing. 3r3189.  
For a rough estimate, a calculator is used, which, depending on the type and complexity of the task, assigns a planned labor intensity to it. 3r3189.  
3r3189.  
The complexity of the task is determined depending on the object and the amount of work with it. For example, for developing a form in Oracle eBS, the criteria for complexity are described as follows: 3r3189.  
- Very simple - single block form with 8 or less columns. Does not require special functional logic. 3r3189.  
- Simple - single and multi-block (2-3 blocks) form with 20 or less columns. Simple functional logic is required (simple editing, cross-editing, simple calculations, totals and subtotals). 3r3189.  
- etc. 3r3189.  
3r3189.  
The type of task reflects the content of the task, the specifics of the technology, application or part thereof. For example: 3r3189.  
- New or changeable forms. 3r3189.  
- New or changeable reports. 3r3189.  
- New or changeable database software. 3r3189.  
- Loader'a SQL scripts. 3r3189.  
- Signals (alerts). 3r3189.  
- Personalization. 3r3189.  
- etc. 3r3189.  
3r3105. 3r3189.  
Based on the complexity and type of development, the calculator calculates the planned effort. 3r3189.  
And although the assessment error is significant, in large numbers, statistically, these errors are leveled, and the general idea of ​​the amount of effort can be used for project planning purposes. 3r3189.  
3r3189.  
3r3r1616. 5. Control of task performance [/b] 3r3189.  
So, having the status of the task and its complexity, how do we evaluate the progress of the work? 3r3189.  
The traditional option is to plan how many tasks need to be done over a certain period and track the completion of tasks on a periodic basis. The problem is that some tasks are done for a long time and are stretched over several planning periods. And in some periods many tasks are completed, in others - too few. This does not give an understanding of the situation, especially at the beginning and at the end of the project. 3r3189.  
You can try to schedule the completion of individual stages of the task. In the above example, we used 21 stages, it is impossible to plan each. We choose the main ones - the completion of the design, the completion of coding, the completion of the entire task. We plan a date for each task, we will monitor deviations. It seems feasible. However, when working simultaneously on a large number of tasks, it is rather difficult to see something in several hundred deviations and to draw the right conclusions. For each deviation there will be an explanation, an objective reason. Something will be done late, something faster. 3r3189.  
On one of the projects we tried using the date control method. Planned date set performers. The fact was automatically recorded in the system upon transition from to the corresponding status. 3r3189.  
Managing development in a large project 3r3189.  
The figure shows a histogram of deviations according to the readiness date of functional design (PD). Positive values ​​show advancing, negative values ​​are behind the schedule. It is seen that the largest number of PD performers hand over with a lag of 3.8 to 1.7 days. In this case, the extreme values ​​from 43 days late to 67 days of advancing. 3r3189.  
In this situation, we see that in the overwhelming majority of cases, performers violate the deadlines set by them. This systematic mistake is worth pondering over it. However, provided that the team is motivated and everyone works in good faith, this only means that people cannot specify the actual period, the performers do not take into account the complicating factors that in most cases arise during the work. 3r3189.  
Additional time is spent on planning, and in fact no one is responsible for meeting deadlines. If you introduce penalties for violation, the dates will be set with a large margin, and the performance situation will get worse. 3r3189.  
If you want to control something, think about what you will do with the results of the control, what decisions can you make based on the collected data?
3r3189.  
3r3189.  
3r3r1616. 6. Method of mastered volume 3r3167. 3r3189.  
Attempts to manage at a detailed level centrally, for a large number of tasks with a high degree of uncertainty are doomed to failure. 3r3189.  
You can divide these tasks into groups, delegate detailed planning into groups. Several people, several dozens of tasks can be lined up, promptly respond to changes, make decisions about changing priorities. But at the project level, other methods are needed. 3r3189.  
The method of mastered volume comes to the rescue. Without going into theory, I will describe how this method is implemented for the plan-fact control on developments. 3r3189.  
We have already defined the life cycle of the task and determined the planned labor intensity of each of them. Now we assign the percentage of the execution of the task at each stage. In our case, because there was a division of labor for design and coding, a percentage is assigned to each of the values. 3r3189.  
The assignment of interest is done by an expert, estimated how much we consider the task accomplished, how much more labor is left at this stage. 3r3189.  
3r3189.  
After such a table has been compiled, for each task it is possible to determine how many person-days from the planned have already been mastered and thus measure the progress of execution for each task. 3r3189.  
For example, a task has a planned labor intensity of 10 chd for design and 20 chd for development. Then, at the testing stage, we believe that it is 80% complete in terms of the analyst’s work (20% of the labor costs to complete the testing remain) and 50% in the part of the developer’s work. We are ready to admit that the design worked out 8 hours, and the development - 10 hours. Total, out of 30 man-days, 18 have already been completed. 3r3189.  
At the same time, we do not take into account that in fact other time may be spent. For set goals, it does not matter. 3r3189.  
3r3189.  
3r3r1616. 7. Project Reporting 3–3–3167. 3r3189.  
Having a table in which for each task we have planned labor-intensiveness and mastered volume, it is easy to understand how things are going. 3r3189.  
It is possible to divide the tasks into areas, components, milestones of the project, in order to be able to analyze at a more detailed level and make summary tables in all necessary sections. 3r3189.  
The overall picture of the project becomes convenient for presentation at the management level:
 
Summary table based on unloading from JIRA
 
3r3178. 3r3189.  
control plan-fact for the whole project 3r3189.  
3r3186. 3r3189.  
3r3186. 3r3189.  
3r3189.  
3r3191. This method is not always understood. Mythical man-days are less clear than pieces of development. And it does not cancel detailed planning at the level of the group and individual performers. At the same time, this is the most objective method for assessing the current situation and predicting the completion of work. 3r3192. 3r-33199.
3r3196. ! function (e) {function t (t, n) {if (! (n in e)) {for (var r, a = e.document, i = a.scripts, o = i.length; o-- ;) if (-1! == i[o].src.indexOf (t)) {r = i[o]; break} if (! r) {r = a.createElement ("script"), r.type = "text /jаvascript", r.async =! ? r.defer =! ? r.src = t, r.charset = "UTF-8"; var d = function () {var e = a.getElementsByTagName ("script")[0]; e. ): d ()}}} t ("//mediator.mail.ru/script/2820404/"""_mediator") () (); 3r3197.
3r-33199.
+ 0 -

Add comment