Efforts versus EffectsFiled Under: Weekly Tuesday Dose of goodness
Hi all,
Today, I’ll discuss about decision making when it comes to decide things like technology, architecture, functionality and eventually, code design.
Now, in all these problems we face in games development or software development for all that matters, there’s always one thing we should always bear in mind.
Efforts versus Effects
So what do I mean by that? Read on…
First, we must define what is Efforts.
Simply, efforts are the amount of work required in order to get a certain job done. This amount of efforts are usually measured in man-days.
So, a single person working for 30 days is equivalent to 30 man days. If there were 2 persons, then it’s 60 man days.
Next, let’s define what is Effects.
That’s simply means the output of the effort put into the job. For example, if you have spent 2 man-days do design a simple storage class, then your “effects” factor would be very inefficient.
The article focuses not on the quality or quantity. Rather I focus on the decision making criteria of implementation of certain requirements.
We of course have to prioritize accordingly.
1) Do we need this feature?
2) When must we roll out this feature?
3) What’s the skill level required in order to build this feature?
4) What are the impacts to the current system upon integration of this feature?
Inadvertently, you might ask yourself: Is this REALLY needed? Since you might have to answer all these questions in order to justify the commencement of this job.
If it’s really needed, be it 100 man days, if it has to be done, it HAS to be done.
If it’s good to have, then prioritize accordingly.
If it’s just a crazy idea, stash it aside for future use.
Afterall, you must realize a few things:
1) Manpower isn’t free
2) Time is money
3) Project completion and signing off (thus the revenue) depends on time-to-ship
4) What if you do not have the right people to the job?
5) What if the feature somehow conflicts with existing features?
6) Troubleshooting time buffers are not free either
7) Static analysis, code review, unit testing and regression testing all takes time
So, this is roughly the amount of reasonable efforts required for a single feature to be done.
Efforts versus the amount of Effects produced by the feature - is it worthwhile doing it?
One last thing to do, it’s more important to stay focus and disciplined on what you’re supposed to do rather than what you prefer to do. With discipline, you’ll be able to control and justify properly, what should be in the system at this time, what should be postponed, what should be thrown out completely for this project.
Always have the completion of the project in mind. Good to have features can always come later.
Another note, this is probably the reason why outsourcing thrived.
Regards,
Jeremy
- Permalink
- Admin
- 5 May 2009 8:50 PM
- Comments (0)