Java互联网架构-深入理解敏捷开发(java互联网架构是什么)
概述
敏捷式开发(Agile Development)对开发人员来说,是个非常熟悉的名词,相比于传统的瀑布式流程,短平快的敏捷团队的协作方法可能更加高效。我们公司从去年的7月份开始,也慢慢地走向了敏捷开发的转型。因此,组织架构也做了相应的调整,从以前的各项技能团队变成了跨职能团队,也就是说一个团队中含有各种的角色:产品,设计师,开发,测试…这意味着每一个团队都是一条产品功能线,需要和各种职能的人进行交流沟通。
一、什么是敏捷开发
敏捷开发是针对传统的瀑布开发模式的弊端而产生的一种新的开发模式,目标是提高开发效率和响应能力。
除了原则和实践,模式也是很重要的,多研究模式及其应用可以使你更深层次的理解敏捷开发。
敏捷开发现已成为绝大多数IT企业采用的项目管理方法。
IT企业主要采用的项目管理方法学
敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。
敏捷精神(The spirit of agile):透明、沟通、协作。
瀑布流模式
简单说说另一种常见模式:瀑布流模式。它是以文档为驱动,在整个开发过程中,开发人员根据需求文档进行开发,一切以文档为依据。
而敏捷开发则是一种以人为核心、迭代、循序渐进的开发方法。它不是一门技术,它是一种开发方法,也就是一种软件开发的流程,它会指导我们用规定的环节去一步一步完成项目的开发;而这种开发方式的主要驱动核心是人,注重的是人与人之间,面对面的交流,它只写有必要的文档,或尽量少写文档,采用的是迭代式开发,适用于以下情况:
-
适用于软件,因为软件是软的,可以改。要是硬件,改起来就没那么方便了;
适用于客户不知道自己要啥的情况,这样的客户占绝大多数。因为客户不知道要啥,所以你需要不断帮客户弄明白他到底想要啥。换句话说,你需要和客户沟通,合作,倾听反馈,持续改进;
适用于竞争激烈的市场,这样的情况下,赶在竞争对手前交付一个不完美但至少能用的产品非常重要;
适用于快速变化的市场,你在埋头造一辆汽车的时候,客户已经想开飞机满天飞了,这就需要你能一步步的把汽车改成飞机,还能按时交付;
适用于在一个地方办公的小团队,一般 10 个人以内。这样能使敏捷中主要的沟通方式「Face to Face」是可行的。
敏捷开发的过程与分工
敏捷开发的过程主要通过产品范围内迭代内容和周期的确认,规划合理的迭代范围,安排各岗位人员分步骤协同工作,通过开发过程中的任务项的快速跟进和渐进明细原则,保证资源的平衡和工作效率的最大化。
前期(前1/4时间)
由产品经理驱动,订制公司产品战略,从而进行需求的采集与确定,根据竞品分析以及用户调研,进行产品原型的制作以及产品需求文档的撰写,在这个过程中,需要与项目经理进行评审,了解产品的开发难度以及可行性,从而对产品需求以及原型图进行合适地调整。
中期(1/4时间)
由 UE 完善产品原型的交互细节,有关页面的跳转等用户体验做到极致,然后由 UI 设计师进行界面的设计美化,及时与产品经理进行沟通,设计出与产品经理所想要的效果出来,结合自身的设计理念和技术,将界面设计得人性化、扁平化。
后期(1/2时间)
由开发人员进行产品具体的功能设计开发,根据项目进度安排时间,做好工作安排,认真查看设计图以及原型图、产品需求不懂,不清楚的地方及时与产品经理进行沟通,以免辛苦做出的功能与产品的意思不符,造成浪费时间精力的后果,产品进行开发完成后,由测试人员根据测试用例进行测试,将出现的问题进行反馈,及时修复产品的 bug,确保产品在规定的时间进行上线。
了解了这个流程,就容易解释为什么一旦产品出现问题,产品就成为当之无愧的背锅侠,事实上,这怨不得其他人,好比造房子,产品的工作类似打地基,地基不好,房子会塌,房子塌了怪谁,地基打得不好,当然是产品。
所以在工作中产品经理特别需要注意以下三个要点:
全程参与
前期的产品战略以及需求,产品经理都是参与其中的。特别是大的产品方向突出的功能点,你都必须全局进行了解。对公司的战略方向是否匹配,之后在产品的开发以及以后产品的迭代是否难度太大;这些问题一定要想清楚,不懂的就问,不断地进行评审深入下去。因为一旦进入开发阶段,突然变更需求,那么这段时间的精力以及时间就浪费了,这对于公司的损伤是巨大的。
勤写文档
一个人的记忆不可能会记住所有的东西,所以你必须记录下来,这样能更好地开展工作,在写需求文档的时候,我们需要要对每个用词定义紧抠,少用差不多、不确定等用词来模糊定义,千万不要以为需求文档开发不看,只看设计图,起码测试是需要根据你的需求文档写测试用例的,所以需要慎重对待。
做好评审记录
在评审的过程中,与项目经理进行评审后,记得做记录。哪些功能要做,哪些功能不错;什么时间开始,什么时间结束,这些都做好记录。
在互联网时代,使用敏捷开发模式可以让产品在市场上快速试错,根据数据的反馈进行及时的战略调整,让产品在市场立于不败之地,而在这个模式中,产品经理无疑是最重要的一个角色。最后用敏捷开发的 slogan 来总结它的几个特点吧:
「个体与交互」胜过「过程与工具」
「可以工作的软件」胜过「面面俱到的文挡」
「客户协作」胜过「合同谈判」
「响应变化」胜过「遵循计划」
敏捷开发十二原则
1.我们的最高目标是,通过尽早和持续地交付有价值的软件来满足客户。
2.欢迎对需求提出变更——即使是在项目开发后期。要善于利用需求变更,帮助客户获得竞争优势。
3.要不断交付可用的软件,周期从几周到几个月不等,且越短越好
4.项目过程中,业务人员与开发人员必须在一起工作。
5.要善于激励项目人员,给他们以所需要的环境和支持,并相信他们能够完成任务。
6.无论是团队内还是团队间,最有效的沟通方法是面对面的交谈。
7.可用的软件是衡量进度的主要指标。
8.敏捷过程提倡可持续的开发。项目方、开发人员和用户应该能够保持恒久稳定的进展速度。
9.对技术的精益求精以及对设计的不断完善将提升敏捷性。
10.要做到简洁,即尽最大可能减少不必要的工作。这是一门艺术。
11.最佳的架构、需求和设计出自于自组织的团队。
12.团队要定期反省如何能够做到更有效,并相应地调整团队的行为。
总结
以上是对深入理解敏捷开发,分享给大家,希望大家可以了解什么是深入理解敏捷开发。觉得收获的话可以点个关注收藏转发一波喔,谢谢大佬们支持。(吹一波,233~~)