软件开发项目经理(项目管理是整个软件开发项目的核心所在)
工作包是工作分解结构中最小的可交付成果。项目经理对所有项目利益相关者的利益感到满意,推动项目向前发展,最终达到项目检查。BUG的工作包应该由测试人员以文本形式记录下来,以向开发人员显示故障位置,以便开发人员能够及时纠正。当团队成员超过20人时,应考虑将团队分成两个独立的团队来执行不同的开发任务。在此期间,不要忽视开发标准和代码审查。遇到问题时,应在当天的常务会议上立即提出,以防影响发展。
项目管理有两个方面:项目计划和开发团队。
制定项目计划
(1)规划总体框架
根据项目意图实现的要求,采用合适的项目和相对复杂的框架结构。
几年前,当我在某个团队的技术部工作时,公司的产品总是存在各种各样的问题。例如,当系统每天发布时,或者当访问次数稍微过多时,系统会显示问题。一天下来,我收到了100多封bug邮件,影响了事务部的正常使用。
有这么多错误的原因是,不管事务部提出什么要求,技术部都接受了。这不会导致如此多的错误。技术部为事务部服务是正常的,毕竟公司的主要收入是在事务部。然而,问题是数据字典是由每个开发人员计划的,这导致了大多数数据字典的冗余,甚至是不合理的计划。每个人只关心他服务的模块。当模块之间存在关联时,问题就会接踵而至。
(2)操作的可扩展性
如果扩展过大,系统的混沌程度将会提高,开发时间将会延长。过低的膨胀将直接影响系统的二次开发和保护。控制系统的可扩展性可以提高开发能力,降低系统保护难度。
我想知道你是否认为,如果项目在早期没有做好,复制和粘贴的现象将随处可见,导致越来越多的冗余代码和更难保护。
(3)建立基础设施
合理分配软件和硬件等基础设施布局所需的时间和成本。
(4)区分发展任务
工作分解结构用于分类和区分可交付成果。每个项目被分成几个不同的阶段,每个阶段可以被分成几个工作包。工作包是工作分解结构中最小的可交付成果。最后,将几个开发任务列表从工作包中分离出来,并分发给不同的开发人员。
(5)布局发展
从需求调查、总结规划、具体规划、开发任务完成、测试、联合调试、SIT布局和生产环境布局等方面来看,都经常被延迟。项目经理必须具备谈判能力、风险预测能力和控制能力。项目经理对所有项目利益相关者的利益感到满意,推动项目向前发展,最终达到项目检查。
(6)测试项目的效果
每个作业包都应同时分配测试作业,以提高项目的质量。BUG的工作包应该由测试人员以文本形式记录下来,以向开发人员显示故障位置,以便开发人员能够及时纠正。
管理发展团队
(1)组建团队
根据作业任务和项目时间的前提条件组建团队,根据团队职责分配人员,一般团队控制在6-10人之间。当团队成员超过20人时,应考虑将团队分成两个独立的团队来执行不同的开发任务。
(2)分配发展任务
在每个迭代周期(通常为15~30个工作日),每个工作包应该进一步细分为多个开发任务。开发任务的开发时间应控制在15个工作小时内。如果开发任务的开发时间超过15个工作小时,则应考虑进一步完善该任务。开发任务应该由每个团队成员自由选择。
(3)跟踪发展
在迭代的早期阶段召开会议,让团队成员了解开发和过程,并通过独立选择的方式分配开发任务。用事物来记录发展过程。每个工作包开发完成后,应进行功能测试,测试结果应以文本形式记录。
每天召开10分钟以上的常务会议,让团队成员
迭代结束时,召开冲刺会议,总结项目意图和交行已完成的任务,回顾迭代周期中遇到的问题,为下一次迭代做准备。
在此期间,不要忽视开发标准和代码审查。
有关代码标准,请阅读《你见过马化腾、刘强东编写的代码吗?》
代码审查是一个审查代码并确保其能够正常工作,以及尽可能优化代码的过程。
有些人会对代码检查的过程感到不快。我想让别人检查我写的代码。你怀疑我们的编码能力吗?
事实上,它不是。有人检查我们的代码实际上是一件好事。它可以减少粗心错误造成的危险。即使是最好的开发者也会有粗心的时候。
团队中的每个人都有自己的优势,这些优势是由代码来检验的。有些人可能会想出一个更聪明的解决方案,使用更合适的规划形式来减少混乱和提高功能。
通过他人的检查,他们可以发现可能存在的问题,并找到可以改进的地方,这对于提高代码提交者的代码水平有很大的帮助。
观众可以通过阅读别人的代码学到很多新知识和技能,并为自己的作业找到合适的解决方案。
(4)系统测试
对每个完成的工作包进行现场测试,以确保系统质量和功能。将测试结果记录在文本中,将测试结果与绩效工资收入联系起来,并根据实际数据计算团队成员的绩效收入。
测试人员应该在文本中记录错误,并与开发人员一起向开发人员展示突出的缺点,以提高纠正能力。
这里的绩效评估应该是稳定的,这可能会导致团队成员的流失。
(5)处理发展中的问题
为了在早期阶段培训开发人员,可以根据操作能力分配任务,并且可以指导团队成员的开发。遇到问题时,应在当天的常务会议上立即提出,以防影响发展。
(6)过程管理
流程管理是一种系统化的方法,以标准化的对等优秀交易流程为中心,旨在持续改进组织交易绩效。它是一种操作定位描述,涉及过程分析、过程定义和重新定义、资源分配、时间组织、过程质量和能力评估、过程优化等。由于过程管理是根据团队的具体情况来计划的,所以这个过程将根据内部和外部环境的变化来优化。
对于信息技术软件管理,应妥善处理以下四个过程:
编码标准的制定和实施;
发展任务进程的制定和实施;
制定并实施基于流程的起草和实施;
测试结果的制定和实施。
处理减少了团队成员的盲目和重复工作,提高了团队的工作能力。它们一起还提高了团队经理的权力,为管理提供了方便的管理工具。因此,建立一个高效的团队离不开基于过程的管理。
(7)需求变化和项目计划修订
在开发过程中,当需求发生变化时,有必要做具体的文字记录,以便客户能够了解需求变化的实际情况和开发商支付的成本价值。与客户讨论,让他们知道计划修订对项目开发的影响。为开发者争夺工作量。
我已经认识到,在项目开发的过程中,需求已经发生了变化,但是可以分配给相应开发人员的工作量并没有变化。这对开发者来说是不公平的,他们必须加班来完成他们的任务。这很简单,导致人才流失。完成这个项目后,团队成员相继辞职职务。
在软件开发和管理中,有必要提高软件团队的管理技能。管理者应该利用一切机会让团队成员感受到团队的力量,这样他们就不会被孤立或被冤枉。他们将在每个发展任务中继续成长。
在软件开发中,做好项目管理是不可忽视的。只有当项目做得好,它才能不影响项目的发展。只有当项目做得好,它才能被推进。最后,对项目进行了测试,并成功完成了预期的开发任务。