Hand-offs | Glossary

Definition: 

Hand off is an act of handing or instance of passing something or the control from one person or agency to another. Learning development expert Allen Ward defines a hand-off as a separation of knowledge, responsibility, action and feedback.  Hand-offs occurs everywhere in a sequential development process. The business requirement  gathered is handed off to architecture, which in turn is handed off to programmer who will hand-off the code to testers. Documents are produced in projects to enable the hand-offs. Holding a traditional project manager accountable for meeting project specification and deadlines she didn’t contribute to is an example of a responsibility hand-off. 

Cross-functional teams became popular, as a response to the troubled caused on traditional development projects. Embrace Whole-Team Responsibility, means even though there may be one person for whom we look for certain task, just about everything is responsibility of the whole team. The more the whole team is involved, the more the team feels the shared responsibility, and the fewer hand-offs there will be. By eliminating hand-offs we eliminate problems created by waiting and the need to transfer knowledge from one person to another.

Further Reading:
Book: SUCCEEDING WITH AGILE Software Development Using Scrum by Mike Cohn

Gang Programming | Glossary

Definition: 

Four to Eight programmers gather in a conference room equipped with laptop and projector. Pick a programmer to start coding while everyone else looks at the projected source code. Find one failing test you can write, and then have a programmer write the code that makes the test pass. After sometime, pass the laptop to another programmer and continue writing code and passing the laptop until the task is complete.

This helps group to understand, develop and demonstrate the principles, processes and technologies. This is an effective way of sharing knowledge, few mistakes are introduced in your code, you can solve the problems that crops up along the way faster and quicker, learn more about the things that are specific to the applications and develop a common understanding, more people know how the new program works, all are in sync. Team develops better interpersonal skills, learn to communicate with each other, work together to achieve common goal.

Further Reading:
Book: SUCCEEDING WITH AGILE Software Development Using Scrum by Mike Cohn