`
dahui
  • 浏览: 50141 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

对敏捷的一点思考 ---- 敏捷是强调结果的

阅读更多


现在软件工程项目管理流行使用“敏捷”。经历了一些敏捷项目,有了些感想。
现在的项目组强制执行结对编程。我喜欢敏捷因为敏捷是山寨版的CMMI。而山寨代表着先进生产力、代表着具体问题具体分析的思想与实践。

先看看Agile 宣言与原则。你就发现敏捷其实是强调结果的。它用结果督促、指导项目的进行。
但是我觉得敏捷开发忽略了对总体架构或者系统设计的要求与指导。

在最近的几个项目中,都号称用敏捷的模式进行项目管理:每天早上的15分钟会议、结对编程、与用户的直接沟通。但这些手段都不能很好的解决在软件框架的设计问题。因为大多数程序员的经验与水平还不能够为项目建立框架(spring, struts这些现有框架确实解决了很多问题。但是一但项目需要定制自己的框架时,问题就凸显出来。)
如何根据具体的项目特点搭建适合自己业务需求的框架能够敏捷出来么?我个人觉得是不大可能的。因为这要求开发人员在对业务、技术比较了解的情况下进行更深一个层次的抽象。如何抽象?哪些可以抽象?抽象后如何向外提供服务(提供调用接口或IoC)?都是需要有比较专业的思考,同时很多也是经验。
想说的是,敏捷并不能替代全部的传统的软件工程流程,尤其是系统设计这一块。
敏捷是方法论,并不是保证。就如,设计也需要敏捷一样。

虽然我自己对敏捷有了以上负面的感觉,但我依旧喜欢敏捷,因为它思想包括:个体和交互、客户合作。

 

分享到:
评论
29 楼 ghostprayer 2009-03-27  

看完LZ的帖子,个人不大同意LZ的看法,不知道LZ对重构有怎么的理解,个人觉得敏捷之所以不在早期项目设计上关注的太多,是因为敏捷提倡无时无刻,无处不在的对代码进行重构,如果在早期项目设计就已经规定了框框架架,那么如何应对以后可能发生的各种各样的需求变化呢.设计或者说框架是在代码的不断重构中完成的,而且也不应该是一成不变的.当然一些必要的大的整体上的架构还是可以在前期做好的.仁都见仁,智者见智,欢迎拍砖...
28 楼 blackskuller 2009-03-26  
几个噩梦般的经验后,我深深感觉到
实际项目上完全敏捷是危险的.不敏捷时间是不够的.
一个团队里面总会有几个菜鸟几个老鸟.老鸟一开始飞,菜鸟根本跟不上.到头来老鸟还是要回头和菜鸟一起慢慢爬.你还要小心有些菜鸟你一不注意的就把整个系统玩废了.
提供一个好点的做法.想系统设计阶段就不要搞什么敏捷了.要敏捷也不要太多人参与几个老鸟搞就好了.等把系统设计过了,大的框架搭好了,再把菜鸟们放进去.
27 楼 anchor 2009-03-25  
敏捷不是包治百病。

小团队  小项目  高风险  需求变化频繁  。。。

26 楼 shunzhao 2009-03-13  
我觉得不是这么简单的

别人JIT式的编程和面向信息流的架构还没说呢
25 楼 dch1287 2009-03-10  
所以敏捷需要所有团队成员都是人精一级 至少是比较聪明的一类
并且是擅长沟通 非常熟悉自己使用的技术的(就算不熟悉 也能够在短期内 从原理上 技术哲学上 快速学习并熟悉)
然后 接着 一堆敏捷宣言 。。
24 楼 hoorace 2009-03-09  
敏捷是针对团队中都是高手的情况而言的,如果是团队中的人员结构参差不齐,敏捷真的是搞垮团队。
23 楼 墓里活人 2009-03-06  
说白了 就是

生产力 与 复杂度 的协调控制
22 楼 aqingsao 2009-03-05  
回楼主:
1. 敏捷是强调结果的
难道CMMI不是强调结果的吗?CMMI虽然号称关注流程,但是如果流程不是为了结果,整那么多流程干嘛。从这一点上来说,敏捷强调结果是没错的,但是如果只看到这一点未免管中窥豹。
2. 在最近的几个项目中,都号称用敏捷的模式进行项目管理
估计你们是自上而下的推行敏捷,不要着急一口吃成胖子。先看看当前流程哪些地方不合理,哪些地方存在坏味道,再用敏捷的实践予以改进。
举个例子,你说当前程序员的水平不足以给项目建立框架(gigix其实已经回答了)──这就是你们每日站立会议可以提出的问题啊──可以拉个牛人过来;或者拉不到,项目开始前花一定时间对技术难点进行spike。
21 楼 tuti 2009-03-05  
唯一不足的就是东西没人要。
20 楼 抛出异常的爱 2009-03-05  
tuti 写道
和日本的游戏业发展有什么关系?

日 本回来的一同事说给南梦宫写过游戏
问写的是哪个.....他说...不知道.
写代码的人成为了一个文档-代码生成机器
写文档的人成为了故事-文档生成机器
写故事的人成为了人物-故事生成机器
人物设计师成为了产品目标-性格生成机器.

你会发现很多种类的日本游戏中的人的总数是差不多的.
这一切由策划+监制决定的.
这个游戏的灵魂就是这两个人.
其它的要不要牛人都差不多.
画画的不好到上海北京找个外包每祯手描
故事不好就多找几个写手大量的写挑出好的用.
技术不行?什么不行.
都是if一点反射没有一样写出牛X的东西.

唯一的不足就是时间长.人力虚耗太大.....
19 楼 tuti 2009-03-05  
和日本的游戏业发展有什么关系?
18 楼 抛出异常的爱 2009-03-05  
人------机器
后来变成
人 ----程序-----电脑
再后来
人----命令----程序----操作系统----硬件
再后来
人-----命令------界面 ----------程序-------界面------人
              |                  |
              ---  程序员--语言--
再再后来
人----界面-----XXX软件公司( -项目-管理-需求-设计-开发-验收-布署-维护-运维-........)

你也看到了...现在的软件就是个非常复杂的系统.

之后还会变成什么样子我不知道.
反正现在的样子是制约软件发展的.
17 楼 tuti 2009-03-05  
抛出异常的爱 写道

的确高管人才也难找.
如果计算机就像上个世纪70年代一样
由一群魔术师来玩的话....
也就没有了软件工程这种东西了
一是由于他们人数太少了.
二是由于他们作的东西不用牺牲大量的复杂度来OO

管理牛人可以扩大技术牛人的生产率
就是说可以减少最大技术牛人的需求度
如果不明白的话可以看看日本的游戏业发展.


不明白,你给扫扫盲吧
16 楼 抛出异常的爱 2009-03-05  
tuti 写道
抛出异常的爱 写道
tuti 写道

分工只会增加难度

增加管理难度.....
如果找技术牛人代价大
就找几个管理牛人代替.
反正最终目的是快速开发完成.


抛,你自己看看你说的都是些什么逻辑。

你的意思是
管理牛人的代价比技术牛人代价低?
在缺乏技术牛人的情况下,可以由管理牛人代替?
通过管理能把高难度的技术问题,降解为一堆低难度的技术难题,让一堆技术不牛人搞定?

的确高管人才也难找.
如果计算机就像上个世纪70年代一样
由一群魔术师来玩的话....
也就没有了软件工程这种东西了
一是由于他们人数太少了.
二是由于他们作的东西不用牺牲大量的复杂度来OO

管理牛人可以扩大技术牛人的生产率
就是说可以减少最大技术牛人的需求度
如果不明白的话可以看看日本的游戏业发展.

另我对技术的态度很简单
就技术带来的最大好处是给工人的.
他能提高工人的效率.
减少工人的劳动强度

对公司对项目的好处是间接的.
技术对于老板来说只是时间问题
技术被夸大了许多倍.
主要是由于软件的管理根本没有更好办法
所以幻想着技术可以解决一切.
15 楼 surpass 2009-03-05  
抛出异常的爱 写道
敏捷是不是指跑的更快.
而是指能够更透明的了解自己
像用CT看病再动手术割.
与用号脉喝汤药冶病.

要么很快成功  要么死的更快

14 楼 tuti 2009-03-05  
抛出异常的爱 写道
tuti 写道

分工只会增加难度

增加管理难度.....
如果找技术牛人代价大
就找几个管理牛人代替.
反正最终目的是快速开发完成.


抛,你自己看看你说的都是些什么逻辑。

你的意思是
管理牛人的代价比技术牛人代价低?
在缺乏技术牛人的情况下,可以由管理牛人代替?
通过管理能把高难度的技术问题,降解为一堆低难度的技术难题,让一堆技术不牛人搞定?

13 楼 whaosoft 2009-03-04  
什么是敏捷呢 拿以前做过的改改还是什么呢
敏捷是不是也要分项目呢~~
12 楼 抛出异常的爱 2009-03-04  
tuti 写道
抛出异常的爱 写道
gigix 写道
dahui 写道
   任何办法,能让不具备相应经验与水平的程序员突然就能够为项目建立框架了,我很想听听看这个银弹长什么样。
   === 这事肯定不能突然发生。

你说,我这儿有帮菜鸟,我就算敏捷了他们也不会做系统设计
我说,那你告诉我,你有啥办法让他们会?
你说,等二年吧

真是好回答

分工 降低开发难度.....
让菜鸟上手更快一些.
不用等二年,一个月差不多了.
饭馆,还有打杂的,切菜的.
不必强求要HR给你招一群大厨过来吧.

敏捷能腾出高手的更多杂活给打杂的去干.....
CMMI是让高手在边上设计菜式,而不是作菜....

分工只会增加难度

增加管理难度.....
如果找技术牛人代价大
就找几个管理牛人代替.
反正最终目的是快速开发完成.
11 楼 tuti 2009-03-04  
抛出异常的爱 写道
gigix 写道
dahui 写道
   任何办法,能让不具备相应经验与水平的程序员突然就能够为项目建立框架了,我很想听听看这个银弹长什么样。
   === 这事肯定不能突然发生。

你说,我这儿有帮菜鸟,我就算敏捷了他们也不会做系统设计
我说,那你告诉我,你有啥办法让他们会?
你说,等二年吧

真是好回答

分工 降低开发难度.....
让菜鸟上手更快一些.
不用等二年,一个月差不多了.
饭馆,还有打杂的,切菜的.
不必强求要HR给你招一群大厨过来吧.

敏捷能腾出高手的更多杂活给打杂的去干.....
CMMI是让高手在边上设计菜式,而不是作菜....

分工只会增加难度
10 楼 抛出异常的爱 2009-03-04  
gigix 写道
dahui 写道
   任何办法,能让不具备相应经验与水平的程序员突然就能够为项目建立框架了,我很想听听看这个银弹长什么样。
   === 这事肯定不能突然发生。

你说,我这儿有帮菜鸟,我就算敏捷了他们也不会做系统设计
我说,那你告诉我,你有啥办法让他们会?
你说,等二年吧

真是好回答

分工 降低开发难度.....
让菜鸟上手更快一些.
不用等二年,一个月差不多了.
饭馆,还有打杂的,切菜的.
不必强求要HR给你招一群大厨过来吧.

敏捷能腾出高手的更多杂活给打杂的去干.....
CMMI是让高手在边上设计菜式,而不是作菜....

相关推荐

    Agile Software Development----敏捷软件开发----Draft version: 3b

    - **信息的对流**:信息在团队成员之间流动的方式,强调了信息流通的重要性及其对团队表现的影响。 - **跨越沟通鸿沟**:解决团队成员之间存在的沟通障碍,确保信息准确无误地传递。 - **团队作为社区**:强调团队内...

    敏捷软件开发-英文版

    - **轻量级但足够**:敏捷方法强调简单性和灵活性,以应对快速变化的需求。 - **成为自我适应的组织**:讨论了如何构建能够自我适应不断变化环境的组织结构。 - **明日何为**:每个章节末尾都会提出一个问题:“明天...

    敏捷个人-认识自我,管理自我 v0.2.pdf

    本书籍《敏捷个人-认识自我,管理自我 v0.2》是在前一版本的基础上进行了更新和完善,作者周金根通过自身的实践经验及对敏捷管理的理解,分享了关于个人成长和管理的心得体会。该书主要围绕“认识自我”和“管理...

    传统企业敏捷转型的策略与思考.pdf

    这种业务模式,被称为敏捷转型,它源于敏捷软件开发的实践,强调迭代开发、持续集成和快速反馈。传统企业敏捷转型的核心目标是通过敏捷实践提高企业的适应性和效率,从而更好地满足客户需求。 转型策略和思考通常...

    敏捷导入及组织转型-CMMI背景下推进敏捷

    - **考虑如何管理知识工作者**:敏捷方法强调自组织团队的重要性,这意味着需要重新思考如何管理和激励知识型员工。 - **CMMI本身也有连续表示法**:这表明CMMI并非完全与敏捷相冲突,而是可以在一定程度上与敏捷...

    0.敏捷个人-认识自我,管理自我.pdf

    从给定的文件标题、描述、标签以及部分内容来看,这份文档的主题聚焦于“敏捷个人——认识自我,管理自我”,这是一门结合了个人成长与敏捷思维的学科,旨在帮助个人在快速变化的工作环境中,通过自我认知和自我管理...

    大测大悟 - 测试的敏捷之道

    文章的核心在于将“悟”(理解与反思)与“测”(实证验证)相结合,强调在敏捷环境中进行测试时,不仅要有科学的方法论支撑,还要具备灵活应变的能力,以及对测试本质的深刻理解。 ### 敏捷测试的本质 敏捷测试的...

    敏捷个人-认识自我,管理自我+v0.2

    它由周金根先生撰写并分享,强调通过自我反思、持续改进以及运用敏捷开发中的某些理念和技术,来实现个人层面的成长和发展。 #### 二、Scrum敏捷开发方法的应用 - **价值观**:敏捷个人借鉴了Scrum中的核心价值观...

    敏捷开发的实践与思考PPT课件.pptx

    3. 自我否定:敏捷开发是对传统开发方式的否定,强调快速响应变化和灵活适应需求。 二、敏捷开发实践解决了哪些问题? 1. Kick Off 会议:统一 PM、DEV、QA 的思想,确定本迭代的终极目标和story的优先级。 2. ...

    敏捷思维-架构设计中的方法学.rar

    敏捷方法学,如极限编程(XP),强调灵活性、快速响应变化以及团队协作,为应对复杂且不断变化的项目需求提供了有效的框架。以下是对这个主题的详细阐述: 1. 敏捷思维的核心理念: 敏捷思维的核心在于迭代开发、...

    敏捷软件开发方法(英文版)

    ### 敏捷软件开发方法 ...通过以上介绍可以看出,《敏捷软件开发》不仅提供了实用的技术指导,还深入探讨了敏捷开发背后的理念和哲学思考,对于希望采用敏捷方法的企业和个人来说是一本非常有价值的参考书。

    华为敏捷开发介绍华为敏捷软件开发解读V101.ppt

    该策略强调管理者和软件开发相关人员对敏捷开发的理解和掌握,并通过考试来考核相关人员的知识。考试题目包括管理者版本和员工版本,分别针对管理者和员工应知应会的知识。 敏捷学习参考材料包括《华为敏捷开发解读...

    迈向下一代敏捷

    综上所述,《迈向下一代敏捷》一文深入探讨了当前敏捷开发领域面临的挑战,并提出了一系列前瞻性的思考和建议。通过对现有框架的批判性分析以及对新方法的探索,黄邦伟博士为我们指明了通往更高层次敏捷发展的道路。...

    敏捷软件开发 英文版

    - **轻量级但足够**:第147页强调了敏捷方法论的核心在于保持简单,避免过度工程化的同时确保满足需求。 - **敏捷理念**:第149页阐述了敏捷的核心理念,即通过快速迭代和持续反馈来提高产品质量和客户满意度。 - **...

    《敏捷软件开发》源代码

    1. 敏捷软件开发:敏捷开发是一种以人为本、迭代、增量的软件开发方法,强调适应性而非预设计划,重视快速反馈和团队协作。它的核心价值观包括个体和互动高于流程和工具,可工作的软件高于详尽的文档,客户合作高于...

    测试驱动的软件开发 TDD (Test-Driven Development)+敏捷开发过程

    测试驱动的软件开发(TDD,Test-Driven Development)...总的来说,TDD 和敏捷开发相结合,为软件开发提供了一种高效、高质量的方法论,但需要开发者有较高的测试意识和技术能力,以及团队对敏捷原则的深入理解和应用。

    微服务的实践与思考-左文建

    左文建先生对微服务架构的实施与思考,结合了他的实际项目经验,提供了深入的见解。 在文章中,左文建先生提出了关于微服务架构的多个核心问题,包括它是什么,是否是一时的现象还是长期趋势,实施的前提和条件,...

Global site tag (gtag.js) - Google Analytics