Friday, January 12, 2007

When will that feature in your system will be finished?

That seems like a very simple question: "When will feature "X" be finished?", specially if do not have a lot of experience being the manager of a software development team... but the problem... is that the task of developing a feature has, as many things in software development different faces... its one more example of The Blind Men and the Elephant.

In this case.. when is the feature "finished"?:

  • After the Developer says it is finished?
  • After the Architect says the code is maintainable and extensible?
  • After the Tester says that the feature is bug free?
  • After the User says that the feature meets his expectations?
  • All of the above?
  • None of the above? Then... when: ?

It is easy to see that I believe it is not a question easy to answer... why do believe that?

Well in my opinion the main difficulty to answer it is that that software development is not a linear activity, with a beginning and an end, but an iterative activity, if the Architect doesn't believe the the code is maintainable and extensible, then the code will have to be modified (either by him or by the Developer) and after that, if the Tester finds bugs, the code will have to be modified again to fix the bugs... but those modifications might introduce more bugs to the code, so the code will have to be tested again... its a cyclical process, it has to be done many times before reaching the end, in other words, it is not an "if" answer, but a "while not" answer.

Therefore: effort in trying to reach the end can be registered... but it is impossible to tell how far from the end we are... maybe one, maybe ten, maybe a hundred iterations away.


flyfly3 said...

very nice blog! My name is Franco Di Giacomo Would it make fun for you, to make money in the Internet ? (Income for Life!) Yes? NEW Business, see my web

Maxetormer said...

Date una vuelta por mi blog, hice
algo para el concurso de lucha libre,
dime que opinas, y GRACIAS por el