What Isa Project

In AreLongAndDescriptiveRelated, one of the more important side passages was about the correspondence between "project size" and "required descriptiveness". In FactoringLargePrograms, I argue that a project should never be "big". Some other pages, like DefinitionOfProjectFailure, also try to clarify the concepts of big software projects.

All these topics seem to come down to the single question: what is a project, actually? Usually the term "project" is used interchangeably with the project's results, like the code the programmers have produced, meetings, and organisational structures. However, the connection between these and the "project" is usually quite weak, and all of them have an independent life from the project.

I'd like to reflect on the code, in particular. Why is some code deemed part of a project? That's because someone who wrote the code got his salary from the project budget. Now, usually a project is deemed "big" if you have a lot of programmers, and consequently, usually a lot of code. But this doesn't tell a thing about whether the code is actually interrelated, or anything.

I hold the opinion that a project is a social and management structure that should not be confused with the structure of the project's products. The only way (to date) to actually manage a big project is to divide it in parts; however big the project in total, it's the size of your "part" that counts when you do the actual work. I advocate the term "biggest inseparable component" to catch the concept of "technical project size" (in a well organised project, this is tiny. Any person might have several (hundred) of them). I would also like to have something like "area of fragility" as the set of people you have to inform when you change something. This should catch the concept of "social project size".

But what about the project? What is that term good for? What does it tell? I'm more and more of the opinion that claims about "project size" are empty claims that are thrown in the air to impress people. I have worked in a project with hundreds of people and more than 10MLOC, but I never saw more than a few of the people and more than 15KLOC of code... so? Should those 15KLOC have been written with "big project" style, or "small project" style?

So, I rest my point that the style of writing code does not depend on "project size", that biggest inseparable components should not exceed say 30KLOC, measuring project "successes" and "failures" tells little of what actually happened, and that usage of the term "project" in estimating anything technical should be abolished.

BigProject seems to have similar tones.

-- PanuKalliokoski

View edit of August 14, 2010 or FindPage with title or text search