Agile – How to add a new developer to the team

agileestimationknowledge-transferproject-managementteamwork

I run a small company composed of only 2 developers. We are building a very big application for one of our clients. Development on this project has gone on for 1.5 years.

Now this client has secured an important sponsorship, and they are organizing events related to this project. So now we have a deadline in 2 months and we can't miss it.

We are thinking of adding a new developer to the team, and I am wondering what we can do to help his integration.

This is the situation:

  • We are approaching the threshold of Brooks's law — the point when adding new developers will be counter-productive.
  • The application is relatively well-designed, but the implementation is chaotic in some points (especially older code).
  • There are unit tests only for more recent code. When this project started, we didn't regularly conduct tests.
  • Documentation and comments are incomplete.
  • The application is both large and complex.
  • The client has written down almost every detail about his project, in a very clear and "programmer-friendly" way.

Is it a good idea to add a person now? If so, what can we do in order to help the new developer integrate into the team?

EDIT:

The sponsor is organizing an internet-based sport event for next spring. It must start on a specific day of the year. We can't change it.

What we developers (I am one of the two) need to do is:

  • Completing the existing application (about 25% of the work to do).

  • Creating a new module, essential for the organization of this event (about 75% of the work to do). This new module can't be developed without understanding the main program's API.

I can't do an exact time estimation, but we are in a risky situation.

Best Answer

Best thing to do is not to throw the new developer into the fire, but instead carve out some functionality and/or bug fixes that the developer should have no trouble jumping in to. Find an area that needs work that doesn't require a person to know the entire architecture, requirements and code-base all at once. Maybe have him or her work on documentation to learn the system faster.

Related Topic