This means that they have to be able to speak two languages - the high-level language of the project manager to whom they report, and the low-level technical language of their team. In effect, they're the translator between the two dialects.
Observation suggests that there are not that many senior techies who have the skills and personal characteristics necessary to perform the Technical Lead role well. … n percent did a good job of it, twenty percent just got by, and the remaining seventy percent screwed it up
Mistake #0: Assuming the team serves you
Assume that their seniority somehow gives them an elevated status in their organization. Once their ego gets involved, the door is open to a host of concomitant miseries such as emotional decision making, defensiveness and intra-team conflict.
Mistake #1: Isolating yourself from the team
Mistake #2: Employing hokey motivation techniques
Different sorts of people are motivated by different sorts of rewards. … programmers tend to be focused on the practical and functional, and value things that they can use to some advantage. ...e him something of use A second monitor for his computer will be well received, as will some extra RAM, a faster CPU, cooler peripherals, or a more comfortable office chair….technical education
Mistake #3: Not providing technical direction and context
A common mode of failure amongst Technical Leads is to focus on their love of the "technical" and forget about their obligation to "lead." Leading means thinking ahead enough that you can make informed and well-considered decisions before the need for that decision becomes an impediment to team progress.
The most obvious form of such leadership is the specification of the software's overall architecture. Before implementation begins, you should have already considered the architectural alternatives available, and have chosen one of them for objective and rationally defensible reasons. You should also have communicated this architecture to the team, so that they can always place the units of work they do in a broader architectural context. This gives their work a direction and promotes confidence that the teams collective efforts will bind together into a successful whole.
…
always be prepared to admit that a decision you've made was incorrect, if information to that effect should come to light. Some of the nastiest technical disasters I've witnessed have originated with a senior techie with an ego investment in a particular decision, who lacks the integrity necessary to admit error, even when their mistake is obvious to all.
Mistake #4: Fulfilling your own needs via the team
Mistake #5: Focusing on your individual contribution
Changing roles from developer to Technical Lead requires a certain adjustment in mindset. As a developer you tend to be focused upon individual achievement. You spend your time laboring on units of work, mainly by yourself, and can later point to these discrete pieces of the application and say, with some satisfaction, "I did that."
But as a Technical Lead your focus shifts from individual achievement to group achievement. Your work is now to facilitate the work of others. This means that when others come to you for help, you should be in the habit of dropping everything and servicing their requests immediately. fatal mistake some Technical Leads make is to try and retain their former role as an individual contributor, which tends to result in the Technical Lead duties suffering, as they become engrossed in their own problems and push the concerns of others aside.
Mistake #6: Trying to be technically omniscient
Just because you have the last word in technical decisions, don't think that it is somehow assumed that you are the programming equivalent of Yoda.
Mistake #7: Failing to delegate effectively
To successfully lead a group, there must be an attitude of implicit trust and assumed good intent between the leader and those being lead. Therefore a Technical Lead must be willing to trust his team to be diligent in the pursuit of their goals, without feeling the need to watch over their shoulder and constantly monitor their progress. This sort of micromanagement is particularly loathed by programmers, who recognize it as a tacit questioning of their abilities and commitment.
But ineffective delegation can also arise for selfish reasons. Several times now I've seen Technical Leads who like to save all the "fun" work for themselves, leaving others the tedious grunt work.
Mistake #8: Being ignorant of your own shortcomings
Some people simply don't have the natural proclivities necessary to be good Technical Leads. It's not enough to have good technical knowledge. You must be able to communicate that knowledge to others, as well as translate it into a simpler form that your management can understand. You also need good organizational skills.
Mistake #9: Failing to represent the best interests of your team
Perhaps the most nauseating mistake a Technical Lead can make is to become a puppet of the management above them. As the interface between management and technicians, it is the Technical Lead's role to go into bat with their management to represent the best interests of their team. This means standing up to the imposition of unreasonable deadlines, fighting for decent tools and resources, and preventing the prevarications of management from disturbing the rhythm of the project. A weak-willed or easily manipulated Technical Lead will incur the disrespect of his team.
Mistake #10: Failing to anticipate
An essential part of the Technical Lead's role is keeping an eye on the "big picture" - the system-wide concerns that are easily forgotten by programmers whose attention is consumed by the coding problem they currently face.
Mistake #11: Repeat mistakes others have already made
Mistake #12: Using the project to pursue your own technical interests
Remarkably, developers can reach quite senior levels in their organization without having learnt to appreciate the difference between work and play….From their perspective, the purpose of a development effort is not to create something of value to the business, but to create an opportunity to experiment with new technologies and pad their CV with some new acronyms. Their technology selection is based upon whatever looks "cool"
Mistake #13: Not maintaining technical involvement
In order to fully appreciate the current status of the project as well as the difficulties your team is facing, it is vital that you maintain a coding-level involvement in the project.
Mistake #14: Playing the game rather than focusing on the target
Mistake #15: Avoiding conflict
Mistake #16: Putting the project before the people
It's one thing to be focused on the project's goals, but quite another to adopt a "succeed at all costs" attitude. Ambitious Technical Leads, concerned with the image they project to their management, sometimes accept impossible goals or unreasonable demands, because they lack the courage or integrity to say "no."
Mistake #17: Expecting everyone to think and act like you
eing a Technical Lead may be the first time you are exposed so frequently and directly to the problem solving styles and low-level work habits of others. … Avoid the temptation. Learn to accept the varieties of cognitive styles on your team, and recognize that this cognitive diversity may actually be an asset, for the variety of perspective it brings.
Mistake #18: Failing to demonstrate compassion
Always remember that your team members are people first and programmers second. You can expect them to be temperamental, inconsistent, proud, undisciplined and cynical - perhaps all in the same day.
Extract - Great Mistakes in Technical Leadership
2007.11.22. 22:19 takacsot
Szólj hozzá!
A bejegyzés trackback címe:
https://takacsot.blog.hu/api/trackback/id/tr31776004
Kommentek:
A hozzászólások a vonatkozó jogszabályok értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a Felhasználási feltételekben és az adatvédelmi tájékoztatóban.
Nincsenek hozzászólások.