自己对软件项目管理认识 对项目管理的认识
谈一谈对软件工程专业的认识
软件工程涉及的资源有:人力、资金、时间的合理分配,涉及到文化与管理等,及各种规划化。
软件开发是一个把用户需要转化为软件需求,把软件需求转化为软件设计,用软件代码来实现软件设计,对软件代码进行测试,并签署确认它可以投入运行使用的过程。
在这个过程中的每一阶段,都包含有相应的文档编制工作。
软件开发过程当中,遵循一定的流程,主要包括系统分析、系统设计、系统编码、系统测试以及系统的维护等几个阶段。
依次概述如下: 1、系统分析 系统分析包括软件需求分析和系统可行性分析。
软件需求分析就是回答做什么的问题。
它是一个对用户的需求进行去粗取精、去伪存真、正确理解,然后把它用软件工程开发语言(形式功能规约,即需求规格说明书)表达出来的过程。
系统可行性分析就是通过需求调查来确定此系统是否具有可行性。
2、系统设计 系统设计可以分为概要设计和详细设计两个阶段。
实际上软件设计的主要任务就是将软件分解成模块。
概要设计就是结构设计,其主要目标就是给出软件的模块结构,用软件结构图表示。
详细设计的首要任务就是设计模块的程序流程、算法和数据结构,次要任务就是设计数据库,常用方法还是结构化程序设计方法。
3、系统编码 系统编码是指把软件设计转换成计算机可以接受的程序,即写成以某一程序设计语言表示的"源程序清单"。
4、系统测试 系统测试的目的不是验证软件的正确性,而是以较小的代价发现尽可能多的错误。
测试从需求阶段开始,此后与整个开发过程并行,换句话说,伴随着开发过程的每一个阶段,都有一个重要的测试活动,它是预期内按时交付高质量的软件的保证。
5、系统维护 系统维护是指在已完成对软件的研制(分析、设计、编码和测试)工作并交付使用以后,对软件产品所进行的一些软件工程的活动。
即根据软件运行的情况,对软件进行适当修改,以适应新的要求,以及纠正运行中发现的错误。
编写软件问题报告、软件修改报告。
在实际开发过程中,软件开发并不是从第一步进行到最后一步,而是在任何阶段,在进入下一阶段前一般都有一步或几步的回溯。
在测试过程中的问题可能要求修改设计,用户可能会提出一些需要来修改需求说明书等。
总的说来,软件开发是一个环环相扣的设计和实施过程,整个系统开发的过程当中,系统分析和设计是重中之重。
只有把握好系统分析,才能使后续改动尽可能多的减少;只有把握好系统设计,才能保证软件的根基比较稳固。
也即是它们很大程度上决定着软件开发的周期以及寿命。
另外,完美的开发团队和开发过程的合理控制是软件成功开发关键要素之一。
>> 软件工程 过去几十年,软件技术经历了一系列重要的变化和发展,构成软件的软件实体的粒度不断增大,软件基本模型越来越符合人类的思维模式;软件运行平台的能力不断增强,越来越多地屏蔽掉计算机底层的复杂性;软件支撑平台的能力不断增强,越来越多地屏蔽了软件开发过程的复杂性;软件技术的应用范围不断扩大,越来越广地渗透到人类生活的各个方面。
网络技术的发展日新月异,基于新一代网络技术的各种应用的融合是大势所趋。
网络新技术与软件新技术的相互促进必将为人类创造一个更为灿烂多彩的IT世界。
这世上同时存在着两种对立的声音:本质决定成败和细节决定成败。
偏好本质的人喜欢说本质论。
偏好细节的人则喜欢说精细化管理。
但如果在较长的时间轴上考量这两种观点,就会发现他们之间并不真的对立。
----------------------------程序员几个发展方向: 走向管理:有两种原因会使部分程序员走上管理的道路,一是与生俱来的对 权力的欲望;一是在程序员的岗位上对自我价值重新认知。
对于前者如果欲望过去强烈就会急功进利,很容易走捷径,会出现不能服众的情况。
对于后者自我价值的重新认知是一个缓慢的过程,一个程序员在长期的开发过程中会慢慢发现一个人的力量是有限的,做一件事情必须要借助其他人的帮助,如果需要别人的帮助就必须能影响他人。
从而认识到一个人的价值对公司来说几乎是不值一文,如果想让自己的价值得到提升必须要影响到他人,借助他人的力量使自己的价值得到最大提升。
走向行业:即成为某个行业的行业专家。
一般来说走这个方面需要机遇,需 要长时间的从事某一个领域的开发与管理工作,对某个行业无论是大局还是细节都了如指掌。
走向专业:即成为架构师。
一般来说这些人对开发有狂热的兴趣,逐渐的从代码的编写中认识到设计与软件架构的重要性,并对软件设计乐此不疲。
自已干:这些人是野心家,也是风险最大的一条路。
好多程序员都认为软件开发不需要什么成本,只要能接到单子完全可以自己干,自己当老板。
然而很少了解只有长期持续的订单才是一个企业不断稳定发展的最重要因素。
------------------------------程序员具备:恒心、耐心、细心 兴趣决定一切:当一个人把自己的职业仅当成谋生的手段时,那他的人生将会失去很多乐趣。
如果你不喜欢软件开发,那最好离开这个职业,没有兴趣只会让你一事无成。
自我学习:做程序员就是这样,走上了一条永无止境的学习之路,不学习新知就会...
软件项目管理的内容有那些?
风险管理,软件质量保证、开发小组地人员应该少而精;7、承认不断改进软件工程实践的必要性;2;5,公司在进行软件项目管理时,重点将软件配置管理、项目跟踪和控制管理、软件风险管理及项目策划活动管理四方面内容导入软件开发的整个阶段。
在20世纪80年代初;软件项目计划主要包括工作量、进度和产品质量等要素是否符合期望值。
因为大家对人力资源管理和软件过程能力比较有兴趣。
从软件工程的角度讲、坚持进行阶段评审;3、实行严格的产品控制;4、采用现代程序设计技术,软件过程能力评估,软件配置管理等。
这几个方面都是贯穿、交织于整个软件开发过程中的,其中人员的组织与管理把注意力集中在项目组人员的构成、优化。
不论是作坊式开发,还是团队协作开发,包括过程度量和产品度量两个方面。
它们是,在进行软件项目管理时,也应该遵循这七条原则、用分阶段的生命周期计划严格管理,著名软件工程专家B,软件度量,软件项目计划;6.Boehm总结出了软件开发时需遵循的七条基本原则,同样,软件开发主要分为六个阶段:需求分析阶段、安装及维护阶段.W;软件度量把关注用量化的方法评测软件开发中的费用、概要设计阶段、详细设计阶段,这六个阶段都是不可缺少的。
根据公司实际情况、生产率、编码阶段、测试阶段;质量保证是保证产品和服务充分满足消费者要求的质量而进行的有计划、成本、开发时间的估计,并根据估计值制定和调整项目组的工作;风险管理预测未来可能出现的各种危害到软件产品质量的潜在因素并由此采取措施进行预防,下面就详细的对这两方面展开讨论,有组织的活动;软件过程能力评估是对软件开发能力的高低进行衡量;软件配置管理针对开发过程中人员、工具的配置、使用提出管理策略:1、 结果应能够清楚地审查《软件项目管理的内容》 软件项目管理的内容主要包括如下几个方面:人员的组织与管理...
软件项目管理概述?
识别人心,了解人的需求5、正直有人格魅力6、理解能力3,能站在别人的角度思考问题4、对项目管理流程,最起码还要做到。
但如果想当一个优秀的项目经理,除了以上内容,同时了解其他相关方面的知识3、善于沟通、专业背景2、某一方面的技术专家:1,那么很简单、工具熟悉这些无需做到顶尖,中等偏上就可以了、逻辑思维能力4:1、沟通能力2如果只满足于做个项目经理
如何在软件项目中进行有效的管理
及时向开发组反映客户的新要求。
让客户得到一个质量上乘功能齐全的产品。
完备的项目管理拥有一支经验丰富的项目管理队伍,计划中规定出项目目标、质量目标,这是项目经理应凭自己的经验调整进度、系统测试阶段和客户测试阶段、质量管理、配置管理、资源状况和调配,在项目初期指定配置管理计划,以质量取信于市场。
CMM2的六个关键域为:需求管理,对项目及项目经理做出合理评价。
配置管理采用先进的配置管理方法。
项目进程中避免不了因需求或其他技术问题干扰进度。
通过CMM2的六个关键域职称项目管理以CMM为目标和支撑进行项目的管理。
在国内软件开发行业一片混乱中,减少双方需求误会和严格控制进度,这依赖于我们有一套严格的项目管理体系。
领导的重视对于一个企业来说领导的重视莫过于的项目管理的最大支持,设置多个检验点,分析态势、重新调配资源项目管理我们不能保证我们的技术方案在各个方面都是最优的,但是我们能够保证最终交给用户的是一套高质量、高可用的系统,让所有客户满意,使公司的开发过程与国际接轨,由QA监督个检验点评审过程,项目外部的QA人员对整个项目的过程进行监控,并严格控制变更。
客观上、分承包商管理。
需求管理在项目经理运用娴熟的项目管理技巧进行客户与公司的沟通,从而达到明确需求和管理需求的目的,通过这支队伍的努力、设计阶段、编码阶段、项目组结构,在严格符合规程的条件下运用项目经理丰富的管理经验将技术和人力资源合二唯一进行管理。
项目经理对外代表公司与客户做最充分的沟通,对内代表客户严格要求质量、资源调配情况心中有数,从而及时化解突发事件。
项目计划我们的项目经理会最终依照客户需求给出该项目的实施计划,我们已拥有规范化和适用于的项目管理流程。
记录较大的需求变更,并愿意通过项目管理提高产品质量。
质量管理无论在项目内部还是项目外部我们都由QA人员对项目进行监督。
多名经验丰富的项目经理管理个项目。
突出管理我们的项目管理决不只是单纯的对规程的遵照,而是注重管理,以该项目计划为基准进行项目的开发和实施。
QA按照事先规定的配置管理基线和项目里程碑进行审核。
重视项目经理的管理技巧和沟通能力,以便在更大程度上满足客户的需求。
项目管理方式项目管理流程介绍: 我们的项目的生命周期大致分为以下几个阶段:需求阶段,规定各阶段的流程并指定责任人。
按照规程和项目实际情况确定个项目的里程碑,决定走国际化的标准轨道,以提高高层的项目管理意识来带动整个公司的项目管理体系日益成熟化、风险预期以成本估算等。
在项目执行过程中,以标准保证质量。
特别要指出的是、项目开发及实施进度,并在开发期间应用。
按照项目生命周期建立配置管理基线,把握项目大方向,接受美国的成熟方法,项目内部QA人员负责测试和配置管理的计划及落实,我们有一部分来自外企和国外的高层人员,我们的高层人员有成熟的项目管理理念,关注项目管理:在我们公司的培训内容上有针对于领导层的项目管理培训系列培训。
项目追踪在项目实施过程中我们要求我们的项目经理每周至少运用项目管理工具Project跟踪两次项目做到对项目的进程,并按照项目管理流程严格监督、项目计划、项目跟踪
软件项目管理有哪些特点?
软件项目的过程诊断与改善已经有了很多的有效的参考模型和最佳实践方法集,其中,最有影响的是SEI的软件过程成熟度模型(SW-CMMTSPPSP体系)和敏捷联盟提出的敏捷方法集等。
这些模型和方法的提出都基于不同的隐喻,比如,SEI把软件开发过程看作类似于硬件产品的设计与制造过程,关键过程依赖于基于活动和度量的有序过程的管理规范。
CMM的基于活动的度量方法和有次序的、基于活动的管理规范与瀑布模型有非常密切的联系(先是需求活动,然后是设计活动,编码活动,单元测试活动,集成活动,以及系统接收测试),过程形成刚性的制度和规范稳定下来。
因为CMM的思想受到瀑布式开发思想的很大影响,造成许多组织对CMM的认识停留在瀑布思想上,主要的原因是,以硬件的开发设计过程来类比软件过程。
软件开发组织尝试着更加现代和高效的方法改进其项目管理过程,迭代开发技术、软件产业最佳实践和经济动机驱动组织采用面向结果的过程,重视开发业务案例和原型方案、可用发布、现场版本的发布等,这些方法形成敏捷方法的思想。
基于敏捷方法的软件项目过程管理是不同于传统过程管理理念的过程管理方法,过程的可重构性而非稳定性是敏捷过程管理的核心,存在于各种层次的软件过程中,而这些能力在CMM里被认为是在最高级别成熟度的组织中才需要开始考虑并作为管理的重心。
敏捷方法集为以过程的可重构性和自组织性为中心的过程度量、控制、改进提供了丰富的手段与思想。
过程的动态性体现于定义、执行、控制过程,过程的执行是过程管理的一部分,即过程的动态自组织性(自适应)。
以传统的生产制造项目和工程建设项目BPR和BPI的方法来进行软件项目的过程改进是不适合的。
各个敏捷方法集基于各种各样的隐喻,如极限运动(XP极限编程)、橄榄球赛(SCRUM)、自适应系统(ASD)、集市(Open Souce)等,把软件过程作为一个探索过程,不断的以经济原则对客户需求和技术需求进行评判和选择。
而总的来说,新提出的软件项目过程模型大多与生物进化过程进行类比,在生物进化过程的隐喻下把软件开发过程看作一个智能体成长的过程,这个智能体一般认为是一个软件产品,或更深刻的认为是一个软件开发组织的知识结构,进化的动力是经济动机和残酷的市场选择。
软件项目的产品和加工对象都是“软”的信息,软件产品的特点与硬件产品相差太大。
事实上,从某种意义上说,软件开发组织为客户提供的不是或不只是软件产品,而是客户所需要的信息,软件产品只是为客户提供信息服务的自动化代理而已。
因此,可以为软件开发提出另一个隐喻——信息加工处理过程,即认知过程。
以信息为产品和加工对象的软件生产与一般的硬件生产过程有根本的不同,软件过程是生产制造过程和信息加工处理过程(即认知过程)的混合过程,而且信息加工过程是软件过程中最核心的过程。
以信息加工的观点来解释软件开发过程,认为软件开发过程就是信息的接受、编码、贮存、提取和使用过程。
可以把这一过程概括为由四种成分所组织成的模式,即感知系统,记忆系统,控制系统和反应系统。
感知系统接受由环境提供的信息,即首先把输入的基本特征抽取出来加以组合;记忆系统是对输入信息的编码、贮存和提取活动;控制系统决定目标的先后顺序,监督当前目标的执行;反应系统则控制信息的输出。
这个基于信息处理过程的开发过程并不是按上述顺序单方向进行的,各种成分之间存在着不同方式的相互作用,以保证对信息的加工、输出和反馈,沟通人与环境之间的联系。
在认知过程的隐喻下,软件项目被认为基于一个建构主义的过程模型,包括了学习与创新的行为,学习不简单是业务知识由外到内的转移和传递,而是学习者(开发者或是客户)主动地建构自己和组织的知识经验的过程,即通过新经验与原有知识经验的相互作用,来充实、丰富和改造自己和组织事实的知识经验。
软件项目过程的认知过程参考模型把软件生产过程定义为信息的加工处理过程,软件过程能力是一个认知能力层次概念。
客户的需求,以客户所习得的知识和经验为背景,是以客户的概念、符号和语言表示的信息,软件开发组织中的软件分析人员在获得客户需求表达之后以自己的知识和经验为基础,开始学习过程,在学习客户需求、理解客户的概念、符号和语言的成果上,构建自己的信息系统和知识结构,进而创造出新的以软件专业的概念、符号和语言表示的信息产品,即需求确认文档和系统分析设计报告。
这些信息适宜于在软件开发组织内部环境中开发者之间的流动和创新,程序员的责任是把这些信息加工成计算机可以理解的概念、符号和语言,由计算机系统解释和编译。
计算机系统是开发者和客户之间的智能媒介,软件的指令控制计算机系统把客户需要的信息转化为客户可以理解的概念、图像、符号和语言表示,传达给客户,实现最终的信息产品。
而这还不是整个过程的结束,信息系统必须接受使用者的反馈信息进行持续的运行,所以,客户必须通过理解和应用软件的输入输出信息构建新的知识结构,反馈到信息加工过程,使...
软件项目管理有什么经验?
CMM认证是当今IT界最热的话题之一,这表明中国软件企业已开始重视与软件项目管理有关的问题了。
为了了解国内软件企业对软件项目管理的认识程度以及他们在软件项目管理方面的具体做法,日前,记者采访了开思、东方通、瑞星三家纯软件公司的相关负责人。
三家公司中,东方通业已开始按照CMM规范进行软件开发。
在采访中,三家公司的负责人分别介绍了各自企业在软件项目管理方面的经验。
开思公司的产品总监石宏峰先生还为记者详细讲解了开思公司的《产品部开发规范》。
经过整理,我们将东方通和瑞星两家公司的负责人在采访中所说的主要内容刊登于此。
我们相信,其具有一定的认识价值。
另外,我们将开思公司《产品部开发规范》的一部分也刊登于此——我们并不认为开思的规范就是最好的规范。
对软件项目管理而言,普适性是不存在的,好坏是相对的,适用不适用才是绝对的——我们相信,其具有一定的参照价值。
加强相关教育和培训朱律玮(东方通科技首席软件设计师) 杨桦(东方通科技总经理助理) 东方通科技从去年底开始为参加CMM认证(二级)做准备。
拟议中正式参评的时间是今年11月。
在这之前我们会请国内咨询公司的有关专家和国外的评估师进行两次预评估。
半年多来,我们觉得一切还算顺利。
起初我们担心编程人员会有抵触情绪——因为每完成一天的工作或一道工序或一个项目后都要做记录、编文档、写报告,较之以前,工作量无疑是增加了——后来看看,大家对执行CMM规范还是理解的、支持的。
按照CMM规范开展工作后,到目前为止,公司的运营成本是增加了——因为要增加管理人员、撰写文档也需要人手——但从长远看,其会带来降低成本、提高质量、提高用户满意度等好处。
对此,我们确信不疑。
与国外相比,我们在软件工程管理方面的差距不仅表现为管理体制、管理方法、管理思想的陈旧,整个软件业的落后才是根源。
个人英雄主义情结、喜欢单打独斗是我们的民族性之一,其在软件人才身上表现得尤为明显,已成为中国软件企业做大的一个瓶颈。
造成这种状况的原因,除了国内软件业的发展水平不高、软件项目规模不大和软件企业管理者自身素质不高外,还有很重要的一点,即与软件工程管理有关的教育内容几乎没有。
在国外,PSP和GSP均为软件专业学生的必修课,可在国内,这两门课在学校里至今还没有开起来。
国外施行的是定岗培训,比如撰写文档就是一门专业课,专门有人修它,毕业后拿它来“安身立命”,国内则是大家过独木桥,统统都学写程序。
应该说,目前国内同行对软件工程管理的重要性已有了一定的认识,但在相关人员的培训上下的力气仍远远不够。
其实人才才是最关键的。
现在软件业最缺的人才之一就是产品经理,他们是软件工程管理的主角。
产品经理必须具备以下素质:具有长期的软件开发经验——般来讲,要在8年以上;了解用户的需求;对产品熟、对市场熟——他可以不了解一个产品的底层技术,但必须了解其功能,能把握其发展方向;具有协调能力。
总之,产品经理并不一定非常聪明,并不需要在某一方面特别突出,但要八面玲珑。
这样的人才太难找了。
东方通的产品经理都是自己培养的。
CMM规范并非只适用于大型软件企业,其也适用于中小型企业。
CMM规范只是一个框架、纲要性质的东西。
企业在落实它时要细化一次;企业将其落实到具体的某个项目时,要再细化一次;中小企业可以不像大型企业那样将CMM规范细化得那么细,够用就好,不要教条。
实施CMM规范、通过CMM认证有如下一些好处:确定工作流程和方式,从而使产品的质量和开发的可延续性有了保证;可以提高企业在用户中的信誉度,增加企业与强势公司竞争的筹码;可以承接国际大公司的外包项目———美国公司愿意找印度公司来承接其外包项目,就是因为印度公司对CMM规范普遍比较重视,通过CMM认证的软件企业也多;公司不再受制于人,人走了,事照做,这是一个公司成熟的表现。
软件商业化的必要手段谈文明(北京瑞星科技股份有限公司研发部经理) 中国软件产业发展时间不长,虽然已有部分技术达到国际水平,但由于商业环境还不够完善,在软件技术的商业化与软件工程管理等方面,与国际同行相比,还存在差距。
只有率先将技术先进的产品推向市场的公司才会赢得利润。
在瑞星,技术商品化已被当作一种制度,它有助于提高整个企业的素质。
瑞星意识到在充满竞争的环境中要获得成功,天才人物是必不可少的,但他们并不是全部。
目前,一个软件工程的成功更多地要依靠科学家、工程师、制造人员和销售人员的协同努力。
在软件商业化的过程之中,建立规范化的易于操作的软件开发行为规范是首先要做的工作。
针对杀毒软件的特点,瑞星专门设计了瀑布模型结合增量模型的开发方式,即将项目分阶段来实现。
首先实现市场最需求的核心功能,然后在此基础上继续开发,每个单独的阶段都采用瀑布模型的开发方式。
具体地说,一个基本的软件开发流程包括需求阶段、系统设计阶段、详细设计阶段、编码阶段、单元测试阶段、集成测试阶段、系统测试阶段、软件发布软件...
软件项目管理的必要性?
提升项目管理效率,比如8Manage PPM、关键节点控制、预警提醒等,可见管理的必要性。
大数据时代“没有规矩不成方圆”,包括时间与进度的监控,信息化管理慢慢替代了传统的人工管理模式。
实现软件项目从开始到结束的全过程管理,很多企业开始用项目管理软件进行管理
-