• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            <2008年10月>
            2829301234
            567891011
            12131415161718
            19202122232425
            2627282930311
            2345678

            統(tǒng)計

            • 隨筆 - 44
            • 文章 - 0
            • 評論 - 86
            • 引用 - 0

            常用鏈接

            留言簿(6)

            隨筆分類(31)

            隨筆檔案(44)

            Mining

            最新隨筆

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            36 steps to success as technical lead

            zz http://littletutorials.com/2008/07/07/success-as-technical-lead/ 
            分為3個部分
            Set yourself up for success
            Build your relationship with the team
            Build your relationship with the management and business people

            Set yourself up for success

            1. Define early on what success means for you, the team and the business

            You have to have a clear idea of what you want. You also have to understand what team members and the management want. You also have to be aware that what people really want, what they say the want and sometimes even what they think they want are very different things. Try to be very honest at least with yourself. Success has different definitions for different people. If there is a big disconnect between these definitions you have a problem before you start.

            2. Believe in the project: idea, architecture, time, team

            You cannot have any kind of success if you are convinced you lead a team of morons to implement a stupid idea using the wrong architecture in a ridiculously short time. You have to really believe in the project to have a chance to success. This does not mean lie to yourself. It means do whatever you can to understand your concerns and work on them with the management. As for the architecture, it is best if you have a heavy word or if you are the architect.

            3. Understand the domain, the business requirements and the technical challenges

            You should be an expert in the technologies used for implementation. You also have to become very knowledgeable in the problem domain and the business case. This will help you understand the business decisions dropped on your head from upstairs and also will help you stand a chance at negotiating them.

            4. Know your team: strengths, weaknesses, ambitions and personalities

            Software is created by people. Your job as a “tech lead” is to support them in doing that, both from a technical point of view and at a human level. You want to lead a team of motivated and enthusiastic people. But each person gets motivated by different things.

            5. Have a plan as a result of a planning activity

            “Plans are useless but planning is essential” - (Dwight D Eisenhower, US President, general 1890-1969). Planning will make you think about the problems you face in detail. Also keep in mind that “a plan is just a list of things that ain’t gonna happen” - (Benicio Del Torro in “The Way of the Gun”).

            6. Be part in the design of everything

            This does not mean do the whole design. You want to empower team members. But your job is to understand and influence each significant subsystem in order to maintain architectural integrity.

            7. Get your hands dirty and code

            Yes you should take parts of the code and implement them. Even the least glamorous parts. This will help you not getting stuck alone between management and the team. It will also help you gain respect in the team.

            8. Act as a communication proxy for your team

            In long complex projects with big teams communication is one of the most complicated aspects. The more people you have involved in solving a problem the bigger the communication matrix becomes. Since people need information to be able to make the right decisions this will lead to an exponential increase in the time consumed for communication. Agile methodologies alleviate this problem. But in the end it is up to you to propagate important information to the right people.

            9. Make sure everybody understands the big picture: their work has implications

            This will help you greatly because will allow team members to design and implement in a way that you don’t have to fight. It is also hard work from your part.

            10. Fight for architecture and design consistency

            Doing the right thing from the design and architecture point of view is not more costly. It is actually cheaper in every project longer than a couple of months. Every early investment in architecture pays for itself later during integration and maintenance. Even if you have to admit an occasional hack or prototype in the code base you should contain it in very specific modules.

            11. Know the status of everybody’s work and detect slippage

            This allows for corrective actions and for early communication with the management. You don’t want to be caught by surprise. Remember that during 90% of the allocated time for a task the code is 90% complete.

            12. Record technical debt if you need shortcuts but try to maintain architectural integrity; report the debt

            This one is very important for products that will have multiple releases. Technical debt should be analyzed at the beginning of each iteration.

            13. Use the process that makes sense in your particular case

            Tough one. Sometimes (most of the times?) the process is not up to you. In the enterprise usually the process is pre-decided. But always keep in mind that the process in itself means nothing. It is the people who give meaning to the process. Good people can make the worst process work while the wrong team cannot make any process work. Waterfall can be implemented in a very agile way and the agile methodologies can be applied with “rigor mortis” agility (see The Agile 800 Pounds Gorilla).

            14. Avoid dogmas - question why everything is done the way is done; make sure everybody else knows the reasons

            Sometimes I hear from programmers: we are agile and combine XP and Scrum and we also do TDD (Test Driven Development - I still hope for a TDD that means Thought Driven Development). The questions that pop up in my mind are: Do you need all those? Do you “really” do them by the book?
            Anyway the point here is don’t do anything just because it is the way it has always been done. Understand why. Then explain the reasons to all team members. Rinse and repeat.

            15. Avoid design by committee; listen to everybody but make your own decisions

            No good design is born from referendum. There are lots of people making wild exotic suggestions when their a$$ is not on the line. There are also excessively prudent ideas born from fear. Even with good ideas you have to filter them and make them yours before you can include them in the design. A good architecture and a good design is usually born in one mind, an open mind that looks around. The obvious example is Linux.


            Build your relationship with the team

            16. Gain the team’s respect with the quality of your work and by doing what you are preaching17. Be fair
            18. Admit your mistakes
            19. Publicly recognize both team’s and individual members’ merits
            20. Don’t blame anybody publicly for anything
            21. Build morale and confidence by offering early victories to the team and to its individual members
            22. Match people and tasks based on skills and their personal preference if possible; explain your decisions
            23. Work the estimates with the team don’t come up with them
            24. Mentor people
            25. Listen to and learn from people
            26. Explain your technical decisions

            Build your relationship with the management and business people
            27. Be sure you have authority along with responsibility
            28. Be sure you get requirements and not architecture/design masked as requirements
            29. Explain technical decisions in business terms
            30. Try to be accurate in your estimates; avoid being too optimistic and don’t push it with hidden padding; explain the need for padding
            31. Set reasonable expectations
            32. Understand the relationships and dependencies with other teams or projects
            33. Accurately report the status with alarms, explanations and solutions; report any technical debt
            34. Resist pressure for change in requirements, and more important for shortcuts…
            35. Be aware of politics
            36. React to surprises with calm and with documented answers

            posted on 2008-10-29 21:45 泡泡牛 閱讀(1078) 評論(0)  編輯 收藏 引用


            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            午夜精品久久久久久毛片| 亚洲国产日韩综合久久精品| 色综合久久无码中文字幕| 国内精品久久久久影院优 | 精品久久久久中文字幕一区| 日本久久久久久中文字幕| 久久夜色精品国产| 久久亚洲精品中文字幕| 精品水蜜桃久久久久久久| 亚洲综合伊人久久综合| 精品综合久久久久久88小说| 中文字幕热久久久久久久| 久久久久亚洲精品无码网址| 国产综合久久久久| 久久婷婷午色综合夜啪| 丁香久久婷婷国产午夜视频| 久久精品夜夜夜夜夜久久| 亚洲日韩欧美一区久久久久我| 国内精品久久久久影院免费| 一本一本久久aa综合精品| 色婷婷噜噜久久国产精品12p| 俺来也俺去啦久久综合网| 亚洲AV日韩AV天堂久久| 国产精品久久久久久久久软件| 亚洲国产天堂久久综合网站| 2022年国产精品久久久久| 亚洲国产另类久久久精品| 久久无码国产专区精品| 亚洲国产小视频精品久久久三级| 欧美精品一本久久男人的天堂| 亚洲精品无码专区久久久| 囯产极品美女高潮无套久久久| 久久无码AV一区二区三区| 久久只有这里有精品4| 性高湖久久久久久久久AAAAA| 久久激情亚洲精品无码?V| 伊人久久综合热线大杳蕉下载| 青青国产成人久久91网| 国内精品久久久久久久久| 欧美精品福利视频一区二区三区久久久精品| 久久青青草原精品影院|