使用新代码管理新团队的提示/技巧


9

在一个新团队中,您如何处理自己?在这个团队中,您是最高级的开发人员,而团队中的其他大多数人都比您小很多。团队之前的任务是其他人(包括您在内)在他们的职业生涯中没有完成的。

管理层坚持要提高整个团队的工作效率,作为高级开发人员,您有责任。

在这种情况下胜出的任何技巧?显然,整个团队需要时间来学习,我们不要忘记团队的新成员。但是,截止日期也要提前...


应该在pm.stackexchange.com
JBRWilkinson 2012年

5
@JBRWilkinson我不同意。这是关于在紧迫的期限内成为初级开发人员的技术负责人。我同意如果它是关于如何管理初级开发人员的项目的,但是成为技术主管与担任项目经理是不同的。
maple_shaft

Answers:


13

不要让时间紧迫或项目的新颖性干扰良好的工程实践。设置软件存储库,同意编码风格,提供测试套件,等等。只要您有愿意干的高素质人才,任务的新颖性就不那么重要努力工作并学习他们前面的任务。

或者换一种说法:您之所以负责,是因为管理层认为您的背景和经验为您提供了构建高质量软件所需的工具。不要因为这个任务现在看起来艰巨而突然忘记您的技能。


确保团队中的每个人都有机会估算他们将要分配的所有任务,以便他们在截止日期之前有所投入。由于您的团队仍在学习技巧,因此将估算值转换为经过的时间时,每天不要花任何时间超过五个小时。而且,如果不能按时完成任务,请确保管理层尽快知道。
达伍德·伊本·卡里姆

1
@David-5个小时的工作时间是如何计算的(实际上这并不是一个不好的数字,但是我们怎么知道)?只是承认估计这样的项目是胡扯,告诉管理层。
mattnz'3

3
我认为大多数人每天的生产力大约为6到6.5个小时。有几个管理的比这还多,但是我认为这是一个很好的平均值。但是由于团队是新成员,因此每天至少要花一个小时学习。我确实相信估算-尽管并不是每个人都擅长于估算,但它比不了解任务要花多长时间而直接进入并进行编程要好。
达伍德·伊本·卡里姆

如果您让团队成员在看到计划时间之前就制定了估算,并且他们没有明显超出计划,那么这将有助于您获得认可。在看到其他估算值之前让他们估算值也可以避免使估算值产生偏差。
BillThor 2012年

@BillThor:当然,您可以让该工作的人对其进行估算,并以他的数据为起点。我刚刚估计了一份工作,并被告知“虽然是那份工作的1/3”。他们为什么还要打扰我问是否知道需要多长时间?
mattnz'3

7

首先,从代码的第一行开始使用源代码控制系统。养成及早且经常检查代码的习惯。

其次,确定测试策略。当然,这应该意味着单元测试,但是您还应该考虑如何自动化验收测试。

第三,建立一个持续集成服务器,以便定期构建代码并进行定期测试。

了解这些内容后,请团队建立一些简单的编码标准。您希望每个人都易于阅读您的代码。标准是什么并不重要。用制表符缩进,用空格缩进,同一行上的花括号,等等。不管是什么,只要每个人都一致地应用它们即可。

由于团队主要是初级开发人员,因此请经常计划审查代码,以确保他们不会给您的系统增加太多技术负担。

最后,考虑使用SCRUM。如果这样做,请雇用教练或接受一些培训。由于您都在做从未有过的事情,因此确定实际的截止日期根本是不可能的。使用SCRUM,您的管理人员可以了解您每天的工作,以便他们查看正在(或没有)取得的进展。而且,由于您的截止日期显然是给您的,因此SCRUM至少可以保证,如果您无法按时完成任务,至少可以按增量方式提供完整的故事,这可能比与巨人告终更好系统根本不起作用。


2
+1用于版本控制和代码审查,而且经常进行。
jmq 2012年

2
我认为源代码控制非常必要,因此无论团队组成如何,都应该执行源代码控制。
maple_shaft

6

除了@chrisaycock的答案以外,请不要小看您需要花费的时间来进行辅导/培训等。作为领导,您将需要学会放弃细节并信任您的团队。您的工作是成为推动者,障碍消除剂,并在管理层戳进那里时产生干扰。在“正常”团队中,大约7或8岁时,领导不再编程,在您的情况下,下降到3或3岁。 4(甚至更少),您不是项目的编程资源。


+1分配时间进行指导和培训。有效的技术领先者可以使初级开发人员提高工作效率。
maple_shaft

“您不是该项目的编程资源”。我想知道他的管理者是否也有同样的感觉,呵呵。希望您不要成为该项目的“英雄”程序员。
2012年

我的印象是,OP只是最高级的开发人员,没有特殊的头衔或职责(即,他不是“技术主管”或“架构师”)。在那种情况下,他无疑是开发资源,并且有望被认为是最有生产力的资源。
TMN 2012年

@TMN:我在反映一个团队的情况,这个团队中有一个熟练/有经验的人,而其他人则明显缺乏技能。毫无疑问,有经验的人,如果他编码,将是最有生产力的,并且有望编码。如果他不这样做,那么TEAM将是最高产的。在一个开明的组织中,经理们会衡量个人的绩效,因此,高级管理人员在做最好的事情时看起来很糟糕-使TEAM表现出色,而获得的回报却很少。他最好将大三学生晾干,让自己看起来很棒。
mattnz'3

1

专注于两个领域的交流。

做到这一点并不容易,这就是这项工作很难的原因之一。如果在截止日期之前完成,则意味着需要削减功能。您试图避免的所有事情中的一件事就是快速编写代码以规定期限。那是代码库无法持续良好的结尾的开始,也是技术债令人窒息的开始。

2)团队间的沟通。建立像Bryan等人推荐的正式做法。确保您以团队的形式定期开会,例如,除了每日例会,每周一次。通过聆听获得尊重和信任,这是您最重要的工具。确保专注于帮助。不惜一切代价避免负面批评。必要时使用积极的批评和鼓励,例如“那太好了,一旦您可能想考虑的事是X”,而不是“那不是我们所需要的,则需要做X”


0

我所做的就是确定有能力的人并分而治之。我选择前2名或3名,并任命他们为队长。然后将其他人按照队长平分给自己的小队。

我给队长块或模块做一个程序。

船长在向自己解释自己在做什么的同时,始终给新手以较小的编程或研究任务,因此指导是在做时进行的。

我试图安排房间,以便每个人都在同一个开放空间中,但是每个团队都有自己的计算机圈子。我喜欢与所有人大喊大叫,所以事情发展很快。

到目前为止,这对于大约10-20个程序员来说效果很好。较小的小组最好在一起,而我还没有处理更大的小组。


分而治之有其陷阱。我已经看到了这一结果,因为每个子团队都在(彻底)重新设计轮子以解决整个团队面临的类似问题。
NWS 2012年

是的,如果您特别在不同的建筑物中,那么我会尽量让每个人都在一个开放的空间并定期走动。我要做的是构建核心API签名,并组建团队来构建它们,以便它们可以相互连接。
杰森·塞布林2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.