于诱发团队思考以及帮助找到更好的技术解决方案。
另外,团队的能力应当是有梯度的,请不要指望每一个人都在同一个方面很强。如果真的是那样,那一定不是你想要带的团队!理论上每一个工程师都有自己的强项,如何合理地运用各人的强项以保证项目不断推进,需要管理者不断地学习和探索。
除了工作质量,关心工程师的生活质量也应当是管理者的工作内容之一。经常加班加点并不是工程师们应该的,也不是这个行业的固有特质。出现经常性的加班加点,往往意味着团队技术能力不足,或者团队的管理存在问题,但无论如何这都是管理者需要致力于解决的问题。一个只关心自己利益的管理者注定是会被团队给 “抛弃的”,也同样得不到团队的鼎立支持,想想你的薪资!
光培养团队也不行,管理者自身也应具备一定的素质。一个出色的管理者应当曾经是一名出色的工程师。这里所说的出色工程师,不只是指别人交给他的任务都能完成(甚至出色完成),因为这只是出色工程师的必要条件。一名出色的工程师还应当具有良好的技术敏感度,这种敏感度是扎根于长期对技术的钻研(学出来的)和丰富经验的积累(干出来的)而获得的。只有对技术有良好的敏感度,管理者才能真正地把握住软件项目管理中的风险,从而在风险和团队发挥余地之间保持良好的平衡。请不要迷信“管理者可以不懂技术”,当然,如果你是一名大公司的CEO那就另当别论了。
如果管理者的技术积累并不足(即没有足够的技术敏感度),那还有一种方法可以加以弥补,可以考虑在团队中找一个技术能力强的人作为自己的左、右手,而且应当信任他能帮助你做好与技术相关的决策。当然,这里的前提假设是技术积累不足的管理者,他的管理能力却较突出。就作者的经历来看,的确存在技术能力不足的管理者,但却在很大程度上能将团队管理好。对于这类管理者,很关键的一点是他能很好地运用技术骨干的技术专长,且通过激励和鼓励让大家去做更多的尝试,从而使得团队的工作气氛很是活跃,一个气氛活跃的团队才有可能更具创造力。与之相比,也存在不少管理者,他的技术能力还不错,也能带领团队按步就班地工作,但却缺乏激励大家的那种意愿和能力。管理者如能运用好激励,将发现团队的精神面貌完全不同。
总而言之,管理者对于团队文化具有至关重要的作用,这也是为什么管理者的薪水在多数情形下更高的原因。一个作风正派的管理者,他的团队也将更具正气和更有活力,这种团队在绩效方面的表现也将更好。一个不大愿意承认他人的管理者,他所带出来的团队通常会显得死气沉沉,在这种团队中大家也不愿更多地发表自己的观点,其绩效也可想而知。请记住,管理不只是计划和时间表,更应当包含创造!
从工程师的角度
培养良好的工作习惯是工程师职业发展很重要的一个内容,好习惯对于软件质量也起着关键作用。就工作而言,习惯有好有坏,好的能让个人终生受益,而差的则能让整个团队痛苦。软件产品的代码是需要工程师一行一行的“码”出来,但是,如果“码”代码的工程师没有良好的编程习惯,一定不能获得高质量的软件产品。除了与编码直接相关的编程习惯外,工程师还应当培养其它的好习惯,比如:笔记习惯,将工作中花了较时间去解决的问题通过笔记的方式记录下来,这样下次要用就能更高效,笔记不一定要记在本子上,记在计算机中是一个更为有效的方式;思考习惯,对于问题积极的思考以磨练自己的洞察力,在他人提出见解时与自己的想法进行对比,看一看从中能学到什么;阅读习惯,一个希望在技术上有所成就或做到一定高层次的工程师,其知识和经验的积累一定不能只来源于个人的工作与生活,阅读是获取这些知识很重要的一种方式,多读一读行业相关的好书、简报(newsletters