Recently at Zirous we have been discussing ramp up time or how long it takes someone to be productive at their job. I am currently working on an application that is overall over ten years old. It has had many hands on it depending on the changes and new features. For instance it was primarily developed using Struts 1 that has been EOL or End of Life by the Apace foundation. Then we also use TopLink a product from Oracle, we are still using an old version. Another day I can discuss these dependency issues. So bringing someone in new with older technologies is part of the challenge. One of the bigger challenges is the application is large. We have had developers at times develop portions of it using Dojo and some more recent work using jQuery. These are both good frameworks, but I think we need to have decided our what I would call “technologies to emphasize” so there is no confusion for new people coming into the project. When it comes to using the Toplink ORM product we have varying ways to use this. Some have essentially used JDBC while some use TopLink to call their stored procedures, others will use it as the ORM tool it was meant to be.
“Senior developers do not teach your Junior developers how to code, your code teaches them how to code” this quote was shared with me recently over lunch with Brandon Carlson. I believe he attributed it to Robert Cecil Martin aka “Uncle Bob”. This is very true statement, and I think our code that we are working with is sending an incoherent message to our team. By no means do I advocating re-working all of this large code base. What would be helpful would be a wiki with a few of our preferred examples. This coupled with a bit of technical over-site would go a long way toward helping with ramp up time and keeping the code base tidy.