开发团队通常包括许多不同的职位:
前端开发员
后台开发人员
质量保证工程师
DevOps工程师
项目经理
软件开发经理是做什么的?7个关键角色
软件开发经理主要负责协调团队成员和客户,分配资源,并简化流程。软件经理必须确保在给定的时间内完成所有的交付成果。 根据项目的范围,经理也可以在开发中承担更多的实践角色。然而,他们的主要作用是监督软件开发的过程。 这些是软件开发经理的主要职责:
1. 管理软件开发团队
首先,软件开发经理负责确定项目所需的技能。他们根据个人的技能和经验来分配任务。这些应该使团队能够约定一个路线图。反过来,团队成员应该在约定的时间内交付。开发经理定期评估他们的表现。他们还评估团队成员是否需要额外的培训,并在出现问题时进行预测。软件工程经理花了很多时间来管理人。这包括每天和每周的团队会议和定期的1对1会议。
2.雇用和招聘
在管理团队的同时,开发经理还必须帮助招聘和雇用合适的团队成员。雇用软件开发人员确实是一个挑战。很难评估开发人员是否擅长他们的工作。一个好的开发经理已经和开发人员一起工作了很多年。因此,他们对什么是好的开发人员或坏的开发人员有更好的感觉。雇用错误的开发人员可能会造成巨大的损失。因此,一个优秀的开发经理可以帮助确保你在团队中雇用正确的人。
3. 管理工具
软件经理要确保团队在开发过程中能够使用所需的工具。软件项目需要一系列的工具,如项目管理、源码控制、CI/CD管道、云主机、IDE和其他开发工具。经理必须跟踪团队成员在项目中使用的所有设备和应用程序。
4. 控制项目时间线
软件经理最关键的职责之一是监控项目的进展。项目开发是一个复杂的过程,充满了很多路障。因此,经理应该在最后期限上讲究策略,给开发人员足够的时间来适应突发问题。此外,经理将与客户或管理层进行协商,以建立合理的时间表来完成产品。大多数团队都有一个项目经理,负责监督项目的日常进展,但软件开发经理在组织内设计并执行软件开发的生命周期。
5. 确保软件质量
软件开发经理确保适当的质量保证(QA)流程到位。在某些情况下,公司可能需要有一个QA经理参与。然而,软件开发经理负责为团队制定QA指南。他们详细说明了什么是QA,以及如何对功能进行QA,即使是一个单独的团队在进行QA活动。
6. 验证关键的架构决定
对于一个开发团队来说,最困难的事情之一是做出关键的架构决定。开发经理确保有一个可扩展的系统架构设计。这样一来,开发人员就有了利用哪些技术的准则。软件开发经理引导团队为企业创造明智的架构选择。
7. 帮助推动产品战略
确定核心功能和要求对于提出正确的开发方法和系统是必要的。更多时候,软件开发经理也需要成为产品方面的专家。有些公司有一个产品团队,最终推动所有的产品路线图、需求等。然而,软件开发经理仍然需要成为关于产品和它如何工作的专家。他们应该在产品路线图上有强烈的发言权。此外,软件开发经理还必须与参与项目的所有各方进行协调。他们还需要与产品的终端用户紧密合作。无论是内部项目还是客户的产品,软件开发经理都必须定期与产品所有者沟通。同样地,他们必须清楚地阐述并将需求翻译给团队。
为什么你需要一个软件开发经理
软件开发经理的角色在产品开发中提供了价值。每个成员都在项目中发挥着巨大的作用,但经理引导着车轮前进。以下是你需要一个软件开发经理的原因:
1. 更好地确定项目范围
凭借模范的工作经验,开发经理在确定项目范围方面具有很高的知识。他们维护项目的更新和文件,特别是在敏捷项目中。
2. 他们管理团队中的关系
作为团队的联络人,优秀的开发经理有助于维持团队和利益相关者之间的健康关系。他们出色的沟通技巧在提高公司内部的透明度方面发挥了重要作用。这样一来,团队就会相应地解决出现的问题。
3. 船需要一个船长
如果你告诉他们要写什么代码,软件开发人员就可以写代码。开发经理介入,帮助团队确定优先次序并编写正确的代码。他们知道如何利用自己多年的经验来驾驭软件开发。
4. 需要有人为团队提供保护
在企业界,开发经理花了很多时间来处理企业中的官僚主义。经理们可以保护团队不受优先权转移、范围蠕变以及生活在企业界的各种斗争的影响。
5. 一个更好的质量衡量标准
他们的大部分作用可能是控制每个过程,以确保高质量的产出。此外,软件开发经理在测试产品的功能方面也是亲力亲为。这应该能让领导们放心,启动会很顺利,软件会按预期工作。
6. 开发经理支持流程
任何影响产品和流程的事情都在开发经理的掌控之中。开发经理建立精简的流程以促进团队的效率。因此,他们可以看到可能的风险并避免它们。你可以看到,当你的项目有一个开发经理时,会有最小的延迟和阻碍。
7. 他们在技术方面帮助你
掌握最新的技术是开发经理拥有的另一个优势。凭借他们在该领域的熟练程度,他们可以推荐和设计具有最新、最实用技术的产品。这将对你的产品非常有利。为什么呢?他们确定哪些工具最适合你的产品和你的商业战略。
软件开发经理的技能和要求
要成为一名专业的软件开发经理,需要有广泛的经验和技能。没有人能够在管理员工、编写代码、项目管理和与客户交谈方面表现出色。如果有人在所有这些方面都是专家,他们就是独角兽。我们应该抓住他们,这样我们就可以研究和克隆他们。大多数有才能的开发经理在一两件事情上都很出色,而不是全部:
一般来说,所有的软件开发经理都应该具备以下条件。
10年以上的工程师或工程管理经验
学士学位
优秀的沟通技巧
较强的领导素质
较强的解决问题的能力
解决冲突的能力
根据公司的需求,软件开发经理的角色可以有很大的不同。你必须思考你的公司对开发经理最需要什么。这些要求可能会随着时间和团队的不同而改变。
你最需要软件开发经理的什么技能?
深入的行业和产品知识或专长
改善开发过程
招募和建立一个团队
提高产品的质量
解决复杂的技术难题
建立一个新的软件产品
维护或更新一个现有产品
实践编写代码
推动关键的架构决策
优秀的项目管理技巧
与关键客户或产品所有者交谈
一个在产品开发和架构方面很出色的人,并不总是擅长处理公司的政治和预算问题。这就是为什么大公司需要CTO、软件开发副总裁、软件开发总监、软件开发经理和团队领导。公司内所有这些不同级别的领导都专门负责不同的角色。
了解软件开发管理水平和工作头衔
在这篇文章中,我们从整体上讨论了软件开发经理。根据公司的情况,在一个开发团队的组织结构图中,有各种不同的工作头衔和级别。在一个小公司,你可能会发现一个首席技术官或一个软件开发总监。他们与一个或两个团队的几个软件工程师一起工作。他们也不会有一个结构化的产品团队。 在大型企业,你会发现几个团队领导或主任。很可能有多个业务部门或组织在从事不同的产品。此外,可能有一些前端和后端团队。这些公司的组织结构图会有更多的管理层次。他们也可能有产品管理团队。让我们来比较一下常见的软件工程工作头衔和角色之间的一些区别。请注意,有些公司将其称为软件工程,应用开发,或类似的术语,而不是软件开发。
团队领导
大多数开发团队应该有两到五个软件工程师。其中一个人应该是团队领导。团队领导在战术上帮助完成每天的所有工作。他们可以帮助推动架构决策,为团队简化项目需求。
然而,团队领导可能较少参与流程管理。他们不驱动流程。他们专注于完成工作并指导其他开发人员克服障碍。
软件开发经理
软件开发经理的工作更多的是管理人员和帮助定义流程。他们也可能亲自动手编写代码。这意味着他们从 "内部 "管理项目,作为团队的一个组成部分。
软件开发总监
在这个级别,软件开发总监不需要亲自动手编写代码。他们的重点更多的是在流程、时间表、预算、招聘和处理日常的企业官僚主义。他们将从外部管理项目。主任要管理多个项目和经理。他们必须善于委派工作并按指标进行管理。
软件开发副总裁
一个副总传统上管理着多个总监。他们可能会监督多个产品或业务单位。他们将与产品所有者、公司利益相关者和开发经理合作,以确保工程团队满足业务目标。
作为一个软件开发副总裁,他们对一切都负责。他们的大部分时间是与没有工程背景的人一起工作。此外,他们大多与整个组织的人合作,为软件开发的需求搭桥。
首席技术官
首席技术官(CTO)有多种类型。根据公司的规模和类型,他们可能执行不同的任务。一般来说,他们专注于企业应该如何使用技术来实现其目标。他们帮助推动团队的整体战略。
大多数CTO是以产品为导向的。他们推动路线图并负责工作的整体交付。在许多公司,他们是幕后的天才,比其他人更了解产品和行业。
在一些公司,首席技术官可能会更多地亲身参与编写代码。有时他们负责新产品的原型设计和解决公司的最大问题。此外,他们允许董事和副总裁管理日常流程,而他们解决只有他们才能解决的复杂问题。这在早期阶段的初创企业中很常见。
首席信息官
最高级别的软件开发主管可能是首席信息官(CIO)。有些公司两者都有,而CTO通常向CIO报告。关键的区别是,CIO还负责组织内所有的基础设施和数字资产,以及软件。他们将应用程序、服务器和基础设施部署到成千上万的地方。
使用大量第三方应用程序或桌面、服务器或基础设施的公司可能会有一个CIO。创建软件即服务(SaaS)解决方案的公司通常有一个CTO。
开发经理应该写代码吗?
一个常见的问题是,"你的软件开发经理应该写代码还是只管理团队?" 如果他们应该写代码,那么分配给他们的时间比例是多少?有些公司在挣扎,因为他们把最聪明的开发人员挖出来,然后提拔他们为经理。问题是,他们可能并不擅长管理其他人员或流程。更糟糕的是,他们宁愿躲在黑暗中写代码,也不愿做任何管理工作。管理者首先需要成为管理者。他们的工作是激励大家提高生产力。如果顶级开发人员被指派领导团队,那么就应该有另一位经理。这位经理将监督项目的日常活动。编写代码的经理可能只能做到25%的时间。50/50的混合模式很少有效果。他们无法进行上下文切换,也无法对两者给予适当的关注。一个软件开发经理花多少时间来写代码是很棘手的。这往往会导致实际管理团队的时间减少。
如何聘用软件开发经理
鉴于拥有一名软件开发经理的好处,大多数企业都看到了团队中拥有一名软件开发经理的价值。这些资源是拯救世界的超级英雄。然而,在今天的技术市场上,要找到一个开发经理是非常困难的。一个原因是,最好的经理已经被雇用了。你不会总是看到他们在找工作,因为他们被他们目前的雇主所珍视,并得到了很好的补偿。另一个原因是,他们是软件经理中的佼佼者。这个角色不是一个初级职位。需要多年的经验才能胜任这个职位。他们中的一些人至少有10年的软件开发经验。最后,本地的软件开发经理是很难找到的。请记住,你不是唯一在寻找他们的人。企业的竞争不仅仅是产品的竞争,也是人才的竞争。所以,你需要提供一个有竞争力的薪水来吸引一个专家级的开发经理。幸运的是,远程办公和远程工作的时代终于来临了。企业现在可以选择雇用远程软件开发经理。
今天先到这儿,希望对云原生,技术领导力, 企业管理,系统架构设计与评估,团队管理, 项目管理, 产品管管,团队建设 有参考作用 , 您可能感兴趣的文章:
领导人怎样带领好团队
构建创业公司突击小团队
国际化环境下系统架构演化
微服务架构设计
视频直播平台的系统架构演化
微服务与Docker介绍
Docker与CI持续集成/CD
互联网电商购物车架构演变案例
互联网业务场景下消息队列架构
互联网高效研发团队管理演进之一
消息系统架构设计演进
互联网电商搜索架构演化之一
企业信息化与软件工程的迷思
企业项目化管理介绍
软件项目成功之要素
人际沟通风格介绍一
精益IT组织与分享式领导
学习型组织与企业
企业创新文化与等级观念
组织目标与个人目标
初创公司人才招聘与管理
人才公司环境与企业文化
企业文化、团队文化与知识共享
高效能的团队建设
项目管理沟通计划
构建高效的研发与自动化运维
某大型电商云平台实践
互联网数据库架构设计思路
IT基础架构规划方案一(网络系统规划)
餐饮行业解决方案之客户分析流程
餐饮行业解决方案之采购战略制定与实施流程
餐饮行业解决方案之业务设计流程
供应链需求调研CheckList
企业应用之性能实时度量系统演变
如有想了解更多软件设计与架构, 系统IT,企业信息化, 团队管理 资讯,请关注我的微信订阅号:
作者:Petter Liu
出处:http://www.cnblogs.com/wintersun/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
该文章也同时发布在我的独立博客中-Petter Liu Blog。