做好项目管理,才是软件开发的关键

  在软件开发过程中,经常有许多细节和事故使我们的计划无法跟上变化的步伐。例如,需求、流动性等方面的变化。为了确保可以控制项目进度,并有效避免项目在开发过程中的风险,可以想象项目管理在软件开发中的重要作用。

  项目管理一般有两个方面:项目规划和开发团队管理。

  建立项目计划

  (1)设计总体架构

  根据项目实施的需要,采用比较成熟的适合本项目的框架结构。

  在过去的几年里,当我在一家公司的技术部门工作时,公司的产品出现了各种各样的问题。例如,当该系统每天发布或访问次数过大时,该系统就会崩溃,一天内就会收到100多封bug邮件。影响了业务部门的正常使用。

  有这么多错误的原因是因为无论业务部门要求什么,技术部门都接受了这一切。这是不合理的,这不会导致如此多的错误。技术部门为业务部门服务。这是正常的。毕竟,公司的主要收入来自业务部门。问题是数据字典是由每个开发人员设计的,导致大多数数据字典的冗余甚至不合理的设计。他们只关心他们负责的模块。当模块相关时,会出现问题。

  当时,公司使用的是ASP。NET+MSSQL服务器技术,没有使用相应的框架,代码冗余,经过两个多月的整改后,系统几乎无法正常工作。

  (2)控制可扩展度

  过大的扩展将增加系统的复杂性,延长系统的开发时间;过低的扩展将直接影响系统的二次开发和维护。控制系统的可扩展性提高了系统的开发效率,降低了系统维护的难度。

  我不知道你是否觉得这个项目在早期阶段做得不好,复制和粘贴的现象随处可见,导致代码越来越多,维护越来越困难。

  (3)建立基础设施

  合理分配部署软硬件等基础设施的时间和成本。

  (4)划分开发任务

  使用wbs(工作分解策略、工作分解结构)对交付成果进行分类和划分。每个项目分为多个不同的阶段。每个阶段可分为多个工作包。工作包是wbs中最小的可交付结果。最后,从工作包中分解出多个开发任务。列表,分配给各个开发人员。

  (5)部署开发进度

  从需求研究,总结设计,详细设计,实施开发任务,测试,联合调试,SIT部署和生产环境部署往往被推迟,项目经理必须具有协商能力,预测风险能力和控制能力。项目经理推动项目前进,并为所有利益相关者的利益满足项目的接受。

  (6)测试项目成果

  每个工作包应该同步部署测试工作,以提高项目的质量。测试人员应以文本格式记录Bug Bug的工作包,向开发人员显示Bug所在的位置,并允许开发人员及时修改它们。

  管理开发团队

  (1)组建团队

  根据工作任务和项目时间的前提建立团队,根据团队职责指派人员,一般团队控制在6至10人之间。当团队超过20人时,考虑将团队分成两个独立的团队,负责不同的开发任务。

  (2)分配开发任务

  在每个迭代周期(通常为15~30个工作日)中,每个工作包应进一步细分为多个开发任务。开发任务的开发时间应控制在15个工作小时内,如果开发任务开发时间超过15个工作小时,则应考虑完善任务。应以自由选择的方式为每个团队成员分配开发任务。

  (3)跟进开发进度

  在迭代的早期,召开一个会议,让团队了解开发进度和过程,并以自主的方式分配开发任务。工具用于记录开发过程的进度。每个工作包完成后,应进行性功能测试,测试结果应以文本格式记录。

  每天举行超过10分钟的常设会议,让小组成员汇报昨天完成的发展工作、当日须完成的工作,以及在发展过程中遇到的问题。

  每周末举行一次例会,解释整个过程。

  在迭代结束时,召开一次sprint会议,总结项目进度,移交已完成的任务,审查迭代周期中遇到的问题,并为下一次迭代做好准备。

  不要忽略开发规范和代码审查。

  对于代码标准,感兴趣,请扫瞄《你见过马化腾、刘强东编写的代码吗?》

  顾名思义,代码审查是一个检查代码并确保其有效,并尽可能优化代码的过程。

  有些人会厌恶代码审查的过程,我写的代码会被别人审查,我们是否怀疑我们的编码能力?

  不,这实际上是一件好事,有人正在检查我们的代码,以减少的风险粗心的错误。即使是一个好的开发商也可能粗心。

  团队中的每个人都有自己的优势,通过代码进行审核。有些人可能会想出一个更智能的解决方案,它使用更合适的设计模式来降低复杂性并提高性能。

  通过其他人的回顾,他们可以发现可能的问题并找到需要改进的地方,这对于提高代码提交者的编码水平非常有帮助。

  跳棋可以通过阅读别人的代码和找到适合自己工作的解决方案来学习大量的新知识和技能。

  (4)系统测试

  对每个已完成的工作包进行及时的测试,以确保系统的质量和性能。测试结果以文字记录,并将测试结果与绩效工资收入挂钩,以真实数据计算团队成员的绩效收入。

  测试人员应该在文本中记录错误,并与开发人员一起向开发人员演示突出的错误,以提高修改的效率。

  在这里进行绩效考核要小心,可能会导致团队成员的流失

  (5)解决发展中的问题

  开发人员的预培训可以根据工作能力合理分配任务,指导团队成员的发展。遇到问题时,应及时在当天的站立会议上提出,以免影响发展进程。

  (6)流程化管理

  对于it软件管理,应该做以下四大流程管理:

  编码标准的制定和实施;

  制定和实施开发任务流程;

  发展进程的制定和实施;

  开发和实施测试结果。

  处理管理减少了团队成员工作的盲目性和重复性,提高了团队的工作效率。同时,也提高了团队管理者的工作效率,提高了管理的便捷性。因此,高效团队的建设离不开过程管理。

  (七)变更要求,修改项目计划

  在开发过程中,如果需求发生变化,我们必须对文本进行详细的记录,以便客户了解需求变化的实际情况以及开发商为此支付的成本和成本。与客户讨论改变计划对项目进度的影响。同时,它还为开发人员寻找工作量。

  笔者认为,在项目开发过程中,需求已经发生了变化,但可以给予相应开发人员的工作量没有变化,这对开发人员来说是非常不公平的,因此开发人员必须加班完成任务。这很容易导致人才流失,完成了项目,团队成员纷纷辞职。

  软件开发管理必须提高软件团队管理能力。管理者必须利用每一个机会让团队成员感受到团队的力量,这样他们就不会孤独和不受委屈,并且能够通过每个开发任务继续成长。

posted @ 2019-06-20 10:17  露露嘻嘻嘻  阅读(452)  评论(0编辑  收藏  举报