Scrum是很好的框架,简单易用,但没有明确的工程实践。OK,XP的结对编程、持续集成以及TDD等都可以借鉴。Scrum对于大型项目(完成的功能和系统架构复杂、团队成员多)支持力度不够,OK,AM(Agile Modeling)的Envision requirement和Envision Architecture可以借鉴。Scrum对于产品在运维阶段可能不适用,例如产品上线后的技术支持,很多响应要求在24小时内完成,甚至更短的时间,KanBan可以在这个阶段采用。
另外,Scrum对组织级别涉及的很少。对于一个组织而言,选择一种方法或者改进过程时要考量的因素应该是:
1) Align with business goal
2) Get cost and schedule under control
对于一个组织而言,选择一种方法或者改进过程时第一步需要参考的是CMMI的Level3的过程域OPF(ORGANIZATIONAL PROCESS FOCUS)的SP 1.1 Establish Organizational Process Needs。
再看看CMMI和Scrum。Scrum有很好的方法使CMMI更加敏捷,CMMI解决了“What”,Scrum给出了“How to”。例如CMMI的Level2的过程域REQM(需求管理):
SP5: Identify inconsistencies between the project plans and work products and the requirements.
Scrum给出的具体方案是:
Daily standup meeting to identify issues.
Release planning and Sprint planning sessions to address inconsistencies.
Sprint burndown chart that tracks effort remaining.
Release burndown chart that tracks story points that have been completed. This shows how much of the product functionality is left to complete.
当然,CMMI也可以帮助实施敏捷的企业更加的“成熟”,这里不再举例。
Scrum不是银弹,CMMI也不是银弹,XP也不是银弹。但是很多方法的组合,或者某一种模式具体的一种实践,根据企业和团队自身的当下现状,有可能成为最适合自己的良方。
分享到:
相关推荐
### 大数据没有唯一的银弹 #### 核心观点: - **多样性与复杂性:**在当前的大数据环境中,没有一种技术或解决方案能够满足所有需求。这是因为数据本身的多样性与复杂性,以及不同业务场景下的特定需求。 - **技术...
本讨论主要聚焦于分布式应用的核心要素设计方法,旨在揭示并无“银弹”解决方案,而是需要根据具体业务场景进行有针对性的设计。 首先,分布式应用的兴起主要是为了解决传统单体应用在面对大规模用户量和复杂业务时...
3. 程序质量的关键在于良好的程序设计风格,这包括选择适当的算法和数据结构。 4. 变量名的使用对编码效率有影响,良好的设计方法和算法也是提高效率的关键。 5. 应该逐步统一项目中的代码风格,即使原有代码不...
RingWebAPI这是一个WebAPI的模板项目,内置很多基础功能,在创建项目时作出选择,生成对应的项目模板,这不是银弹,只是减少重复工作。功能是否启用NLog是否启用SWagger是否启有Dapper使用数据库类型:MSSql,MySql,...
软件开发的核心在于构建复杂的概念结构,而这些概念结构的表达则涉及一系列的偶然性任务,如编程语言的选择、代码的编写等。过去的技术进步已经极大地减少了这些偶然性任务,但未来的发展将更多地依赖于解决软件工程...
尽管技术进步和新的开发实践不断涌现,但至今仍没有找到一种能够完全解决软件工程所有难题的“银弹”。 总的来说,软件工程面临着规模、复杂性、可变性和不可见性的挑战。理解这些关系和背景对于提升软件质量、优化...
"UML建模实例" UML建模实例是指使用UML(Unified Modeling Language)语言来进行软件系统的模型化、设计、开发和测试的...但是,软件开发没有银弹,需要根据实际情况选择适合的开发方法、技术和工具来解决不同的问题。
而wwww.52eshu.com真诚欢迎您来下载,表明这是一个提供电子书下载的网站,用户可以在该网站上找到并下载这本书的电子版本,以便随时随地学习和研究。 总的来说,《人月神话》是一本值得反复研读的书籍,无论你是初...
- **软件工程的复杂性**:书中详细分析了软件开发过程中的各种挑战,包括需求变化、团队协作问题、技术选择等,并提出了一系列应对策略。 #### 三、具体知识点详解 1. **Brooks定律**:该定律强调了在项目管理中,...
此外,书中还强调了谦卑的重要性,即承认自己的局限性和易犯错误的本质,这对于软件工程师来说至关重要。 #### 四、实践意义与影响 《人月神话》不仅是一本理论著作,它的很多观点对于实际的软件开发工作有着重要...
他还建议建立清晰的文档和接口定义,以便确保所有团队成员都明白自己的任务。 #### 5. 管理者的角色 书中还探讨了管理者在软件项目中的作用。Brooks认为,管理者应该具备良好的组织能力,能够有效地规划和监督项目...
Brooks教授认为,有效的项目管理比技术选择更为重要。 3. **架构设计的重要性**:强调了在项目初期进行详尽的架构设计对于后期开发工作的顺利进行至关重要。 4. **没有银弹**:在《没有银弹》一文中,Brooks教授提出...
例如,架构设计、需求分析等被视为更核心的问题,而具体的编程语言选择则相对次要。 4. **软件开发的困难**:书中详细分析了软件开发面临的挑战,包括需求不明确、变更频繁等问题,并提出了一些实用的应对策略。 5...
NoSQL数据库,全称"Not only Structured Query Language",是一种非传统的数据管理方式,尤其在云数据管理系统...在选择数据库系统时,应根据具体业务需求、数据类型和性能要求来权衡利弊,合理选择适合的数据库类型。
软件开发是一个复杂的活动,涉及众多因素,包括技术选择、团队协作、项目管理等。 3. **软件开发的挑战**:书中讨论了软件开发面临的多种挑战,如需求管理、变更控制、质量管理等,并提供了一系列实用的建议和策略...
每种方法都有其适用场景,比如小型、独立的服务可能更适合无容器或自成容器方式,而大型、复杂的服务可能更倾向于使用外置容器。 Java生态系统中的微服务架构不仅提供了灵活的构建方式,还利用了Spring Cloud等工具...