InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

Inducting Newbies On Large Agile Projects

Posted by Mike Bria on Mar 25, 2009

Sections
Process & Practices,
Architecture & Design
Topics
Agile in the Enterprise ,
Training / Certification ,
Agile
Tags
Onboarding New People

One advantage an agile team has is that getting new members brought up to speed can often occur in a more natural, efficient way than when people were working in a soloed, waterfall world. This is particular true if the team is co-located, communicating frequently and effectively, working from small stories, and especially when using pair-programming.

In a recent article Anand Vishwanath agrees with this, stating that for most small to medium sized projects new members can be assimilated into an agile team without much special ceremony, but feels that larger projects require a little something more. He suggests for large agile projects that using a small scale "simulation project" might be the best approach to getting the newbies into the groove. In a nutshell, "maintain a group of 4-6 new joinees in one batch of induction" and have them execute a few mini-iterations over a 1-2 week period with the help of a few experienced mentors.

Vishwanath stresses the most important component of the induction project be the presence of mentors able to guide the inductees during the simulation. He states that among these mentors should be:

  • A Mentor Developer, who is a seasoned "Journeyman" developer capable of helping the inductees understand the codebase and domain of the project. This person will work full time on the simulation, pairing with with inductees and running learning discussions.
  • A Mentor Business Analyst, working in a part-time role on the simulation to act as the customer to the developers, as well as to coach inductee BA's if they exist.
  • A Mentor Quality Analyst, also working part-time to help the group with activities and learnings regarding their specialty.

Vishwanath discusses how this simulation will operate as an actual iteration (or even a few), including an iteration planning meeting, end-of-iteration demo and retrospective, and as much as what ever other constructs your real project employs is possible.

Vishwanath gives direction to present the group with a variety of stories in the simulated iteration. For example, he suggests to include some simple functional stories, and also to save room for some "refactoring stories" that are totally technical in nature to give the inductees a good chance to really get dirty with the project's code-base and architecture.

Vishwanath also gives a few suggestions on how to collect artifacts from the simulation that can be leveraged in future inductions. For example, he highlights capturing video recordings of sessions from the simulation, as well as learnings highlighted from the iteration retrospectives.

If this quick summary sounds interesting to you, take a look a Vishwanath's article. Does seem like a good approach? Knowing your environment, is it feasible for you? Have you done something similar and if so with what outcome?

  • This article is part of a featured topic series on Agile

No comments

Watch Thread Reply

Educational Content

New-age Transactional Systems - Not Your Grandpa's OLTP

John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.

Cool Code

Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.

Collaboration: At the Extremities of Extreme

Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.

Yesod Web Framework

Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).

Transactions without Transactions

Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.

Attila Szegedi on JVM and GC Performance Tuning at Twitter

Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.

Interview: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.