认识Agile,Scrum和DevOps
If everything's under control you are going too slow.
当今的开发,要求faster and faster。所以我们要Agile,become Agile,be Agile
Agile
近年公司一直在推Agile。终于我们这个SDLC长期主导的Department也推行Agile了。在上了一些Training后将所学和理解归纳一下。
首先什么是Agile?大家一般的认识是增量(Incremental),迭代(Iterative)。但我觉得更加要认识到的是将Agile看作一种价值观。对Software Development的价值观。
所以Agile有所谓的敏捷宣言Agile Manifesto
Individuals and interaction over process and tools
Working software over comprehensive documnetation
Customer Collaboration over contract negotiation
Responding to change over following a plan
这里要认识的是,over的左右并不是对立的,而是说如果你认为右边的事情有价值,那么你就应该承认左边的价值更大。
从一些部门的实践,他们得出了一个心得,Be Agile,Don't do。即Agile是一种状态,关键是这个团队有一样的一种共识,价值观,然后一起去实践Agile。而不是强行推进一些Agile的工具,开发流程。
Agile在组织形式上讲究的是self-organizing,cross-function。用球队的例子可以较好的理解这一点。开发的小组应该像球队一样,当比赛开始时,个人就在自己的位置上发挥自己的作用无需监管,流程,汇报去控制。足球:前锋,后卫,中场,龙门...。篮球:中锋,篮板,后卫,三分手...。开发团队:用户,开发,测试,DBA...
强调Business或者用户一定要在Team内,这样需求才能明确,反馈才能及时。办公地点必须在一起。像打球一样,难道通过VC一起打篮球,踢足球?
一般小组6至8个人组成。小组要达到自治的状态。(Autonomy)也就是小组可以自己回答以下的问题:
What to build, How to build and how to work together.
最后,我们应该理性看待Agile。Agile并不是什么秘籍,也不是所有Project都应该使用Agile。Agile只是对现在商业模式急速变化,商机稍纵即逝,软件开发相对应用于降低风险,快速体现价值的方法。附图:
Scrum
Scrum 是使用最为广泛的一种Agile方法论,Methodology。如果Agile是价值观,Scrum就是方法论。
Scrum通常用三三五五归纳
三个角色:Product Owner,Development Team,Scrum Master。Scrum Master是一个船长,机长的角色,保证开发按照Scrum的方法进行。
三个产出:Product Backlog,Sprint Backlog,Work Dliverable Software
五个活动:Sprint Planing Meeting,Sprint, Daily Stand up Meeting, Sprint Review, Sprint Retrospective
五个价值观:Courage,Commitment,Focus,Respect,Openness
http://www.cnblogs.com/speeding/archive/2012/10/30/2746532.html
https://book.douban.com/review/7467832/
DevOps
DevOps 关注的是Development与Operation的协作。强调加强两者的沟通协调。通过一系列的自动化保证交付质量,快速的Production更新。做到continuous delivery。