Leadership of highly technical software projects calls for strategic thinking beyond traditional management techniques. Software developers operate with their own particular mindset, culture and reward system. To motivate and inspire a top programming team, the ideal manager is a technical peer who can jump into the code and solve thorny problems. Technical involvement can keep a project moving forward, and helps the manager build credibility and trust. In this talk, Alex Martelli debunks some common management myths, and shares a wealth of immediately useful advice for anyone involved in technical software projects.
The three-legged stool is a useful metaphor for the management challenges facing a software development team. Strategic leadership, excellent programming, and effective management must be equally strong supports for the stool to stand. How do you strengthen each leg? Martelli notes that great strategic leadership requires vision, respect, courage, integrity and the ability for managers to clear the way for developers to do their jobs. By the same token, excellent developers need superior coding skills, but also need mutual trust, interaction and respect for managers and for each other. If developers are free to do their difficult jobs well, this enables managers to do their jobs.
The highly technical manager who acts as a wildcard problem solver can help a team clear specific hurdles, but more importantly, builds trust and respect by understanding all aspects of a project. However, this technocentric approach rubs against some deeply engrained management philosophies. Martelli debunks three common objections. Brooks' law states that "adding programmers to a late software project makes the project later." This is often the case when bringing in outsiders, but the highly technical manager is already up to speed on the project and can act efficiently. Time management is the another barrier. Along with everything else, how does the manager find time to code? Work must be structured to avoid burn out. Finally, technical involvement runs counter to the managerial imperative to delegate. Martelli argues that a manager must trust the independence of the team, but if he or she can also jump in at key times with credible contributions, they will be seen as a positive factor in the success of the project.
Alex Martelli is Uber Technical Lead at Google, Inc. Martelli holds a laurea in Ingegneria Elettronica from Bologna University. He wrote Python in a Nutshell, and also co-edited the Python Cookbook. He's a member of the Python Software Foundation, and won the 2002 Activators' Choice Award. Martelli spent 8 years with IBM Research, earning three Outstanding Technical Achievement Awards; twelve as senior consultant (Win32, Fortran, C, C++, Java, etc), think3 inc; and three as a Python freelance consultant, mostly for AB Strakt. He has taught Programming, Numerical Computing, and OO Design at Ferrara University and other venues.
This free podcast is from our Open Source Conference series.
Photo: Ugo Cei