In the middle of seclusion day, I'd like to write a good question to be thinked of. This article title is that question.
Maybe this question always set in my mind or yours along years. Actually I will very happy if I can buy this book, or someone already have it and will let me borrow it. But I believe the problem can be solved even without that book as we are day to day in a real world of Software Project. At least we've started to analyse it.
Using ordered case per case analysis writing style, based on priority, I'll bring you to the real world of Software Project Implementation problems are commonly faced and you might get the answer.
Wrong Software Implementation Estimation!
The most important problem when your schedule is late is the wrong estimation on how your tasks being estimated before the project is started.
Mostly software estimation has been done using "Construct only estimation" model.
Actually an implementation in software development consist of the following sub-tasks:
- Designs study
- Requirements study
- Construct /System Intregation
- Code Review
- Unit Test
We will try to using this below configuration, this configuration may apply to simple task
-10% - Designs study
-10% - Requirements study
-60% - Construct /System Intregation
-10% - Code Review
-10% - Unit Test
If a task has been estimated to complete within 1 man day, then it has 8 hours and in detail it should become:
-Designs study (0.8 hour)
-Requirements study (0.8 hour)
-Construct /System Intregation (4.8 hours)
-Code Review (0.8 hour)
-Unit Test (0.8 hour)
If you have difficulty in how to imagine the one set tasks above, you can simply imagine it using extrapolation from Construct only estimation.
If you imagine a task will be completed in 6 hours, then extrapolate it to configuration 10,10,60,10,10; and you will get: 6 hours / 60% = 10 hours total.
And the other sub-tasks will get 1 hour each (10%).
Your configuration may vary with various complexities and difficulties as well as the type of task. But you can average them using your experiences.
If you estimated the task and already concerned with the sub-tasks in Software implementation, but your schedule still late! What next?
Software Developer Skill Set
Software Estimation is relatively apply to various skill level of Software Developer. On each task estimation, you have to estimate the task using a skill set from whom /which level it will be done.
Don't estimate the task will be done by you!
Don't estimate using: "Ahh.. this is a simply one.. I'll done in 2 hours"
You must imagine the task will be done by a skill level, say: Fresh Junior Developer, two years Experienced Junior Developer, Senior Developer, or using specific company Software Engineer development stage.
But an experienced Software Engineer /Developer which a good quality must know about the words of Expectation, Un-supervised, Innovative, Initiative, Trustworthiness. Read this article in Bahasa if youd like. This statement must be a good point to think twice when an experienced Software Engineer /Developer would say about his quality and his late! :)
(I would like to write some tips for Software Engineer /Developer to be able to Drive Your Tasks, not being driven by your task.)
You already estimated the task and considered using a skill set of Software Developer, but you still late! What next?
Software Developer Personality
This aspect is rather difficult than the others. Because the personality is depends on uniquality of each developers as a person.
There are a lot of factors that affect in this aspect, emotional, personal problem, health, girl friend, family, etc.
But I believe you must have some personality approaches to cover and maybe help them to solve the problems. Not only your leadership they are need, they also required your personality approach especially if they face a problem and need help.
In this case we are all need a good communication skill.
Your team developer personality is good, but your schedule still late! What next?
Resource Replacement
Think about the Resource Replacement. This is the last choice, but things to consider; The benefit or disadvantage using the new fresh Resource.
You must have time allocation for the New Resource Project Familiarization, simple training, etc. and it should not interfere the current running schedule.