One of the points that has always baffled me is how the candidate is never asked to actually do anything. Instead they are asked a whole bunch of meaningless questions. I’m constantly reminded of this quote from Peopleware:
Circus Manager: How long have you been juggling? Candidate: Oh, about six years.
Manager: Can you handle three balls, four balls, and five balls? Candidate: Yes, yes, and yes.
Manager: Do you work with flaming objects? Candidate: Sure.
Manager: … knives, axes, open cigar boxes, floppy hats? Candidate: I can juggle anything.
Manager: Do you have a line of funny patter that goes with your juggling? Candidate: It’s hilarious.
Manager: Well, that sounds fine. I guess you’re hired. Candidate: Umm … Don’t you want to see me juggle?
Manager: Gee, I never thought of that.
In my previous company we made candidates actually write some code. We would give them a simple program to write in half an hour and they could use a computer to code it. They had access to online help, so they could check up on syntax. And sitting in front of a computer allowed them to work in a natural environment. This process of selection worked out pretty well for us. I’ve always wondered why more companies didn’t do that. Any ideas?
If you have been even half alive in India over the past month you would definitely have seen the IPL. I think one thing that the IPL proved was the importance of the team and man-management. It’s not the rock stars that matter, but the team that plays best together. Throughout I was thinking about the agile philosophy of valuing the team over individuals. Check out this fantastic interview with Darren Berry, director of coaching at Rajasthan Royals where he talks about their management style:
I came across this really nice Scrum Cheat Sheet on Scribd. Check it out. To get a better view, you can click the rightmost icon on the toolbar to view in full screen mode.
Roles Scrum Team Team is cross-functional and consists of 5-9 people There are no set project roles within the team Team defines tasks and assignments Team is self-organizing and self-managing Maintains the Sprint Backlog Conducts the Sprint Review Artifacts Product Backlog - (PB) List of all desired product features List can contain bugs, and non-functional items Product Owner responsible for prioritizing Items can be added by anyone at anytime Each item should have a business value assigned Maintained by the Product Owner Meetings Sprint Planning – Day 1 / First Half Product backlog prepared prior to meeting First half – Team selects items committing to complete Additional discussion of PB occurs during actual Sprint SCRUM CHEAT SHEET Estimating User Stories A very high level definition of what the customer wants the system to do. Each story is captured as a separate item on the Product Backlog User stories are NOT dependent on other stories Story Template: “As a I want So that Story Example: As a user, I want to print a recipe so that I can cook it. Sprint Planning – Day 1 / Second Half Occurs after first half done – PO available for questions Team solely responsible for deciding how to build Tasks created / assigned – Sprint Backlog produced Product Owner (PO) Accountable for product success Defines all product features Responsible for prioritizing product features Maintains the Product Backlog Insures team working on highest valued features Sprint Backlog – (SB) To-do list (also known as Backlog item) for the Sprint Created by the Scrum Team Product Owner has defined as highest priority Daily Scrum Held every day during a Sprint Lasts 15 minutes Team members report to each other not Scrum Master Asks 3 questions during meeting “What have you done since last daily scrum?” “What will you do before the next daily scrum?” “What obstacles are impeding your work?” Burndown Chart – (BC) Chart showing how much work remaining in a Sprint Calculated in hours remaining Maintained by the Scrum Master daily Story Points A simple way to initially estimate level of effort expected to develop Story points are a relative measure of feature difficulty Usually scored on a scale of 1-10. 1=very easy through 10=very difficult Example: “Send to a Friend” Story Points = 2 “Shopping Cart” Story Points = 9 Scrum Master (SM) Holds daily 15 minute team meeting (Daily Scrum) Removes obstacles Shields the team from external interference Maintains the Sprint Burndown Chart Conducts Sprint Retrospective at the end of a Sprint Is a facilitator not a manager Release Backlog – (RB) Same as the Product Backlog. May involve one or more sprints dependent on determined Release date Opportunity for team members to synchronize their work Sprint Review Team presents “done” code to PO and stakeholders Functionality not “done” is not shown Feedback generated - PB maybe reprioritized “DONE”= Potentially Shippable! FAQ Process Daily Scrum Sprint Review Business Value Each User Story in the Product Backlog should have a corresponding business value assigned. Typically assign (L,M,H) Low, Medium, High PO prioritizes Backlog items by highest value Scrum Master sets next Sprint Review Who decides when a Release happens? At the end of any given Sprint the PO can initiate a Release. Who is responsible for managing the teams? The Sprint Retrospective Attendees – SM and Team. PO is optional Questions – What went well and what can be improved? SM helps team in discovery – not provide answers Sprint Planning Product Backlog Sprint Backlog Sprint Shippable Product Sprint Retrospective teams are responsible for managing themselves. What is the length of a task? Tasks should take no longer than 16 hours. If longer then the task should be Visibility + Flexibility = Scrum Glossary of Terms Time Box - A period of time to finish a task. The end date is set and can not be changed Chickens – People that are not committed to the project and are not accountable for deliverables Pigs – People who are accountable for the project’s success Single Wringable Neck – This is the Product Owner! Estimate Team Capacity Capacity = # Teammates (Productive Hrs x Sprint Days) Example – Team size is 4, Productive Hrs are 5, Sprint length is 30 days. Capacity = 4 (5 x30) = 600 hours NOTE: Account for vacation time during the Sprint! Tools Task Board White Board containing teams Sprint goals, backlog items, tasks, tasks in progress, “DONE” items and the daily Sprint Burndown chart. Scrum meeting best held around task board Visible to everyone broken down further. Who manages obstacles? Primary responsibility is on the Scrum Master. However, teams must learn to resolve their own issues. If not able then escalated to SM. What are two of the biggest challenges in Scrum? Velocity The rate at which team converts items to “DONE” in a single Sprint – Usually calculated in Story Points. Teams not self-managing, Scrum Master managing not leading.
It’s a good question. I saw good code at places with crappy practices. And I saw crappy code at places with good practices.
But in almost all of the places, I saw code that was on par with the motivation of the teams in place. In other words, teams that were excited about what they were doing, and kept up with trends, etc, often had code they were proud of. Teams that liked their job, but basically were just there had code that worked and had issues, but they didn’t mind. And teams that were just in a crappy place had code that was crappy.
800-CEO-READ has an excerpt from the book Brain Rules by John Medina. What caught my eye was the last paragraph on the page:
What do these studies show, viewed as a whole? Mostly this:
If you wanted to create an education environment that was directly opposed to what the brain was good at doing, you probably would design something like a classroom. If you wanted to create a business environment that was directly opposed to what the brain was good at doing, you probably would design something like a cubicle. And if you wanted to change things, you might have to tear down both and start over.
The rest of the excerpt looks interesting too. The book has an associated website here.