`
fiercelf
  • 浏览: 24030 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

软件开发之管理观

阅读更多
软件开发管理(软件工程、软件质量)一直是一个很火,很热的名词.不仅在各种各样的报刊,杂志上,而且在网络上更是充斥了这样的言论.在软件企业中,在政相关部门里,也是一个被不断提到的话题.但是,正因为谈的多,才显示出底子里的缺乏和肤浅,才容易被人们误解和歪曲.因为,如果,对一件事情,每个人都以为自己是专家时,就说明真正的专家反而是少的.那么,到底,应该怎样理解这件事情呢?到底怎样才做称得上好呢呢?到底软件工程、开发管理等带给我们的是什么呢?到底我们应该怎样去提高软件质量呢?我自己也不敢妄言是这方面的专家,但正是因为专家的缺乏,我才可以在这里将我的一些想法说出来,希望可以有一些参考价值。

    1.管理者本性的迷失

本人认为这是软件开发管理中最要害的问题,这个问题不解决,别的方式、方法、模型等等的有效应用都无从谈起。

我们这些成人自然本性的迷失皆因受惑于两大秀色可餐的馅饼:一是对完美的执着,一是对趋同的企求。孩童最容易融进自然,因他本身就是最自然的存在。我们这些成人,因为有了许多阅历,却可能迷失自然的本性。因此本人认为:本性丧失于对完美的执着!

本性常常在求全、求完美的过程中丧失。同人的认识一样,所有的人都是片面的。完美的东西是不存在的。这是任何一个成功的管理者所必须有的判断。在对软件人员的管理中这点尤其重要。有的人热衷于绝对化,说一个人行,这个人就是完美无缺的,甚至连排泄脏物的方式都是可圈可点的;说一个人不行,这个人就是十恶不赦、粪土不如,甚至找不出一点可以接受的地方。如果执着地盯着他人的弱点,并从多个方面去放大,这个人很可能就一无是处。如此看人背后引发的危机是你会在这样的放大过程中沦为孤家寡人;相反,如果超越一些现实的迷象,能够抓住他人一些独特的品质,能够洞悉这些品质与一个群体合力的连接点,你就得到了人才,形成一个有力的软件精英团队,获得成功。翻翻中国历史上的酷吏史话,多数不是贪赃枉法的恶人,而恰恰是以天下为己任的实干家。本性在趋同的追求中沦丧。

    2. 按客观规律办事

项目经理不是神仙,领导不是神仙,开发人员不是超人。按照估算模型估出来的进度是10个月,非要压缩成5个月,能省的过程无非就是测试、评审、讨论、文档、纪录。快速编码,留下无穷无尽的维护!不能追求完美,更不能追求完缺!!!

    3. 重视软件过程的严肃性

有一只高素质的SQA队伍,有一批职业化的项目经理队伍和良好的开发团队。

    4. 尊重客户并同他们紧密协作

开发软件的唯一理由是为了支持客户。只有客户能够告诉你他们需要什么,因为他们是业务领域的专家。为了保证你建立正确的系统,与客户紧密工作难道不是非常有道理吗?

    5. 只接受符合实际的项目计划

软件公司或市场的压力经常导致项目计划不符合实际。无论何时,只要使用“如果每件事都按我们估计的方式发展,而且我们足够幸运的化,我们就可以将项目作好”来阐明计划的话,那你就有麻烦了。事情不总是按你想象的方式进行,不管多少人力投入一个项目,许多软件的开发的不同工作都会耗费非常大量的时间来完成。记住,十个女人也不能在一个月里生一个孩子。如果你迫于压力,接受了一个不切实际的项目计划,那么你必须回去向老板阐明计划不实际的原因。你的理由也许不被接受,你还得执行该计划,但至少你为项目进行了争取。有不现实计划的项目组常常时采取了捷径,但却导致项目在远远落后于进度时,项目仍在停步不前。

    6.要能够辩明你的工作

应当非常明白为什么正在开发你的系统或相关部分?你是否知道它技术上的可行性?是否其他人做过该类原型,显示出你正在做正确的工作。你的软件在经济上有意义吗?它是否值得去做,是否可保持你的组织的竞争力或打开新的市场?一旦你开发的产品完成后,是否你的组织能够操作它?你是否有一些人可以操作并维护该系统?是否可以得到操作规程和文档?是否有支持计划?如果你不能辩明你的工作,为什么你还在做它呢? 

7. 任何人都不能妨碍他人

员工不应只想玩玩,就使用技术。你用技术,因为这合情合理,或对解决在手边的问题有用。许多开发者仅仅为了获取经验而建议使用如EJB (Enterprise Java Beans )或CORBA等“流行”的技术。你是在浪费你老板的时间与金钱来实现自己的目标。另外,不要为了揭示你的单位软件结构的弱点而引入病毒,或删除数据或程序。如果真的有弱点,通知管理层,不要造成任何损害。

    8. 不要“只是适当的”重用任何可重用的东西

因为大家喜欢从零开始,而不是重用已有的成果,这些年,软件专业人士的生产率并没有显著的提高。有很多的软件成果可以被重用,如源代码、组件、文档、文档模板、模型甚至通过应用模式重用其他人的技术。只要可以,就去致力重用其他人好的工作成果,而不是假设你可以从零开始做事,并比其他人更好(不幸的是,这正是许多开发员的心态)。现在,重新发明“轮子”,并不是一件荣耀的事。

    9.“只开发基于实际需求的软件”

如果你没有需求,你不需要开发任何东西。无论什么类型的系统,你总可以从为它定义需求开始。人们或其他系统如何使用你的系统?它需要怎样好的执行?它必须具有什么样的使用特点?它必须在什么平台下运行?不管你的系统使用什么技术,它是什么样的业务类型,你总可以先确定它的需求。其他都是干咳。

    10. 请停止重复教条

给予项目组最大损害的是那些相信如:数据至上,编码最重要/建模最重要,或是我们是用例驱动等一些小教条的人。软件开发非常复杂,这些教条只是覆盖了对于过程的缺乏理解问题或者只是解决问题的一个或几个方面。实际上,数据只是整个过程的一个小部分;而为了使软件成功,需要的不仅仅使源原代码;对描述需求来讲,仅有用例是不够的。教条只是在人们之间建立了阻碍,并减小了小组的成功机会。

    11. 不应仅仅关注软件的执行

成功开发不只是做出执行速度快的软件。根据项目的类型、级别不同,创建可扩展、可理解、可维护、可用或重用的软件也许更为重要。软件执行速度仅仅只是软件评价标准的一方面,但是太多的开发员只注重该项,而影响了他们整个的工作质量。

    12. 要持续改善开发人员的沟通技巧

如果你不能与其他人有效沟通,好点子又有什么用呢?你也许可以写出世界上最好的源程序,但是,你不能写一封E-MAIL来告诉你的老板与小组成员你所做的,那么你的杰作可能根本得不到承认。

    13. 要文档化所有自己开发的

现代软件开发模式是你做为一个小组成员进行工作,如果没别人能够理解你的工作,那你就没有对工作做出任何贡献。很明显,好的文档能使你的工作容易被理解。实际上,简而言之,好的程序员在开始编码之前,会文档化他们的代码。

    14. 软件不仅仅是技术

技术是有趣的,但它只是开发软件过程中的一部分,是很重要的部分之一。不管是好是坏,你的工作还需要你熟练地与用户、经理、同事、卖主或操作人员打交道。

    15. 软件不仅仅是开发

必须牢牢记住,你的用户,或是你的上层经理,在你开始工作前,很可能已经花费了极大的精力来挑选和识别软件开发项目,还必须组织开发过程并对质量、进度、成本进行管理等。一旦你将软件发布给用户,该软件必须要被维护、使用和支持。你需要全面理解如何成为一个有效率的专业人员。


分享到:
评论

相关推荐

    软件开发公司管理手册

    - **理解与定义**:对于软件开发公司而言,寻找合适的投资伙伴和建立合作关系是推动企业发展的重要途径之一。 - **实施方法**: - **合作伙伴筛选**:选择价值观相近、资源互补的合作方。 - **合同谈判**:明确...

    基于敏捷软件开发方法的基金管理信息系统开发

    ### 基于敏捷软件开发方法的基金管理信息系统开发 #### 敏捷软件开发概述 敏捷软件开发作为一种新兴的软件开发方法论,在面对不断变化的需求时,能够高效地开发出高质量的软件产品。本文首先介绍了敏捷软件开发的...

    软件项目管理论文:敏捷在软件开发中的应用

    通过实际软件开发的案例分析软件生产的价值观,得出敏捷方法在软件开发中的价值。关键词:敏捷开发;增量;迭代;用户故事;文档;软件工程;精益生产从广义上来给敏捷开发下定义,敏捷开发(agiledevelopment)是一...

    敏捷项目管理-软件开发指导思想

    敏捷项目管理是软件开发领域的一种指导思想,旨在应对快速变化的需求和提高开发效率。它强调以工作的软件作为项目进展的主要衡量标准,推崇稳定的开发节奏,并鼓励团队成员、开发者和用户之间的紧密合作。敏捷方法的...

    软件开发文档模板(软件开发计划模板及编写指南)

    在软件开发过程中,文档起着至关重要的作用,它不仅是团队沟通的桥梁,也是项目管理的基础。本主题聚焦于“软件开发文档模板”,特别是“软件开发计划”及其编写指南,这两大核心元素对于确保项目的顺利进行至关重要...

    软件开发的哲学思考

    ### 软件开发的哲学思考 #### 一、引言 在《软件开发的哲学思考》这篇文章中,作者深入探讨了软件开发的本质及其面临的挑战。尽管文章撰写于1996年,但对于当今的IT行业仍然具有重要的启示意义。作者通过对软件...

    Scrum敏捷软件开发过程.pdf

    总的来说,Scrum提供了一种结构化但灵活的方式来管理软件开发项目,强调团队协作、快速反馈和持续改进,以适应不断变化的业务需求。通过采用Scrum,团队可以更高效地开发高质量的软件,同时增强与客户的合作和沟通。

    敏捷软件开发.pdf

    敏捷开发的流行也反映在了多种行业标准和奖项中,例如ISO9000标准的更新就增加了敏捷原则,美国军方的软件开发标准推荐迭代开发模式,以及美国波多里奇国家质量奖将敏捷作为核心原则之一。 在敏捷开发中,团队通常...

    软件开发公司管理手册样本.doc

    软件开发公司管理手册样本.doc 本文档提供了一份软件开发公司管理手册样本,旨在帮助公司长远经营下去,保持动态平衡。文档中涵盖了公司运营的各个方面,包括政府政策、法律、国际贸易、人力资源管理、投资者关系等...

    软件开发质量手册

    3. **公司简介**:这部分可能包含企业的基本信息,如公司的使命、愿景、价值观,以及其在软件开发领域的专业领域和目标。 4. **管理者代表任命书**:管理者代表是负责质量管理体系运行的关键角色,他们代表最高管理...

    软件团队管理课件,适合从事软件开发人员以及团队合作之间使用的

    在软件开发领域,团队管理是项目成功的关键因素之一。本课程集锦了丰富的课件资料,旨在帮助软件开发人员和团队领导者掌握有效的团队管理技巧,以实现高效的协作与创新。课程涵盖了团队管理的多个核心方面,包括团队...

    敏捷软件开发精要.pdf

    敏捷软件开发是一种以人为核心,迭代、循序渐进的软件开发方法。...敏捷宣言背后的价值观和原则,以及实施过程中的具体实践方法,共同构成了敏捷开发方法的精髓,为软件开发行业带来了革命性的变革。

    敏捷软件开发实践估算与计划 Mike Cohn

    《敏捷软件开发实践估算与计划》是Mike Cohn的一部著作,由清华大学出版社于2016年出版。这本书深入探讨了在敏捷开发环境中如何进行有效的估算和计划,旨在帮助团队提升开发效率和项目成功率。 1. **敏捷开发**:...

    软件工程思想 软件开发

    1. **风险管理**:在软件开发过程中,风险无处不在。有效的风险管理策略可以帮助团队识别潜在的风险,并采取措施减轻或消除这些风险的影响。 2. **敏捷开发**:敏捷开发是一种以用户需求为中心、迭代渐进的开发...

    敏捷软件开发简介ppt

    敏捷软件开发是一种以人为核心、迭代、逐步交付的软件开发方法论,强调灵活性和客户协作。这种方法论起源于对传统瀑布模型的反思,旨在解决在快速变化的需求和复杂的人际交互中,如何高效地开发高质量软件的问题。...

    《敏捷软件开发》源代码

    《敏捷软件开发——原则、模式与实践》是软件工程领域一本经典的著作,它深入探讨了敏捷方法论在软件开发中的应用。源代码是书中理论与实践相结合的重要载体,提供了具体的实现示例,帮助读者更好地理解和掌握敏捷...

    软件开发简历模板

    自我评价部分应涵盖个人价值观、专业技能、管理能力、工作经验、性格特点以及获得的成就和奖项。这是求职者向招聘方展示自我认知和个人品牌的机会。猎头评价则提供了第三方视角,有助于平衡和补充自我评价,为招聘方...

Global site tag (gtag.js) - Google Analytics