- Frank West
Building a kick-ass software team presented by Brian Corrigan (@genexp) at HybridConf 2013. Brian discussed how you can provide a better working environment for your staff and in return get a great software team. Here's what I learned from his talk.
- Use agile and not 200 page requirement documents.
- Teams, some are good but only a few are great.
- Building software is hard:
- Inherently chaotic, the tools keep changing.
- Requirements always change.
- Everyone is creative.
- You need good people, who work together, are empowered to do things and a supporting company which lets them.
- Brand teams, give them a budget and let them name the project, buy T-shirts, go out for lunch together.
- Build a state of shared vision.
- Not the guy who stays late.
- Not the genius.
- Is the guy who does the solid 40, just do a good 40 hours of work a week.
- Is the guy who is empathic and enthusiastic.
- Is the guy who is self-improving and humble.
- Not the smartest people, get a mixed team. Skilled people learn just as much from training junior staff, learning ways different people approach things.
- Have varied interests, outside interests shape the way we do things and past experiences build variety.
- Have people from all disciplines.
- Must be self-organised.
- Set expectations. Don't think about QA, creative or developers, everyone is a product developer.
- Align with the goals of the organisation.
- Share as much information as possible.
- Don't have backdoor meetings, embrace full collaboration.
- Don't fake technical knowledge.
- Take bullets for the team.
- Ask questions.
- Answer questions, have an open door policy.
- Encourage the development of ideas, don't tell me, show me, take a day off and code it.
- Let teams pick their own tools.
- Let people define their own processes.
- Let people report their own results.
- Let them set their own hours
- Let them be self-structured, do they need a leader for this project?
- Teams must have authority, bad decisions will happen, this if fine, create a feedback system. Often providing the team with more information would have prevented the problem in the first place.
- They are responsible for the project, it's their fault if it goes wrong.
What can the organisation do?
- Provide a healthy pay check.
- Offer health and retirement benefits
- Setup profit sharing systems.
- Offering flexible working hours.
- Provide a nice workplace, a great office.
- Give them the freedom to create.
- Reduce communication overhead.
- Set response time expectations such as only checking emails twice a day.
- IT policies impede work, allow teams to use their own hardware, provide them with up-to-date software.
- Act like humans and encourage time off.