Be Agile VS Do Agile 之 1

敏捷现在是个很火的运动,IT技术媒体和软件企业都对它给予了高度的关注。

企业、组织、团队和个人都对敏捷有着不同的理解,同时也存在着各种各样的误解。企业组织来讲更关注的是Be Agile,而团队和个人更关注Do Agile。

什么是敏捷?

敏捷是多种轻量软件开发方法的集合;就软件工业来看,Lean 是思想理论,Scrum是项目管理方法,XP是软件开发的具体实践。

Lean :源于精益生产,有4个基本原则:

1> 降低流程和库存的工作量(减少详细需求和文档设计的投资;减少流程负担、兼容性检查、审计等;)

2> 降低周期时间(以更小的环节(块、故事、用例)构建所有的软件;给客户交付较小的和更频繁的发布(可实际工作的代码))

3> 交叉培训和基于单元的生产(利用结对编程和共享代码加强交叉培训;让开发者编写测试代码;使曾个团队趋向于测试和测试自动化;充分实际地配置所有团队成员)

4> 持续的改进流程(持续反映和调整;自组织、自管理软件开发团队)

使用4个基本生产方法降低生产周期和降低生产成本。

Scrum :一种轻量级敏捷项目管理方法,是依据经验进行软件开发过程控制的项目管理方法。也是唯一关注企业管理和组织方面的方法。

Scrum管理方法特点是简化了项目利益相关者的关系:客户或项目所有者PO,利益相关者与开发团队之间的协调者ScrumMaster,可以使用任何方法保质保量的完成开发任务的自我组织和自我管理的开发团队。

XP :极限编程为软件开发带来了好的具体实践,结对编程、TDD、自动化测试等。

Be Agile VS Do Agile:

Be Agile :可持续的改进现有企业组织行为的流程,提高工作效率,降低生产成本。

现今成功公司的CEO都具备敏捷的思想和理念,可以说是Be Agile的。

Do Agile: 实践敏捷方法,Scrum、XP 或其中一些好的实践方法。这当然不是为了敏捷而做敏捷。而是积累Scrum或XP其他敏捷方法的经验,适应敏捷方法带来的软件开发思想和工作方式的转变。

我了解过一些企业实施Scrum实践的经验,成功的都是自下而上的项目实践;失败的都是自上而下推行敏捷方法的项目实践。(infoq 有相关Scrum实施情况的调查)

Why?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ifyou’re embarking on a Python development project, then you should buy this book—there’s nothing quite like it. I know this because I was looking for it last year, and I couldn’t find it. This book introduces the tools you’ll need to get started on agile projects in Python, and unlike any other book out there, it shows you how to tie them all together. Sure, there are many good books on agile development. A lot of them cover the develop- ment processes in great detail, and this is a good thing. Agile development is very much about human interactions and the environment surrounding software development, but there is a whole ecology of tooling to make everything work at a practical level. Agile development eschews extensive up-front specification, and it anticipates that the product will constantly change, but it puts in place rigorous checks to compensate for antici- pated change. Testing is an integral part of agile development from the very start, and it is pursued with ferocious rigor. You need software tools to facilitate testing. Agile projects have very short release cycles, and this has implications for tooling, too. There’s no way to have two-week release cycles if it takes you days to integrate changes, days to perform QA, and days to package and deploy the software. This means that agile develop- ment puts a high value on build and release automation. While agile development techniques can be applied to any project, both testing tools and build automation tend to be very language specific. These tools do exist in Python. They’re widely available, and by and large they’re free, too, but the documentation tends to be . . . um . . . spotty. And while there may be documentation on the individual tools, the documenta- tion telling you how to tie these tools together is usually sparse to nonexistent. This book provides that missing documentation. Who This Book Is For This book is written for a person who knows how to program and is already familiar with Python. Ifyou havesome Python under your belt and you’re thinking of starting a new project, but you don’t know how to get started, then this book is for you. If you’re an experienced Python programmer and you want to give this agile stuff a whirl, then this book is for you. If you’rearelease engineer who has been thrown headlong into the world of Python, then this book is for you, too. If you’re brand new to programming or don’t really know Python, this is not the best book to startwith. Thereare some wonderful books out there that will introduce you to the language,but this isn’tone of them. xix 9810FM.qxd 6/3/08 2:37 PM Page xix What’s Really in Here? Each chapter in this book addresses a different aspect of tooling in an agile development envi- ronment. These are collected roughly into two parts, with the first focusing on basic tooling, and the second focusing on specific practices. If you’re already familiar with Subversion, Setuptools, and Buildbot, then you should have no problem jumping between Chapters 6 through 11. If you’re not, then you’ll want to look at the earlier chapters first. Chapter 1:What Is Agile Development? Chapter 1 provides an overview of the methods that characterize agile development method- ologies, with a focus on those not directly related to tooling. Chapter 2:The IDE:Eclipsing the Command Line This book uses the command line throughout, but modern IDEs provide many benefits. This chapter introduces you to Python development using Eclipse and the Pydev plug-in. Chapter 3:Revision Control:Subverting Your Code Arevision control system is part of the core infrastructure for any agile development environ- ment. Subversion is an excellent choice. I show you how to use it from the command line and from Eclipse using the Subversive plug-in. Chapter 4:Setuptools:Harnessing Your Code You can’t replicate your work for testing purposes without some sort of a framework. In Python, a natural choice is Setuptools,which provides a solid basis for automated builds. Chapter 5:A Build for Every Check-In Automated build systems formthe coreof a continuous integration system. HereIintroduce Buildbot, an excellent system that happens to be written in Python. It ensures that the code you check in builds correctly. Chapter 6:Testing:The Horse and the Cart Unit testing ensures that your code runs as you expect it to, and it prevents regression (reappearance of old bugs) when you change existing code.Iintroduce the unit-testing pack- ages unittest and Nose, and I show how to use Nose to run tests from within Eclipse and Setuptools. Finally, I show how to link them into Buildbot. Chapter 7:Test-Driven Development and Impostors Test-driven development (TDD) is the practice of writing tests before writing the code they test. Imposters (a.k.a. mock objects) provide a powerful unit-testing technique to isolate units of code. I examine two mock object frameworks, pMock and PyMock, and I work through a sizable example to show how TDD, refactoring, and imposters are used, and how they affect the code that you produce with them. IINTRODUCTION xx 9810FM.qxd 6/3/08 2:37 PM Page xx Chapter 8:Everybody Needs Feedback Improving your code requires feedback—useful information that sometimes comes from your coworkers, and sometimes from software. Accurate feedback requires standards. This chapter looks at code coverage, complexity measures, and development velocity. It also examines cod- ing standards, how they can be enforced from within Eclipse, and how you can prevent bad code from reaching your repository by using Subversion pre-commit hooks. Chapter 9:Databases Databases are very widely used these days, and they pose their own special challenges for agile development. This chapter examines the object-relational mappers SQLObject and SQLAlchemy, and then examines how to version databases using the DBMigrate tool. Chapter 10:Web Testing The web is everywhere, and web development has its own set of issues. This chapter examines general approaches to testing web applications, and introduces HTML/XML verification using ElementTreeand BeautifulSoup.It also looks into JavaScript unit testing with JsUnit. Chapter 11:Functional Testing This chapter examines functional testing with a particular emphasis on acceptance testing using PyFit. The chapter shows how to use PyFit, and more importantly, how to tie PyFit into Setuptools and Buildbot. (In my view, this alone is worth the price of the book.)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值