Building high performance teams requires focusing on recruiting, onboarding, and retention. For recruiting, define clear profiles and expectations. Onboarding should provide standardized environments and workflows to reduce setup time. Maintaining retention involves competitive pay, perks, and addressing issues like inconsistent promotions or lack of recognition. Teams can also improve performance by refocusing on fundamentals like database queries, object-oriented principles, and sharing knowledge through experiments and documentation. Consistency is key across all processes.
3. who am I ?
By passion: Developer/Architect
By title: CEO & CTO
By Nature: Curious
In reality: Company Handyman
Linkedin: miguelp
Twitter: lookatitude (company twitter)
Email: miguel.pinto@lookatitude.com
5. Where do you start?
Recruiting
Onboarding
Retention
6. What are you looking for? - Recruiting
A. Define the profile
B. Look for the right candidate
C. Define expectations in a realistic way
D. Sign the contract.
7. Getting started - Onboarding
● How long does it take to setup the environment?
● Are there standards?
● Are there workflows in place?
8. Common problems - Onboarding
● Inconsistent set up environments
● Not measuring — or managing — code complexity
● Forgetting code design
● No style guide
● Too many comments, or no comments at all
● Too much documentation or no documentation at all
● Working with monoliths
9. Maintaining the team - Retention
● Competitive compensation.
● Good space
● Good moral
● Free stuff (coffee, water, sodas)
● Team events/activities
10. Common problems - Retention
● Inconsistent promotions
● Recognition is close to none
● Gradual loss of motivation
● Consistently failing to meet team’s expectations
11. Onboarding - High performance
Create pre-set up environments, that run on any platform.
Create documentation for the setup (list of software/tools requirements,
pre setup credentials and so on).
Start with small but quick tasks that can be done in 1 day.
GOAL: Average time for 1st commit, 1 day or less
12. Retention - High performance
Measure all things
Leverage the data you have
17. Example 1 - High performance
● Improved readability
● Reduced the amount of to be understood
● Clear code requires less documentation
● Easier to spot and fix bugs
● Reduces duplication and code complexity
18. Retention - High performance
Back to the basics
Improve foundations
19. Back to the basics - High performance
Problem:
Get all products from the database and their related
categories
20. Back to the basics - High performance
Background:
Given that the database has only 2 products with 2
categories each.
21. Back to the basics - High performance
Question:
How would you get the result writing only 1 query?
22. Back to the basics - High performance
Question:
How would you get the result writing only 1 query?
Using a join
23. Back to the basics - High performance
Follow up question:
Ok, so how many operations are you executing?
24. Back to the basics - High performance
Other questions:
What is inheritance?
What problem does it solve?
When should it be used?
Why should it be used?
Pros and cons of that approach?
25. Back to the basics - High performance
- Re-Learn the basics
- Understand the context
- Teach them to your teams
- Understand why
- Uncover pros and cons
26. Experiment - High performance
- Try different approaches to the same problem
- Try the new things on the block (understand their
design and what advantages did they got from it)
- Present your findings in workshops/trainings, meetings.
- Organize your code repositories
- Create and share documentation
BE CONSISTENT
27. Conclusion - High performance
- Create procedures
- Define your coding styles
- Decide on the architecture
- Explain why, continuously train your team
- Treat your peers as humans
BE CONSISTENT