软件过程改进:经验和教训
软件开发实习报告:经验与教训总结

软件开发实习报告:经验与教训总结一、引言在大学期间,作为一名计算机科学专业的学生,实习已经成为获取实际工作经验的重要途径。
我曾在一家软件开发公司进行为期三个月的实习,通过这段经历,我获得了许多宝贵的经验和教训。
本文将总结我在软件开发实习中所获得的经验,并分享一些教训,希望对其他实习生或即将开始实习的同学有所帮助。
二、项目经验与技术能力提升在软件开发实习中,我参与了一个由公司指导员负责的大型项目。
这个项目要求我们设计和实现一个在线购物平台。
在这个过程中,我学到了许多软件工程的基本原理和开发技巧,如需求分析、项目管理、代码规范等。
我也学会了如何与团队成员合作、按时完成任务,并与其他部门进行有效的沟通。
同时,我也在实习中不断提升了我的技术能力。
我熟悉了多种开发工具和技术,包括Java编程语言、HTML、CSS、JavaScript等。
我了解了软件开发的各个阶段,从需求分析到设计、开发和测试等。
我学会了使用版本控制工具(如Git)进行代码管理和协作开发。
通过实习项目,我实践了系统设计、数据库设计和接口设计等开发技能。
三、工作中的经验1. 需求理解和沟通在实习中,我经常需要与其他团队成员和客户进行沟通,以确保需求的准确理解。
我学到了如何主动提问、倾听和总结,以便更好地理解和满足用户需求。
我发现,及时的沟通是项目成功的关键因素之一。
2. 编码规范和团队合作实习期间,我意识到编码规范的重要性。
遵循编码规范不仅可以提高代码的可读性和可维护性,还可以帮助团队成员更好地合作开发。
我学会了使用代码静态分析工具来检查代码风格和质量,并在整个项目中遵守统一的编码规范。
3. 有效的项目管理和时间管理在实习中,我学到了如何进行有效的项目管理和时间管理。
通过制定详细的计划和排定优先级,我能够更好地控制和管理项目进度,并提前预测和解决潜在的问题。
我意识到,良好的项目管理和时间管理对于项目的顺利进行至关重要。
四、实习中的教训1. 虚心学习和主动沟通在实习中,我意识到虚心学习和主动沟通的重要性。
软件开发过程改进

软件开发过程改进随着科技的不断进步,软件已经成为我们生活不可或缺的一部分,而软件开发也成为了一个行业,它涉及的领域广泛:人工智能、云计算、物联网、大数据等等。
在这个行业中,努力追求改进软件开发过程的方法,已成为许多公司成功的关键。
软件开发过程中存在许多问题。
首先,软件开发时间过长,导致产品上市时间晚于竞争对手,从而影响销售。
其次,软件可能存在缺陷或漏洞,这会影响客户使用,并使产品口碑下降。
因此,改进软件开发过程已成为一项重要任务,它直接关系到软件开发行业的成败。
改进软件开发过程的方法,有很多,比如团队协作、代码审查、测试和质量保证等,这些方法需要实施的同时,也需要与现有方法和流程相结合。
以下是我所关注的三个改进软件开发过程的方法。
第一,采用敏捷开发模式。
敏捷开发是一种以人为本、迭代、快速交付、小批量交付、适应变化的开发模式。
通过敏捷开发,团队可以在不断的反馈和交流中逐步完善软件,不断提高软件的质量和效率。
与此同时,采用敏捷开发模式可以缩短软件的开发时间,提高软件的部署速度,最终提高客户满意度。
第二,采用自动化测试。
自动化测试是通过工具或脚本自动执行测试用例的过程。
通过自动化测试,测试人员可以专注于研究软件的特定方面,而不需要繁琐的手动测试。
自动化测试可以帮助团队更快地发现软件的缺陷,并大大提高软件的质量。
第三,采用DevOps模式。
DevOps是将开发和运维部门统一起来,通过自动化和流程改进实现软件交付、部署和运维的协作和集成。
DevOps可以帮助团队更快地研发和交付软件,减少团队成员的沟通和合作成本,并在快速变化的市场环境中保持竞争力。
改进软件开发过程需要的是全团队的努力,其中主要是开发人员、测试人员和项目经理。
只有整个团队都牢记软件开发过程的目标,才能更好地执行软件开发过程的改进策略,并提高软件质量和效率。
改进软件开发过程是长期目标。
团队应该通过经验教训和运营指标,并将软件开发过程沉淀下来,总结出一套行之有效的流程,实现对软件开发过程的持续改进。
软件项目经验教训总结

软件项目经验教训总结咱做软件项目啊,那可真是经历了不少事儿,酸甜苦辣都尝了个遍。
就说之前那个项目,刚开始的时候,那场面,真像一群无头苍蝇,嗡嗡嗡的,都不知道该往哪儿飞。
咱团队那几个人啊,一个个都跟打了鸡血似的,摩拳擦掌,觉得这项目还不手到擒来。
组长老张啊,那是个瘦高个儿,眼镜片跟瓶底似的厚,天天瞪着那双大眼睛,跟我们喊:“同志们呐,咱得把这项目干漂亮咯,可不能掉链子!”大家也都跟着喊:“行!没问题!”可这项目一开始干起来啊,就发现不是那么回事儿。
需求那叫一个模糊啊,就跟雾天开车,连路都看不清楚。
客户呢,也是一会儿一个主意,今天说要这样,明天又说要那样,把咱这项目计划全给打乱咯。
有一回,咱为了满足客户一个新需求,连着加了好几天班。
那办公室啊,晚上亮得跟白天似的,键盘声噼里啪啦响个不停。
我那对桌小李,本来是个精神小伙儿,这几天下来,眼窝都凹进去了,头发乱得跟鸡窝似的,还一边敲代码一边嘟囔:“这客户咋这么折腾人呐!”好不容易把新功能开发出来了,测试的时候又出问题了。
各种bug就跟那地里的野草似的,怎么除都除不干净。
咱这心里啊,别提多郁闷了,就感觉像是一拳打在了棉花上,有劲使不出。
不过咱也不能就这么认输啊,于是大家又开始埋头苦干,找问题、改代码。
那氛围,紧张得都能听见心跳声。
经过一番努力,总算是把bug都解决得差不多了。
项目交付的时候啊,咱心里还挺忐忑的。
就怕客户又挑出啥毛病来。
结果呢,客户还挺满意,对咱竖起了大拇指:“你们这活儿干得不错啊!”听到这话,咱那心里啊,就跟吃了蜜似的甜。
通过这个项目啊,咱也算是明白了,做软件项目啊,得把需求搞清楚,跟客户沟通好,不能自己闷头干。
还有啊,团队的力量那是无穷的,遇到困难的时候,大家一起咬牙坚持,就没有过不去的坎儿。
以后再做项目啊,咱可不能再像刚开始那样瞎忙活咯。
软件开发岗位实习报告_软件开发流程改进与效率提升

软件开发岗位实习报告_软件开发流程改进与效率提升软件开发岗位实习报告:软件开发流程改进与效率提升一、引言随着信息技术的高速发展和普及应用,软件行业迎来了蓬勃发展的黄金时期。
作为一名软件开发岗位的实习生,我在这段时间中深切体会到了软件开发过程中遇到的各种挑战。
本报告将围绕软件开发流程的改进和效率提升进行分析和总结。
二、流程改进1.项目需求管理:在软件开发的初期,项目需求的明确和有效管理对整个开发过程至关重要。
我们通过引入敏捷开发方法,运用用户故事、特性点评估、迭代和优先级管理等技术手段,从而更好地了解和满足用户真正的需求,减少需求变更的风险。
此外,我还尝试使用在线的需求管理工具,帮助我们更好地跟踪任务状态,提醒开发人员及时处理。
2.团队协作与版本控制:为了提高开发效率,我们采用了Git作为版本控制工具,并建立了分支管理策略。
每个开发人员负责一个分支,利用分支功能进行代码的开发、测试和集成,最后合并到主分支。
这一措施有效避免了频繁的代码冲突和合并问题,提高了团队的协作效率。
3.代码质量管理:在软件开发过程中,代码质量的管理和控制是提高效率的关键。
我们使用静态代码分析工具扫描代码中的潜在问题,如重复代码、代码规范违反、安全漏洞等。
此外,通过引入代码评审机制,开发人员相互审查代码,提供反馈和改进建议,进一步提高了代码质量。
4.自动化测试:为了减少手动测试的工作量和提高测试的效率,我们引入了自动化测试框架和工具。
通过编写自动化测试脚本,能够快速进行回归测试和功能验证,提高了测试的准确性和效率。
三、效率提升1.技术学习和新技术应用:在实习期间,我积极主动学习新的技术和工具,并将其应用于软件开发实践中。
例如,学习和应用了容器化技术,使用Docker进行开发和部署,大大提高了开发、测试和交付的效率。
2.团队协作与交流:在团队协作中,相互之间的交流和沟通是非常重要的。
我主动参与团队会议和讨论,与其他团队成员分享自己的经验和想法。
软件开发软件工程师总结的20条经验教训

软件开发:软件工程师总结的20+条经验教训一些有关于软件开发的经验规则:开发1.从小事做起,然后再扩展无论是创建一个新的系统,还是添加功能到现有的系统中,我总是从一个简单到几乎没有任何所需功能的版本启动,然后再一步一步地解决问题,直到满意为止。
我从来没有妄想过能够一步登天。
相反,我一边开发一边学习,同时新掌握的信息还可以用于解决方案中。
我很喜欢John Gall的这句话:“复杂系统总是源于简单系统的演化。
”2.一次只改变一件事当我们在软件开发时,碰到测试失败和功能无效的情况,如果你一次只研究一个问题,那将会更容易找到问题的关键。
换言之,就是使用短迭代。
必须确保这个问题解决之后,再转移到另一个问题上。
这适用于向下提交。
如果在你添加新功能之前需要先重构代码,那么先提交重构,然后再添加新的功能。
3.尽早地添加日志记录和错误处理在开发新系统时,我做的第一件事就是添加日志和错误处理,因为这两者从一开始就非常有用。
如果系统不能照常工作,那么你就需要知道程序中发生了什么——这是日志的作用。
错误处理也是如此——错误和异常越早处理越好。
4.每一行新代码必须至少执行一次在你真正完成一个功能之前,你必须对它进行测试。
不然,你怎么知道它是不是按照你的想法在执行呢?通常情况下,最好的方法是通过自动测试,但并非总是如此。
不过,不管怎么说,每一行新代码必须至少执行一次。
5.在整体测试之前先进行模块测试先进行部分模块测试可以节省时间。
通常说来,我们在整合不同的模块时也会出现问题,例如模块之间的接口不匹配。
但是如果我们能够信任各个组件的话,那么跟踪集成问题就会变得简单得多。
6.所有事情所花费的时间总是比你预期的要长特别是在编程中,即使一切进展顺利,我们也很难对功能所需的时间做出正确的预算。
并且,开发软件时碰到各种意想不到的问题是非常常见的。
侯世达定律其实道出了真谛:做事所花费的时间总是比你预期的要长,即使你在预期中已经考虑了侯世达定律。
软件工程师成长路上的经验与教训

软件工程师成长路上的经验与教训。
经验:1.持续学习软件行业更新换代非常快,不断地学习是软件工程师必须具备的素质。
在日常工作中,我们需要关注行业的发展趋势,掌握最新的技术和知识。
此外,也要学习一些跨领域的知识,例如商业、产品设计、市场等等,这些知识对于我们在职业生涯中的发展至关重要。
2.拥抱变化在软件行业,变化是永恒不变的事实。
很多时候我们需要接触到各种新的技术和工具,要求我们不断地适应和学习。
最好的办法就是积极拥抱变化,尝试去掌握新技术,并将这些知识运用到实际工作中。
3.注重团队合作在软件开发过程中,与、大数据、云计算等技术相比,团队合作是非常重要的环节。
软件开发涉及到多个岗位之间的沟通协作,团队合作精神是非常重要的,这一点在我们的工作生活中也是显而易见的。
4.关注用户在软件开发过程中,用户体验是非常重要的因素之一。
不管是开发企业软件还是用户科技产品,我们都需要倾听用户的声音,了解他们真正的需求,并通过不断优化来改进产品和服务。
教训:1.不要轻视复杂性软件工程师所经手的项目通常都非常复杂,任何一个细节问题都可能会带来预料之外的后果。
因此,我们需要时刻提醒自己注意细节,千万不可因小失大。
2.不要盲目跟随潮流在软件行业中,新技术和工具层出不穷,但并不是所有的技术都适合我们自己的团队和项目。
我们需要审慎地考虑每个新技术对我们来说是否值得使用,同时还要考虑技术成熟度、可靠性、开发成本等因素。
3.处理好家庭和工作关系软件工程师在日常工作中会面临很大的工作压力,这常常会影响我们的家庭和社交生活。
我们需要学会平衡家庭和工作的关系,注重身心健康,保持心态平衡。
4.不要缺乏团队合作精神一个好的团队合作精神是非常重要的,我们需要学会尊重其他团队成员,学会互相倾听,共同推进工作进展,完成实现任务。
总之,成长经历中总是会有成功的经验、也会有教训,需要我们不断总结经验,提高自己的职业素养。
在未来的软件行业中,我们需要坚持学习、拥抱变化、团队合作、关注用户,同时避免盲目跟随潮流,注重细节;处理好工作与家庭关系,保持身心健康,成为真正的软件工程师。
软件研发总结中的经验教训和改进建议

软件研发总结中的经验教训和改进建议在软件研发的过程中,经验教训和改进建议是非常重要的。
通过总结以往的经验教训,可以避免犯同样的错误,提高工作效率和质量。
同时,合理的改进建议也可以帮助团队不断优化工作流程,提升软件研发的水平和效率。
首先,对于软件研发团队来说,经验教训是宝贵的财富。
例如,过去可能曾经在项目管理上出现过进度延误、需求变更频繁等问题,这些经验可以作为反面教材,引以为戒,避免再次犯错。
另外,在技术选型和架构设计上也会有一些经验教训,比如选择了不适合项目需求的技术栈,导致后期开发过程中出现了很多问题。
因此,经验教训的总结可以帮助团队更加深刻地认识问题所在,提高自身的软件研发能力。
其次,针对过去的经验教训,团队需要提出改进建议,不断优化工作流程。
例如,在项目计划阶段,可以设立更加合理的时间节点和里程碑,以确保项目能够按时交付。
在需求分析阶段,可以加强与客户的沟通,避免需求变更带来的不必要的延误。
在开发阶段,可以加强代码审查和测试,确保代码质量和系统稳定性。
总之,只有不断总结经验教训,提出改进建议,团队才能不断进步,提高软件研发的水平和效率。
此外,在软件研发的过程中,团队还需要注重团队建设和技术培训。
团队建设可以增强团队成员之间的沟通和合作能力,提高团队的凝聚力和执行力。
技术培训可以帮助团队成员不断提升自身的技术水平,跟上行业的最新发展。
同时,多参加行业的技术交流会议和分享会也是一种提高团队整体素质的有效途径。
总而言之,软件研发是一个需要不断学习和提升的过程。
通过总结经验教训,提出改进建议,加强团队建设和技术培训,团队才能不断进步,不断优化工作流程,提高软件研发的水平和效率。
希望每个软件研发团队都能够认真总结经验,提出合理的改进建议,不断实现自我提升和优化。
软件过程改进:经验和教训

软件过程改进:经验和教训前言:2001我开始慢慢关注起软件工程和CMM,也对CMM进行了学习。
并且对其中的一些KPA在自己单位中进行了试验。
可是一开始这些试验的结果并不令人愉快,甚至遭到了抵制和反对。
开发和测试人员认为降低了开发速度和灵活性,加大了工作量,工作流程太烦琐。
而质量的提高也不是一时可以反映出来的。
于是在进行了2个小项目的试验后,我被迫停止了CMM在公司的实施。
因为公司并不从事外包服务,所以CMM对其没有生存的压力。
高层也只是想通过一个可行的过程管理,一个提高软件质量,保证项目进度,有效控制项目成本。
所以公司并不是要去过CMM等级,而是要一个有效的过程管理。
所以我此后开始以‘有效、简易、可行、低成本’为标准探索起适合起我们公司的过程改进的最佳实际。
现在,我很高兴可以在文中和大家探讨我公司在过程改进过程中的一些经验和教训,也许你会从中得到一些启发,开发出适合你自己的最佳实际。
经验和教训:在中小型的软件企业当中,软件过程的改进更容易半途而废中小企业,特别是开发人员小于40个人的企业。
一般不会有专门的人员可以组建‘软件过程组’,也很少会有专职的质量工程师和配置工程师。
在进行过程改进中,对于这些职位基本上都是由原来的人员兼职完成。
这无形中增加了人员的工作量。
一旦过程定义的不是太完善,或是在试点中不是太成功。
很容易让人去怀疑过程改进本身的可行性。
同时中小企业接到的项目也比较小,成本压力是比较大的,而提高质量是必须以牺牲成本为代价的。
所以有时从成本的角度出发,可能在高层管理人员的心目中,对于过程改进也是有成本的顾虑的,一方面希望,可以通过过程改进提供质量,并为企业的发展提供基础,另一方面,也面临成本压力,若过程是改进了,可是成本也大幅度提高了,则本事企业的生存就成问题了。
而在大的软件企业,一般可以有专职的人员进行质量保证和过程改进。
同时由于大企业拿到的项目一般也比较大,项目组就比较大,客户要求也高。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件过程改进:经验和教训前言:2001我开始慢慢关注起软件工程和CMM,也对CMM进行了学习。
并且对其中的一些KPA在自己单位中进行了试验。
可是一开始这些试验的结果并不令人愉快,甚至遭到了抵制和反对。
开发和测试人员认为降低了开发速度和灵活性,加大了工作量,工作流程太烦琐。
而质量的提高也不是一时可以反映出来的。
于是在进行了2个小项目的试验后,我被迫停止了CMM在公司的实施。
因为公司并不从事外包服务,所以CMM对其没有生存的压力。
高层也只是想通过一个可行的过程管理,一个提高软件质量,保证项目进度,有效控制项目成本。
所以公司并不是要去过CMM等级,而是要一个有效的过程管理。
所以我此后开始以‘有效、简易、可行、低成本’为标准探索起适合起我们公司的过程改进的最佳实际。
现在,我很高兴可以在文中和大家探讨我公司在过程改进过程中的一些经验和教训,也许你会从中得到一些启发,开发出适合你自己的最佳实际。
经验和教训:在中小型的软件企业当中,软件过程的改进更容易半途而废中小企业,特别是开发人员小于40个人的企业。
一般不会有专门的人员可以组建‘软件过程组’,也很少会有专职的质量工程师和配置工程师。
在进行过程改进中,对于这些职位基本上都是由原来的人员兼职完成。
这无形中增加了人员的工作量。
一旦过程定义的不是太完善,或是在试点中不是太成功。
很容易让人去怀疑过程改进本身的可行性。
同时中小企业接到的项目也比较小,成本压力是比较大的,而提高质量是必须以牺牲成本为代价的。
所以有时从成本的角度出发,可能在高层管理人员的心目中,对于过程改进也是有成本的顾虑的,一方面希望,可以通过过程改进提供质量,并为企业的发展提供基础,另一方面,也面临成本压力,若过程是改进了,可是成本也大幅度提高了,则本事企业的生存就成问题了。
而在大的软件企业,一般可以有专职的人员进行质量保证和过程改进。
同时由于大企业拿到的项目一般也比较大,项目组就比较大,客户要求也高。
这也为过程改进增加了必要性。
持续的改进很重要,但频繁的改进会不利于过程的执行CMM中定义了每个KPA的目标和一系列的KP,企业必须根据自己的实际情况去定义实现每个KPA的工作流程。
但并不是每个企业都很幸运,在一开始就可以定义一个自己企业的最佳实践。
一般的情况是,首先定义一个工作流程,并在一个试点项目中实行,而后对试点项目进行总结,并对此工作流程进行改进。
再在其他项目或整个企业中推广,也许在推广的过程中,又遇到问题,再对流程进行修改。
整个的过程定义是螺旋上升的进行。
这本身没有问题,但有时当遇到问题时,不要太急于就改流程,或加流程的分支。
而要仔细分析后,慎重的进行。
太频繁的改动,给人一种不严肃的影响,似乎流程可以随意的改动和定义。
最后,没人去遵守流程了。
同时,根据不同的项目若定义了太多了流程分支,最后,实际人员也不知道要去实行哪一套了。
总之,频繁改动的规矩,让人无所适从。
过程制定后,一定要有选择的进行试点。
一个进度和成本宽余的项目和一群对过程改进有热情的人是保证试点成功的组合定义好一套流程,最好的验证方式就是找个真实的项目去‘跑’一遍。
并注意收集应用流程前后的各种情况的对比。
由于在项目的进行中,还要试验流程,所以需要更多的培训时间,让项目组的成员了解熟悉新的流程。
需要更多的评审,不但是评审项目本身,还要评审过程和进行必要的度量。
一群对于过程改进有热情的组员是试点成功的保证。
他们要有热情去学习新的流程,要有热情去沟通在执行新流程当中遇到的问题,他们要有热情去克服进行中的困难,而不是抱怨,他们要有热情去总结和改进新的流程,使它更完善,最总要的是,他们要有热情作为新流程的传播者,把流程象星星之火一样在组织中开展。
一个坚决支持过程改进的领导是必不可少的象任何其他的变革一样,一个坚决支持变革的领导是不可缺少的。
在一切顺利,大家赞成的时候,也许感觉不到什么。
但当变革遇到阻力,遭受暂时的困难时,这种坚决的支持就是变革是否可以继续进行的保证。
因此,在过程改进的初期,于企业的高层进行沟通,让其了解到过程改进的必要性和预期的前景是十分必要的。
同时最好在过程改进的开始阶段,一个誓师大会的举行也是鼓舞士气的上佳方法。
在过程改进的过程中也要注意及时的通报进行的过程,取得的成果。
当然在遇到困难,或需要高层支持时,更要及时开口。
(这对于技术人员主持的过程改进尤为重要。
)要有选择的对于KPA进行改进,不一定是最薄弱的KPA,最重要是选择你可以控制的KPA关于这点其实并不涉及CMM的技术问题,而是一个管理问题。
这里有个现实的例子,一家企业的管理有点乱,高层希望可以通过CMM的过程改进,来提高企业的产品质量,理顺工作的流程。
于是任命了一个开发组的主管(代称A),来主持这个过程改进。
结果A在选择KPA的时候,认为首先应该对于实行需求管理和变更管理。
因为开发组的同事们都抱怨,需求经常改变,造成的返工很多,在最终期限的压力下他们不得不经常加班。
这个本事没有问题,可是需求管理和变革管理的发起基本是在系统分析组,而这个组在行政上不归他管。
公司也没有因为要进行过程改进而把他提高到一个高的级别(即使是暂时的)。
现在问题来了,虽然他花费了心思去设计的流程。
并对于需求部门和相关部门组织了培训。
可是在进行试点的时候,他发现,当他去评审需求分析组的工作时,别人很反感。
而且对于有些需求的变革也推诿到销售人员、客户等因素。
同时,流程中只要有一点不太合理的地方,就抱怨的很厉害。
最后试点结束,他自己很累,试点的结果也不好,改善的目标没有实现。
整个过程的改进处于一种微妙的处境。
最后,试点的流程并没有推广。
其他的KPA过程改进也不再进行了,随着时间的推移,过程改进在企业中也不在有人提起。
知道这位开发组的主管错在哪里吗?他选错了KPA,他选了一个不属于自己管辖范围的KPA作为起点。
他跑到一个不属于他的地方开始指手画脚,他是个不受欢迎的人。
注定了,在一开始他就面对着对立和抱怨。
这样的团队是无法经受一点点挫折和失败的。
若他一开始选择配置管理,这个至于他管理范围的KPA,他可以利用手中的权利、资源和威信,组织试点。
可能情况就好的多。
又或者企业的高层给这个开发主管一个虚职,比如过程改进项目组组长,并任命其他组的组长为过程改进项目组成员。
情况也会完全不同。
对于过程的改进要有度量不必一开始就是数字化的,也可以是感性的体会。
但要把这些也要收集起来。
一个有力的对比可以堵住反对者的嘴。
不要因为度量管理是CMM4级的内容就在实施低级别的CMM时放弃度量。
一套流程需要一系列度量的数据来说明它改进了多少。
而度量的数据将会为它赢得预算和支持。
当然度量作为CMM4级的内容,也是有一定的道理的。
收集一套完备、准确的度量是需要大量人力的。
但是在一开始,也许我们可以借助一些好的工具达到同样的效果,而不必花费大量的时间和精力。
在我就自己做过一个简易的BUG管理工具,并和数据库相连。
在项目结束时我可以轻易的了解项目中有多少BUG、BUG分布如何,BUG的原因统计等度量数据。
我只是用了几个SQL语句就掌握了我需要的度量。
另一个例子是微软推出的PROJECT SERVER(注:不是广告)。
以前项目经理要了解实际的项目进度并不是件轻松的事,项目经理要去问组员××模块,你开发的如何啦?然后收集好所有组员的进度,填写自己的项目进度。
由于这相当的花费时间,过去进度基本上一周汇报一次。
可是有了PROJECT SERVER你只要按个‘请求进度’的按钮,组员直接通过WEB填写与他相关的进度就可以了。
项目经理就可以得到整个项目的进度了。
不必拘泥于CMM的级别这一点在CMMI中已经有体现了,CMMI不再只有一种级别的模式,还增加了持续改进的模式。
即,可以按过程域进行改进,而不是过去按级别进行改进。
比如,CMM5级的技术革新管理。
其实,在现在新技术层出不穷的当今,一个企业不会因为还没到CMM5级就不需要技术革新管理。
换一种数据库,换一个开发工具,甚至是换一种开发过程等都是一直发生的。
若需要完全可以把这个KPA先实施改进。
不是每个人都喜欢改进的过程,特别对于要增加其工作量的过程。
有时必须牺牲一些过程的严谨性,去简化过程。
毕竟有过程比没过程好。
也许在看到了这条时很多人会不以为然,说:这样做肯定过不了CMM评审。
对,这样确实肯定过不了CMM级别的评审,可是只要可以对于过程有改进,对于软件质量有提高,就可以了。
对于中小软件企业,一个有效的(可以满足高层对于过程控制的期望),简易的(是所有基层工作人员可以理解的,无须大量培训的),可行的(不会大量增加基层人员的工作量,不会影响开发速度和效率的。
名言是:‘我不要那种原先2天可以完成的项目,因为应用了过程,现在要5天才可以完成的所谓的过程’。
)和低成本的(公司一年才赚多少,我可不想把钱全用来采购工具软件)过程才是最重要的。
选择合适的工具,至关重要。
好的工具不但使过程更流畅,也大大减少由于过程的引进而引入的工作量。
关于这点其实在前面介绍PROJECT SERVER时已经有介绍。
这里只是再作为一个观点再提一下。
不过虽然工具的使用可以提高效率,不过这方面的工具都不便宜。
是否引进,何时引进确实对于中小型的软件企业要好好考虑。
在这里列一些工具供大家参考:计划工具:Microsoft Project项目监督和跟踪:Microsoft Project server 2003,SharePoint需求管理:Rational RequisitePro, Borland CaliberRM, SYSBASE POWERDESIGN 11变更管理:Rational ClearQuestBug跟踪工具:Rational ClearQuest配置管理工具:VSS, CVS, Rational Clearcase一个强有力的执行和守纪律的企业文化,是推广过程改进的保证一个过程,在试点后,是要推广的,在推广过程中一个强有力的执行力是必然的保证,这个不用多言。
而对于守纪律的企业文化本来我并没有太深的感受,直到有个朋友告诉我,他们公司的印度工程师如何的刻板。
我突然意识到这也许就是国内软件公司长不大的原因了。
是的,严格的遵守企业定出的过程,有时是显得有些刻板。
但在相当长的其他时期,也正是这种刻板,保证了公司的过程被严格执行。
有人说,什么标准一到中国就变了味了。
这虽然不太好听,但你不得不承认,有时我们确实为了省力,为了赶工,确实在破坏公司的过程。
毕竟CMM只是软件开发的过程改进的标准,但一个软件项目的成功,并不局限于软件开发。
用CMM的模式去改进一些前期项目计划和后期系统实施的过程,将会对组织的软件项目的成功事倍功半。