首先,分几个层面来看,懂技术对于项目团队管理者来说是肯定要的,对项目管理者来说会有哪些好处?
对于自身而言 :
项目管理本身可以认为是一个综合管理学科,是可以跨领域应用的,如果懂技术的话就可以更深刻的理解这个行业的规则,对产品、技术、平台、架构的了解足以让你把控需求范围,对技术人员的能力会有更多的了解,在和项目干系人的沟通中也能更加主动,增加自己对项目的把控,在项目管理工作中方方面面地提升自己的自信心。
对项目和团队而言 :
俗话说,知己知彼,百战不殆。不管是在对项目目标进行拆解,工作量的评估,技术选型,人力、物资的需求和安排等管理规划工作方面,还是在了解掌握项目团队实际执行的状况以及困难,跟团队沟通的时候,懂技术的管理者自然能对项目发展趋势有更加清晰的了解,以便和团队做出更加合适的判断。
对客户而言 :
在客户提出需求变更,新需求的时候,如果对技术有一定的评估,自己能够预判出公司研发实现这个功能是否困难,能否满足要求,大约需要多少工作量,并在必要的时候说服客户取消或者简化需求,一方面能及时给客户方回应,增加客户信赖度,另一方面能提前帮团队过滤需求,帮助团队提高专注力。
对公司而言 :
现如今很多公司对管理人员都会涉及到一定的技术考核,以筛选出更为高端的复合型人才,一是为了工作中少一些摩擦,二是可以在公司遇到技术问题分歧时候提出意见或帮助决策。
成长首先就是要打破自己的认知,不断的突破自己。那在软件项目管理需要懂哪些技术,需要懂到什么程度?
每个公司或项目情况不一样,细说很难说全,这里只说下大概,更详细的知识则需要自我梳理
首先宏观整体需要了解,类似于上图中的梳理: 1、研发流程涉及哪些环节?各个环节的前置条件,准出规则是什么?
2、各个环节协作的难点和典型问题是什么?有什么好的应对措施?
3、研发团队的各个角色如何合作?技术协作关系是怎样的?
4、常见的软件架构有哪些?优劣势是什么?适合什么样的团队?
而从微观上看,首先需要把研发流程进行拆分:
1、需求阶段的核心实践有哪些?使用哪些工具,解决什么问题?
2、开发阶段的核心实践有哪些?使用哪些工具,解决什么问题?
3、测试阶段的核心实践有哪些?使用哪些工具,解决什么问题?
4、部署阶段的核心实践有哪些?使用哪些工具,解决什么问题?
5、运维阶段的核心实践有哪些?使用哪些工具,解决什么问题?
其次,对典型的工程实践也需要了解其原理以及常见的工具。可能涉及的知识包括:代码分支管理、测试分层策略、代码分析扫描、持续交付流水线、配置管理、环境管理等等。