敏捷开发之源

来源:互联网 发布:云和数据培训 编辑:程序博客网 时间:2024/04/29 08:46

什么时候需要选择敏捷开发?

如果您遭遇到了软件开发的困境,发现项目总是延迟,客户总是不满意,开发人员士气低落,那么您应该考虑采用敏捷开发,如果没有,那么不要因为迷恋方法论而选择它。

 

什么项目适合敏捷开发?

新颖易变的创意类产品和相对固化的可预见的制造类产品研发,前者更适合采用敏捷开发。

如果您的软件研发过程有很多的不确定性,比如采用了新的开发技术、要开发一个创新的产品、市场还比较模糊、员工经验还在积累中,那么应该采用敏捷开发模式。

可预见的制造

新产品开发

可以先完成规格,然后制造

很难预先制定好不变的详尽的需求

开始时,可以准确的对工作量和成本进行评估

需要观察数据,才能更好的制定计划和评估

可以识别、定义和排序所有的活动

需要根据反馈,来不断迭代调整

变化率低

变化率高

复杂度低

复杂度高

重复性高

重复性低

 

传统的软件工程是期望软件的开发可以和硬件批量制造一样有序可控,员工是生产机器上的螺丝钉。但实际上大部分软件研发都并非可预见的集体制造活动,即使是模仿别人的软件,经验技能储备上也存在很大的不确定性。同样的任务,好的工程师2天可以完成,差的工程师也许2周都做不到位。软件工程师永远不可能也不应该被物化为一个螺丝钉。基于瀑布型的软件开发模式和相关物化、量化方法在面对软件行业的众多挑战时并没有多大帮助。貌似有理而实则无用。

 

哪些因素阻碍提前预测?

*)技术日新月异

*)客户或消费者自己也不清楚想要什么

*)客户通常很难描述清楚所有他们知道的,有很多潜台词需要揣摩

*)许多细节只有在行动起来以后才会被披露

*)细节部分过于复杂

*)细节部分花费时间甚至远超预期

*)产品开发过程中,参与人(老板、客户、消费者、我们自己)改变了主意

*)市场竞争和变化

 

敏捷之源

深刻地认识到大型软件的复杂性、创新产品的感性、软件技术的易变性、客户需求的不确定性和软件工程师的人性是敏捷方法论的思想源泉。

 

原创粉丝点击