280 likes | 575 Views
Introduction. About MeBlah blah blahYadda yadda. Introduction. Goals of this presentationProductivity and EfficiencyHappiness and Joy. Overview. Specialization and ImprovementProductionFinishing Games. Specialization/Improvement. Types of Programmers and Technical LeadersProgrammer Growth and Career Paths.
E N D
1. Producing Programmersand Programmer Teams
Steve Taylor
Wahoo Studios
3. Introduction Goals of this presentation
Productivity and Efficiency
Happiness and Joy
4. Overview Specialization and Improvement
Production
Finishing Games
5. Specialization/Improvement Types of Programmers and Technical Leaders
Programmer Growth and Career Paths
6. Types of Programmers Coder
Lead Programmer
Key Programmer
Junior Programmer
Programmer Management
7. Coder Typical programmer who loves writing code
Any large team should consist primarily of coders
8. Lead Programmer Experienced programmer
Takes on responsibility for quality and schedule
More Later…
9. Key Programmer Experienced programmer
Key for specific technologies, performance, and risk areas
Can’t spend valuable time managing
10. Junior Programmer Relatively new programmer
Has enthusiasm and new ideas
But requires hand-holding
Keep number small
11. Company Management Technical Director
Technical Officers
12. Focus on Lead Programmers
Technical Directors
13. Lead Programmers Strong communicators, good managers
More critical for larger projects
Technical enough to direct architecture, but not necessarily best coder on team
Must be willing to spend significant amounts of time managing
14. Lead Prog. Responsibilities Designing and directing architecture
Assigning programmer tasks
Designing data path for content
Writing technical documents
Contributing to a test plan
Acquiring resources for team
Working with other leads on technical direction and quality of the game
15. Lead Responsibilities (cont.) Reviewing work done and helping solve problems
Getting the game approved (by publisher / hardware manufacturer)
Writing Code
16. Lead Programmers Summary Can’t be afraid to manage while others code
My Horror Story
17. Technical Directors Critical for larger multi-project companies
Support programming staff of entire company or large subgroup
18. T.D. Responsibilities Hiring and firing programmers
Researching and evaluating new technology (e.g. middleware), and solutions to big problems
Evaluating code and programmer performance
Helping to allocate programmers between various company teams and projects
19. T.D. Responsibilities (cont.) Arranging Training
Facilitating the exchange of technology and ideas between teams
Acquiring programmer resources
Equipment
Tools
Books, magazines, other reference
Otherwise assisting all types of programmers to grow and perform
20. Technical Director Summary A resource for programmers
Success Story
21. Growth and Career Paths Why do we care?
New Programmers
Passion
Code generation
Older Programmers
Some stay technical and look for key or senior technical role
Some look for management role
Pete Story
22. Production Tracking Programmers
Directing and Communicating
Helping Leads
Helping Coders
Data Paths
Organizing Large Teams
23. Tracking Programmers Evaluation is essential for growth and team effectiveness
Lead programmers and technical directors should regularly evaluate
Code reviews can be touchy
Matt Story
Annual Reviews
Ask for programmer’s goals
Overall feedback and evaluation
Post-mortem of game and milestone
24. Directing and Communicating Leads should give tasks that are
Meaningful
Clear
Well-documented
Evaluated later
Some programmers are self-motivated
Some need checking up
It is the lead’s job to learn which
25. Directing and Communicating Consider these options
Mailing lists
Internal newsgroups
Internal web pages
26. Meetings Programming teams should meet regularly
Review progress
Keep in mind goals, long-term vision
More important toward end of project
Exactly when programmers complain
They want to duck heads and code
Keep meetings as short as possible (e.g. every day for 5 minutes)
Story of Grumpy N64 Meetings
27. Helping Leads How can managers support lead programmers?
Help them focus on leading
Watch for signs that lead isn’t paying attention to lead duties
Review schedules
Review risks
Lend a hand with planning, documentation, scheduling
Help with the technical review stage
28. Helping Programmers How can managers support programmers?
Provide research, reference materials, training, and equipment
Recognize their achievements
Help find solutions to technical problems, complaints, work environment, etc.
Help them see long-term goals and future at company
29. Data Paths Integrating any non-code assets
Art
Audio
Design
Levels
Custom solution, 3rd party, or mixed
30. Data Paths (cont.) Establishing and maintaining data path is responsibility of lead programmer
Also involved
Tech director
Programmers
Tools programmers
Non-technical leads
Critical responsibility of technical team
31. Data Paths (cont.) In modern projects, must be planned for in advance
Decisions here affect character of entire company
Personal experiences
32. Organizing Large Teams Large teams are more common today
Multi-sku projects
Shared technology/engines
Tools teams and game teams
Things to remember:
Install capable lead over each sub-team
Establish clear final authority for decisions
Encourage communication between groups
Schedule time in advance for testing / integration and for overall management of more people
33. Finishing Games Meeting Milestones
Surviving Crunch Modes
Passing Final Approval
34. Meeting Milestones Make sure dates and requirements are clearly posted and understood
Review requirements before upcoming milestones
Plan for major risks in advance
Resolve dependencies in advance
Arrange for QA to evaluate project
Make sure programming team has QA feedback
Document status for publisher
Personal experience: Smoothest submissions were internally tested
35. Surviving Crunch Mode Management needs to show up
Support the team with meals, breaks, etc.
Fight entering crunch mode too early
Crunch mode will almost always happen
But it doesn’t have to be at the first sign of delay – it will come soon enough
36. Passing Final Approval Emotional support and encouragement
Help maintain the long-term vision
Help track down solutions
Praise successes
Give them a rest when they’re done
37. Passing Final Approval (cont.) There is always documentation
Find it
Review it
Make sure they understand it and have copies
Check for regular updates from web site, developer relations manager, etc.
Consider assigning someone to master this data
Pre-Submit!
38. Summary Letting Leads Lead, Coders Code
Resources
GDC
Books & Articles
On management in general
On effective meetings
On effective software production
Online Resources
39. Q&A
Producing Programmers
and Programmer Teams
Steve Taylor
Wahoo Studios
stay@wahoo.com