This deck explains the principles of developing a kickass engineering team. Several real world examples are provided to explain how to apply the principles.
2. Top 10 Ways how NOT to Develop a
Kickass Engineering Team
10. Work on stuff with no business benefits – someone, somewhere, sometime assigned
this to us and we’re gonna do it no matter what!
9. Hire really bad engineers – slackers, cowboys and duds
8. Don’t take any risks – always take the road frequently traveled
7. Create complex processes to do anything – at least 3 meetings per day for
“coordination” – mandatory for all engineers of course
6. Create looooong and rigid schedules to complete any work – complete in years what
should take weeks
5. Always dictate to engineers what to do – don’t let them make any decisions – take a
lot of time to make your decisions
4. Work on boring problems or technologies – if possible both!!
3. Never look outside your group for expertise – you know everything!
2. Always follow the rules – no matter how much it slows the team
1. Don’t have any fun – that will take away time from work damn it!
3. So how DO you develop a
Kickass
(high performing) engineering team?
5. 1 – Attitude
• Can Do attitude!!
• Figure out a way how to get things done instead of thinking
of why it is impossible to do
• If missing, how to develop?
• Starts at the top – find right team leaders with
consistently successful execution experience
• Fill resource and skill gaps – that builds confidence!
• Review challenges and risks with team and help them
resolve issues quickly
• Remove team members with negative attitudes
7. 2 – Exceptional Talent
• Finding exceptional talent (more in appendix)
• Look for range of technical skills and passion
• Entrepreneurial mindset, open source participation, maintains tech blog, …
• Don’t compromise on culture fit – avoid loners and whiners
• Keep diversity in mind – talent doesn’t all look the same!
• Develop the talent on an ongoing basis
• Encourage continuous learning for career development
• Also leverage experts from outside your group
• Partners across the company, or outside talent
9. 3 – Teamwork
• Molding individual talent into great team
• Get team excited about mission – define BHAGs – big hairy
audacious goals
• Focus!! Be crystal clear about goals and metrics – what will
make team exceptionally successful?
• Empower engineers to make decisions – while being
accountable. Self driven teams are most motivated
• Encourage helping of others (e.g. prompt code reviews)
• Reward accomplishments publicly; provide feedback for
improvements privately
• Ensure consistently low performing members are removed
from team
10. 3 – Teamwork
• Working with external teams can sometimes be a challenge
• Look for win-win
• Don't dictate, share the problem, and work together on the
solution
• Have great leaders and coordination mechanisms in place
• Defining and monitoring key metrics can have a big impact, e.g.
• Engineering Excellence: code coverage, velocity, automation
• Operational Excellence: availability, performance, FCIs
• Team Metrics: happiness index
12. 4 – Flexibility
• Be flexible with Processes, Releases, Assignments, …
• Processes
• Minimize processes that slow down the team
• Meetings are productivity killers!
• Automate as much as possible
• Releases
• Have a flexible release schedule
• Use agile principles – continuous integration / continuous
delivery if possible
13. 4 – Flexibility (contd.)
• Assignments
• Engineers are encouraged to be multi-dimensional – work
across the technology stack and/or functionality
• More!!
• Flexible location – allow work anywhere culture – use Slack,
IM, etc. to stay in touch
• Flexible team size – use contractors to vary team size as
needed
• Use judiciously – e.g. distributed teams require better
communication but gets you a bigger pool of talent
15. 5 – Risk Taking
• How to take calculated risks
• Make decisions quickly – based on available data
• Follow aggressive schedule
• “If everything seems under control, you're just not going
fast enough” - Mario Andretti
16. 5 – Risk Taking (contd.)
• Rules – meant to be broken!
• Don’t follow all rules if they get in the way
• Break rules with good intent – live the company values, not
all the rules!
18. Fun!
• If team is having fun, they feel motivated and engaged,
improves productivity and retention
• Pay attention to culture – it doesn’t always happen naturally –
make sure team members are encouraged to enjoy themselves
and have time and space to do it
• Reward team achievements with fun activities
• Plan for team activities that encourage bonding
• Encourage participation in company activities such as holiday
parties or innovation jams!
23. Team Performance Evaluation (1/2)
• Questions to ask
• Teamwork/focus: What is your team's goal or highest priority and how do you measure it?
• Talent: How do you rate your team's technical ability on a scale of 1 to 10?
• Attitude/Talent/Teamwork: How capable do you rate your team in achieving your goals?
• Teamwork: What % of decisions impacting the team does the team make vs the leaders? Is
that good?
• Teamwork: Is your team highly motivated to achieve its goals?
• Fun: How much fun do you have in your job?
• Teamwork: How good is the decision making for the team? How quickly are they made?
• Teamwork: If there was one thing you would change about your team what would it be?
24. Team Performance Evaluation (2/2)
• Questions to ask (contd)
• Teamwork: How helpful are other members of your team?
• Teamwork/Fun: How are team members rewarded for achievements?
• Talent: Do you have any low performing members on your team?
• Teamwork/Risk taking: Is team leadership helping you move fast or slowing you down?
• Fun: What does your team do in their free time?
• Teamwork: Is your team productive at delivering for customers? Are customers happy with
team’s deliveries?
• Teamwork: What are the biggest challenges facing your team? Are you getting help in
resolving them?
• Flexibility: Is your team open to change? How about team leaders?
26. Business Banking Team
• In 2015, started and grew the new Business Banking team within Digital Insight
from 0 to 25 people within 2 months. Brought in awesome team leaders
(managers, architects, tech leads, scrum masters) and engineers.
• Results: Delivery of v1 pilot functionality within a record-breaking 7-month
timeframe. Included new platform and business functionality and thorough quality,
scalability, and security testing. Resulted in satisfied customers and engaged
employees.
27. Business Banking Team (contd.)
• Kickass principles applied:
• Attitude – in Digital Insight a brand new product had never been delivered in
less than 1 year. The team leadership had a “can do” attitude about getting it
done in less
• Talent – an awesome architect was hired from outside who worked closely with
with an equally awesome engineering manager. Hiring process was set up to
move fast and hire amazing talent
• Teamwork – team kickoff organized for team introductions, understanding
mission, goals and priorities, setting up team operating principles, defining
scrum teams, reviewing plan
28. Business Banking Team (contd.)
• Kickass principles applied (contd):
• Flexibility – Contractors were added to expand team quickly, outstanding
remote engineers were added to team who could deliver functionality fast with
high quality, team was self driven to a large extent
• Risk taking – The aggressive schedule was the biggest risk for the project –
risk was reduced by hiring talented team members rapidly and negotiating on
minimum features required for pilot release with product team
• Fun – In each sprint the “happiness index” was measured and any issues raised
raised by the team were fixed. After working hard for many months and
delivering initial version of the product, the entire team went on an exclusive
lunch cruise of the San Francisco Bay! Also later whole team went out for
movies
29. Big Data Team
• From 2013-15, led the Big Data engineering team to set up and grow the Hadoop
infrastructure at Intuit IFS and Digital Insight. Selected results:
• Set up new Hadoop cluster and migrated report processing from data
warehouse to big data system – dramatically reduced processing time from 1.5
days to a few minutes! Also significantly increased processing capacity.
• Scaled from an initial 10-node Hadoop cluster to a set of two 20- node clusters
to achieve high availability and disaster recovery.
30. Big Data Team (contd.)
• Kickass principles applied:
• Risk taking – the whole team was brand new to Hadoop and Big Data – so there
there was some risk to migrate to a new technology vs expanding the existing
data warehouse. Risk was mitigated by partnering closely with Cloudera and
internal engineers learning from them
• Talent and Teamwork – team already had talented engineers and data analysts.
Focusing on goals, partnering with external experts in Cloudera and making high
performing team member the engineering manager of the team helped boost
team performance significantly. Later team was augmented with Big Data
architect
• Fun – company and team organized fun events including trips for bowling, to the
the arcade, holiday parties and others. Also team participated in innovation jams
regularly winning prizes which was motivating
32. Why was the JumpUp team kickass?
- Productivity
25+ releases in last 9 months including 12
major releases with 50+ changes
75+ releases in last 3 years over 3 projects!
Project Date
Live Community in intuit.com Aug ‘08
Live Community in Quickbooks Casbah!! Sep ‘08
Intuit Community goes live! Oct ‘08
Live Community in Lacerte and ProSeries Nov ‘08
Live Community in Quickbooks.com and
Payroll Setup
Dec ‘08
Scaled up site to meet crazy growth! Dec ‘08 – Apr
‘09
33. FY08 goal of 200K
posts met by March!
(vs 125K last year)
Satisfaction and Call
Avoidance increased
significantly
Why was the JumpUp team kickass?
- Results
34. Why was the JumpUp team kickass?
- Customer Satisfaction
• “The JumpUp engineering team thrived on hard challenges - the
harder it was, the more they seemed to enjoy it. They always had an
unstoppable can-do approach.” - Lisa Gevelber (Exec sponsor of
JumpUp in ‘06-07)
• “For the Just Start campaign, it was amazing to see how the JumpUp
engineering team took on the challenge, in such a short period of time,
to deliver such a cutting-edge online experience. It’s no wonder we
won the Warrillow Small Business Marketer of the Year award for
that effort.” – Kira Wampler (Co-Lead for “I Will Just Start” marketing
campaign in ‘07)
• “The JumpUp team’s never say no attitude, iterative mindset
accompanied by their customer driven development made for outcomes
that were above and beyond just solving for one team which enabled
Live Community and Intuit Community to be a success.” – Pranay
Kapadia (Product Manager for Quickbooks Live Community in ‘08)
37. Making Low Performing Teams Kickass
• Ensure the right attitude and ability among team leaders – including can do attitude
and talent – kickass leaders result in kickass teams
• Identify low performers on team – figure out issues causing low performance – either
improve them or transition them out, quickly!
• Identify high performers – encourage and promote them. If no high performers on
the team – bring in from outside
• Identify challenges in culture or process – fix those, e.g. transition from non-agile to
agile, or negative to positive attitude
• Monitor individual team members closely, set high expectations and provide
detailed feedback – both positive and negative
• To improve low performers use a variety of techniques – training, mentoring,
providing regular feedback, in extreme cases written PIP (performance improvement
plan)
• Celebrate small successes to build confidence and morale
39. Hiring Awesome Talent
• Creating pipeline of candidates
• Use internal referrals
• Give good bonuses for anyone hired through referral – it saves money!
• If hiring push is needed, create a contest and give prizes (e.g. gift certificates
or iPads) on a weekly basis to most referrals submitted
• Provide text for employees to post job listings on LinkedIn, Facebook and
Twitter – otherwise not too many will do it
• Use consulting firms
• Find some good consulting firms that have high quality engineers and
augment your team with them
• Use recruiting agencies
• Try different ones and see which ones send you the best candidates
• Send job postings to mailing lists, Meetups, even Craigs List!
40. Hiring Awesome Talent (contd.)
• Recruiting effectively
• Interviewing
• Create an interview panel and write up the different aspects of what each
member is interviewing for – meet with panel to discuss
• Provide pool of questions in advance both for technical and behavioral
interviews
• Ensure a few interviewers are designated to get candidate excited about
company and role – the best talent has multiple options
• Designate specific days as “interview days” so that all recruiting agencies can
make a push to bring in candidates on those days
• Move fast with decision making – best talent will not be available for long