My company and Brook’s Law - Why hiring a new programmer delays the whole company’s development schedule?

Hi!

I work in a real state agency. This company has its own management system which deals with customer database, customer relationship management, product database and product export to other external system of advertising.

It has been developed by 6 years now, and passed by the hands of 8 programmers (or interns) so far. And until the lastest one, adding more man power to its development always uncovered a sad feeling of Brook’s Law.

Brook’s Law dictates that “adding man power to a late software project makes it later”. Actually it really happened. After hiring a new programmer it took at least 3 months of intensive training, which approached quality (5s, Kaizen and PDCA) and some programming skills such OO, MVC and Design Patterns.

This thorough training should supposedly prepare the hired programmers to a supposed high-level of coding. Well, the code was not that high-leveled and the programmers always had to struggle with so many standards that they could not produce code.

There was never a roadmap or formal product release. Indeed in the beginning, the changes were made directly into the code and bugs fixed later. I guess when nothing is yet done, act quick-and-dirty or worse-is-better is a good atittude.

OK, it may have hurted some ears around. I am not defending them as a real alternatives for software development. What I am saying is: they are great choices to evolve from NOthing to SOMEthing. Let me explain it a bit further.

The company I work on was founded by a group of Internet investors. They had no previous experience on real state market. They had money and wanted to invest. One lunatic among them decided to burn his cash in a real state agency in the rotten brazilian market.

Alright. If you are producing a software to a company runned by an expert in the market, usually the biggest problem you could have would be how translate some business needs into technical specification.

However, If you are producing a software to a company runned by a lunatic that simply has no idea of what it is taken to do the business, then your greatest is problem is doing something almost completely off your mind - if the CEO has no idea and you have no idea - anything, even a bad thing, is better than nothing.

This lack of identity reflected the source code’s organisation, robustness and stability. Actually, a paleontologist could dig four differente eras of coding.

The first one made by four hands and it’s completely quick and dirty. The second one a bit more organised, but yet worse is better approach (the great change was moving from VI to Samba Shared file access). The third one with better structured code. And the last one developed with OO/MVC/All the letters that are G&W.

Thus, teaching the new-comers about the system had do cope with all these generations of coding and thoughts.

Why that last one has been different?

The last hiring was completely different on many aspects.

First, the hired programmer was a better professional. I am not talking about technical skills - I am mean a more matured and seasoned person. A young company with young employees behaves childishly - spending more than needed with wrong people.

Second, the company knows better its needs and what it expects from employees. It means that the business needs are more easily translated into technical specifications.

Third, the oldest codes are no longer changed. They work (sometimes badly) and they do not demand more maintenance. All the code produced is related to new needs, therefore I need to teach fewer things one to new employees.

Adding man power in these conditions is easy. Brook notice the projects delays when he realised that new programmers could not add production immediately because they needed to be taught. And that’s the whole issue.

The more one programmer need to learn in order to begin working - the longer it’ll take to make him productive.

When the teacher knows the things to be conveyed, it is easier. On the other, when there is no teacher (or no knowledge), it is the famous Research and Development - not funded, not supported and only demanded.

Does it ever happened to you?

Category: Chronicles, Technology | Tags: , , , , , , , , , , , , , ,


Leave a Reply



Back to top