六月 9, 2017

项目管理

 

瀑布

 

瀑布模型从一种非常高层的角度描述了开发过程中进行的活动,并且提出了要求开发人员经过的事件序列。项目的工作流程像瀑布一样平稳地向下推动。

软件开发公司继承建筑公司<的瀑布过程。他们经常从基础开始,并由屋顶完成。然而,当您要反转已经完成的序列时,进程不顺利。在开始任何编码之前,瀑布过程需要所有关于预先完成要求的信息。

传统上,开发的循环和交付的软件,应该遵循预先确定的顺序步骤。这个预先确定的过程可以让客户对财务成本和预算进行准确的了解,但并不一定适用于开发团队或IT外包公司。

以下是瀑布模型软件开发过程的主要步骤:

  1. 分析客户的需求 (需求 / Requirement)
  2. 交货和功能规格的定义(设计 / Design)
  3. 制定预算和时间表(规划 / Planning
  4. 开始开发的循环:创建第一个功能(实施 / Implementation
  5. 检查和更正(验证 / Verification)
  6. 维护此功能(维护 / Maintenance

 

 

该过程在步骤4至6之间重新启动循环,直到软件传递给客户。交付后,每个开发的更新都遵循这些步骤。这个过程被称为瀑布模型。在编码任何其他功能之前,就序列地开发软件的每个组件,并完全完成这些组件。

一般而言,在开始项目之前, 该方法具有还需要做工作的阶段,特别是在启动阶段,计划阶段,执行阶段和结束阶段。他们还有管理工作包,报告,风险和问题的一系列流程。

 

瀑布方法的优点:

  • 如果在开发阶段中发生问题,就在设计阶段中可以解决发生的问题。可以在开始任何编码之前, 选择其他解决方案。
  • 在开发过程中收集所有的文档,因为这种方法有利于完整的文档,如要求,需求和设计。
  • 许多公司使用这种方法。
  • 瀑布过程是线性的,所以对非技术人员来说,比较容易了解软件开发流程和项目管理。

瀑布方法的缺点:

  • 客户经常不知道他们需要什么,也不知道怎么使用技术。由于这些因素,可能会产生延迟,并会遇到困难。
  • 设计提供者通常无法预测由于其图形和设计工作的实施出现的问题。
  • 如果需要修改要求(例如,如果要实施新技术,修改业务目标或适应不断变化的市场),则使用瀑布模型并不合适。仍然可以修改要求,但是新程序需要大量的资金与时间。

 

 

敏捷/ SCRUM

 

EasyShoring Solutions 使用敏捷方法进行项目管理。我们提供务实的做法,并在工作过程中与客户保持紧密联系。 敏捷方法的主要优势是不断地纠正要求的可能性。 敏捷方法的首要任务是令客户满意。 客户可以对产品进行任何修改。

 

敏捷基于 3个基础:

  • 透明度
  • 置信度
  • 放纵

 

此外,敏捷基于4个值:

  • 团队成员及其他们工作中的互相交流。
  • 操作软件和解决方案,而不仅仅是详尽的文档。
  • 与客户合作,不仅仅是合同谈判。
  • 改变的能力比计划更大。

 

 

资料来源:敏捷宣言

敏捷开发基于迭代和增量过程,由于自组织团队、跨职能团队之间的合作,就发生要求和解决方案。敏捷很重视快速和灵活变化需求的应对,这是我们与客户密切合作的重要因素。

我们在迭代循环中处理新的功能称为“Sprint”,持续时间两到四周。

使用敏捷开发方法的时候,我们的客户可以更快看结果。在用户论坛上我们与客户讨论特殊的要求。如果在论坛上达成协议并在技术上可行,则该功能将安排在Sprint中。

 

关注产品的所有者

产品的所有者是客户集中利益相关者需求和要求的关键人物。产品的所有者承担责任对于:

  • 产品的盈利能力(投资回报率。
  • 定义产品积压的特点。
  • 根据业务价值对功能进行优先排序。
  • 决定发布日期和内容。
  • 如需每次重复调整功能和优先级。
  • 接受或拒绝工作成果。

 

关注SCRUM大师

Scrum大师在专家团队中是关键人物,对实施Scrum的价值观和实践负责:

  • 消除障碍并免受外部干扰,以便开发团队具有充分的功能和生产力。
  • 促使所有角色和职能人员间的密切合作。
  • 监控,跟踪和处理检查。
  • 项目成员之间的沟通,作报告。
  • 解决开发团队中的冲突。
  • 给予反馈。
  • 不断地改进Scrum团队。

 

关注开发团队

  • 开发团队是EasyShoring Solutions 经验的核心。 他们是跨功能的,其中有业务分析师、程序员、测试人员、用户界面、设计师,而对开发产品负责。
  • EasyShoring Solutions的团队由5到9人组成,自组织和自 分配责任。
  • EasyShoring Solutions的团队成员都精通专业技术,其中C、C++、JAVA、Python、 Ruby、Shellscript、 Visual Basic、 、 CSS、 Swift C、Objective C 以及 Android、iOS、 Oracle、MySQL、Sybase 等等领域的专业知>识。

 

 

两种方法的对比