`
haohappy2
  • 浏览: 327596 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

敏捷开发

 
阅读更多

敏捷开发的解释:“敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构 建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运 行的小项目,并分别完成,在此过程中软件一直处于可使用状态。”

 敏捷建模的价值观:沟通,简单,反馈,勇气,谦逊。

简单总结一下,敏捷开发就是:

一个价值观:沟通、简单、反馈、勇气和谦逊。

一个核心:以用户的需求进化为核心。

一个模式:迭代和增量开发。

一个目标:保持软件持续可用。 目标
《命令与征服》中有一句经典标语:Onevision,onepurpose(一个愿景,一个目标)。可以把这句话稍作改动来说明“保持软件持续可用”这个目标:Oneversion,onepurpose(一个版本,一个用途)。

 

软件开发中的原型是一个基本的实用模型,体现了软件的核心功能。原型经过不断的改进完善,形成了最初的可用软件版本。而随后的升版则是不断地完善软件的稳定性、性能以及功能。

 

产品需要目标,团队和个人也需要目标。

 

管理大师彼得·德鲁克在开创管理学时就提出了目标管理,可见目标的重要性。乔治·多兰(GeorgeT.Doran)在德鲁克的基础上提出了SMART原则,简单清晰地揭示了目标管理的原则。

 

SMART不是SM的ART,而是5个单词的首字母,分别是:

 

Specific(具体的),目标必须是具体明确的。

Measurable(可以衡量的),目标必须是可以量化衡量的。

Attainable(可以 达到的),目标必须是可以实现达到的。

Relevant(相关的),各个目标的实现具有相关性。

Time-bound(有时限的),目标的完成是有时间限 制的。

 

你也许听说过WBS,GTD,6点优先工作制,四象限法则,番茄工作法等等,这些方法的本质都是要进行目标管理。

 

BIM的目标是什么?解决碰撞问题?设计持续准确?项目持续可控?资源持续优化?进度持续加快?工作持续自动化?这些都可以是BIM的目标。目标即会限制视野也会扩大脑洞,选择的目标不同,开展的工作就会不同。

 

你希望BIM实现什么目标呢?

 

模式

 

目标不是凭空实现的,那么如何实现呢?

 

敏捷开发采用了一种模式:迭代和增量开发。

 

Scrum是敏捷开发的一个主要分支,它定义了一种工作模式,包含了特定的角色、流程和规则,以便使团队更有效率地进行开发工作。

 

Scrum中使用的术语:

 

产品订单(ProductBacklog),按照优先级排序的功能需求列表。冲刺(Sprint),进行迭代和增量开发的时间周期(通常是固定的),团队在此期间细化并实现部分产品订单,交付可用软件。

 

用户故事(UserStory),以一种短小简单的方式从用户的角度来描述渴望得到的功能。通常描述为:作为一个<角色>,我想<功能需求>,以便<受益>。

 

燃尽图(BurndownChart),通过可视化图形的方式显示剩余的工作时间与待做事项。

 

Scrum导师(ScrumMaster),负责帮助、引导、管理团队按照Scrum工作模式开展工作。

 

产品负责人(ProductOwner),负责设定和管理目标,维护产品订单。

 

开发团队(Team),由负责自我管理开发产品的人组成的跨职能团队。团队具有自组织特性,个体需要跨越他们本身的专业而尽可能想办法帮助团队其他成员。

 

计划会(SprintPlanningMeeting),在每个冲刺之初,由产品负责人讲解需求,并由开发团队进行工作估算的计划会议。

 

每日立会(DailyStandupMeeting),是团队每天进行沟通的内部短会,因一般只有15分钟且站立进行而得名。

 

评审会(ReviewMeeting),在冲刺结束前给产品负责人演示并接受评价的会议。

 

回顾会(RetrospectiveMeeting),在冲刺结束后召开的关于团队与个体工作改进的会议。

 

Scrum团队用来改善工作质量的常用技术实践:

 

测试驱动开发(TDD,Test-DrivenDevelopment),在开发功能代码之前先编写单元测试用例代码,通过测试来推动整个开发的进行。测试驱动有助于优化和改善软件的设计和质量。

 

重构(Refactoring),通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性。

 

集体所有权(CollectiveOwnership),是指所有的开发人员共同负责开发过程中的所有产出内容,特别是代码和自动化测试。它鼓励任 何一个团队成员可以在任何一个程序模块上工作,确保开发人员不会变得太专、只能从事某方面的工作,以免只有个别人清楚某个地方的问题、完成某项工作。

 

持续集成(ContinuousIntegration),是指尽可能快地将开发和修改过的代码通过自动化的方式进行集成并测试,从而尽早地发现集成错误。

 

结对编程(PairProgramming),是指两个开发人员一起写代码,互相帮助,积极讨论,能力叠加。

 

也许有人会疑惑:不就是写个代码么,怎么那么复杂?实际上建筑工程也不是画个图、砌个砖那么简单。

 

工作中我们经常能听到:我只是个建模的,我只负责结构计算,我只负责方案……也会听到别人说:他就是个建模的,他就是个计算结构的,他就是出个方案 的……也会自己说:这模型是我建的,这结构是我算的,这方案是我出的……身处建筑领域的我们,是否思考过敏捷?是否打算采用敏捷?是否可以做到敏捷?这是 一个值得探索和实践的方向。

 

不管BIM是不是佛瑞德·布鲁克斯的银弹,至少它对敏捷实践会有很大的帮助。建筑数据化给设计和施工的进化带来了更大的动力和空间。也许十年后人们只负责创意,剩下的事情全部由Cortana、Siri和Now来完成。

 

核心

 

一听到“以用户的需求进化为核心”,设计师怒发冲冠、拍案而起:改图?!
 

 

让子弹飞一会儿,咱们先看看ADAPT。

 

ADAPT是5个英文单词的首字母,它们是成功且持续实施Scrum必备的活动。

 

意识(Awareness):意识到当前的工作方式已不再有效。

渴望(Desire):渴望变革,渴望实施新的工作方式来解决问题。

能力(Ability):通过学习新的思想、新的技术以及创造新的工具来拥有变革的能力。

推广(Promotion):分享交流变革的知识和经验。

传递(Transfer):将变革的影响扩大到整个公司,实现整个组织的敏捷转型。

 

当我们冷静下来时才明白,原始人钻木取火为的是取暖而不是烧香,语言和工具为的是解决问题而不是建立宗教。

 

如果模型可以自动生成,检查可以自动完成,图纸可以自动绘制,那么甲方和设计师是不是就可以牵手漫步在大明湖畔了?

 

别逗了,这些怎么可能做到自动呢?为什么不呢?到底是我们觉得不可能,还是我们没有能力让这些变得可能?看看我们的团队构成,建筑有了,模型有了, 信息去哪了?建筑信息模型,听起来也和IT脱不了干系吧,可是仍有很多人对IT的认识就是“修电脑的,管网络的”。我们是否意识到BIM本质上就是一个关 于建筑的数据模型,而我们现有的知识已经不够用了呢?是否系统性地思考过几个专业的协作和交融呢?使用CAD时我们也许没能意识到跨专业的重要性,但是使 用BIM如果还是没有这种意识,那就只能呵呵了。

 

价值观

 

软件可以买,知识可以学,模式可以套,价值观呢?

 

一个人价值观的形成是有意识的还是无意识的?价值观可以进化或颠覆吗?

 

一个团队、组织、企业的价值观又是如何形成的?

 

稻盛和夫的经营准则是“做人何谓正确”,它表现为:公平、公正、正义、勇气、诚实、忍耐、努力、善意、关心、谦虚、博爱等。回看一下敏捷建模的价值观,非常相似。

 

阿米巴经营本质上和敏捷开发是一回事。星星还是那颗星星,月亮还是那个月亮,团队还是那个团队,人还是那个人。成功背后究竟是什么改变了,是价值观。
BIM可以精确到一个零件、一个螺钉,我们可以使用BIM计算出工程量以及投入的人力物力。在一个完全数据化的工作活动下,一切都是透明的,团队和工作是没有隐私的,实现“玻璃般透明”。

 

虽然实现这些有一些技术问题,但最大的问题则是——人们是否能接受。

 

企业高管们热衷于学习各种先进理论,然后感叹“听话的总是别人家的孩子”。人们被各种真人秀和梦想秀吸引了眼球,看着一个又一个的人“实现梦想”,而自己的生活却原地打转。一切的问题归根结底都聚焦到了人的问题。

分享到:
评论

相关推荐

    敏捷开发的艺术

    本书为那些正在考虑应用敏捷开发来构建有价值软件的人们提供了实用的指导。现在已经有大量的书籍描述敏捷开发是什么或者为什么它能帮助软件项目成功,但很少有哪一本书能把针对开发者、管理者、测试者和客户的信息...

    敏捷开发 敏捷开发 敏捷开发 敏捷开发

    "敏捷开发 敏捷开发 敏捷开发 敏捷开发"这个标题多次提及敏捷开发,表明其重要性和讨论的焦点。 描述中重复的“敏捷开发敏捷开发”,进一步强调了这一主题的重要性,暗示内容可能涵盖了敏捷开发的各种方面,如原则...

    Scrum敏捷开发.pdf

    敏捷开发是一种以人为核心,迭代、循序渐进的软件开发方法。它提倡在变化的环境中快速适应,敏捷开发常与Scrum框架一起使用。Scrum是敏捷开发中最流行的实践方式之一,它是一种迭代式增量的软件开发过程,采用时间...

    系统分析师-敏捷开发方法

    系统分析师-敏捷开发方法 本文将论述敏捷开发方法在系统分析师中的应用,通过实践证明,在项目的开发中采用合适的敏捷开发方法可以有效地缩短开发时间,提高产品质量。本文将从以下几个方面论述敏捷开发方法的应用...

    SCRUM(敏捷开发模式)演讲PPT

    根据提供的文件内容,以下是关于SCRUM(敏捷开发模式)的相关知识点: ### 软件过程 软件过程是指为了构建高质量软件所需完成的任务框架。它包括一系列步骤,如定义任务工作步骤、中间产品、资源、角色、方法、工具...

    敏捷开发,敏捷开发,敏捷开发,敏捷开发

    ### 敏捷开发的核心理念与实践 #### 一、敏捷开发概述 敏捷开发是一种强调灵活性、快速响应变化的软件开发方法论。与传统的瀑布模型相比,敏捷开发更加注重团队之间的紧密协作、持续改进以及高质量的产品交付。...

    敏捷开发知识体系

    《敏捷开发知识体系》面向敏捷实践者学习敏捷知识和敏捷软件开发企业进行敏捷转型的需要,旨在帮助个人更快地掌握敏捷开发知识,帮助企业更好地实施敏捷转型。主要内容包括:敏捷开发的哲学理念、价值观、敏捷开发...

    力软Learun敏捷开发框架源码v7.0,开发手册

    力软Learun敏捷开发框架是一款基于.NET技术的低代码开发平台,专为加速Web应用程序的构建而设计。它提供了一整套功能,包括代码生成器、通用权限管理、工作流引擎、即时通讯、微信集成、自定义报表以及BI大屏展示等...

    Flash敏捷开发:快速学习敏捷软件开发

    ### Flash敏捷开发:快速学习敏捷软件开发 #### 敏捷软件开发概述 敏捷软件开发是一种迭代的方法论,用于管理新软件开发项目的过程。它强调快速响应变化、客户满意度以及持续改进。与传统的瀑布模型不同,敏捷方法...

    敏捷开发pdf学习敏捷开发的资料

    **敏捷开发:一种创新的项目管理方法** 敏捷开发是一种应对快速变化需求的软件开发方法论,它强调灵活性、协作性和客户参与。源自2001年发布的“敏捷宣言”,敏捷开发的核心理念是人与交互优于过程与工具,可工作的...

    敏捷开发培训(员工)+文档+PPT

    敏捷开发是一种快速响应变化、强调迭代和协作的软件开发方法论。它源于2001年发布的《敏捷软件开发宣言》及其12条原则,旨在提高软件开发效率,提升团队生产力,确保产品能够满足用户需求并及时适应市场变化。本培训...

    敏捷开发知识体系--高清版.pdf

    根据提供的文件信息,无法直接生成关于敏捷开发知识体系的具体内容知识点,因为所给内容并非实际的知识体系描述或相关内容,而是提示信息和一个网址链接。但是,根据标题“敏捷开发知识体系--高清版.pdf”,我们可以...

    敏捷开发(原著)

    ### 敏捷开发(原著)知识点详述 #### 一、敏捷开发概述 **敏捷开发**是一种以人为本、迭代渐进的软件开发方法论。它强调快速响应变化、重视客户合作与高质量交付价值。《敏捷开发(原著)》一书详细介绍了敏捷开发的...

    轻松Scrum之旅:敏捷开发故事

    敏捷开发是软件开发领域的一种方法论,旨在应对传统软件工程理论中存在的种种问题,如长期的开发周期、高昂的开发成本、糟糕的软件质量、频繁流动的开发人员、官僚的体系制度和迅速变化的市场环境等。敏捷开发的核心...

    某敏捷开发框架专业版7.0.rar

    敏捷开发框架是一种以人为核心、迭代、循序渐进的开发方法论,旨在提高软件开发的效率和质量。本文将详细介绍某敏捷开发框架专业版7.0的核心特性、优势、实施流程以及如何利用其进行高效的软件开发。 1. **敏捷开发...

    敏捷开发管理试题及参考答案.pdf

    敏捷开发是一种快速响应变化、强调灵活性和协作性的软件开发方法论。它主要针对那些需求频繁变化、不确定性高的项目,尤其适合小型、创新性强的项目。敏捷开发的核心价值观包括个体和互动高于流程和工具、可工作的...

    敏捷开发 介绍 文档

    敏捷开发是一种以人为核心、迭代、循序渐进的开发方法论,强调灵活性和客户协作,以适应快速变化的需求。这种开发模式起源于2001年,由一群软件开发专家共同提出的敏捷联盟宣言和12条实践原则,旨在解决传统开发过程...

Global site tag (gtag.js) - Google Analytics