Pragmatic Programmers - Practices of an Agile Developer 读书笔记

一.Beginning Agility

1.Work for Outcome

2.Quick Fixes Become Quicksand

3.Criticize Ideas,Not People

4.Damnthe Torpedoes,Go Ahead

二.Feeding Agility

5.Keep Up with Change

6.Invest in Your Team

7.Know When to Un learn

8.Question Until You Understand

9.Feel the Rhythm
(我觉得软件开发的节奏是很重要的。但是敏捷有迭代周期,不使用敏捷这个节奏就比较难控制了,要么需求变化不大并且前期设计考虑周全。我碰到过一个项目,前期需求分析和设计都做的相当差,到了编码阶段都是在不断的修正前期的错误,时间就这样过去了,前期制定的计划都没有按时完成,项目来不及就往后拖。每次自己感觉编码差不多了可以进行集成测试了,拿到客户那里演示后发觉距离他们的真正的需求还有十万八千里,我们就这样迭代下去。。。交付日期也遥遥无期。。。这个时候是真正陷入了焦油地啊)

三.Delivering What Users Want
10.Let Customers Make Decisions
(对于这点我也是深有体会。“拍脑袋”或许就是那些所谓PM的特征吧。。。当我们做的和真正的需求渐行渐远的时候,最终是妥协还是部分妥协,还是以技术难题为理由一意孤行?我的实际经验是部分妥协。。。最终是不是全部妥协就不得而知了)

11.Let Design Guide,Not Dictate
(我觉得文档是必须的,因为“拍脑袋”的PM记性也不怎么样,如果有一天他问我:“你为什么这么做?“的时候直接把文档甩给他,让他涨涨记性)

12.Justify Technology Use
(当遇到用项目套技术的PM的时候,那个无奈啊。。。)

13.Keep It Releasable

14.Integrate Early,Integrate Often
(这个集成并不是整个系统的测试,应该把集成的粒度变细。。。)

15.Automate Deployment Early
(能用自动化的就用自动化)

16.Get Frequent Feedback Using Demos

17.Use Short Iterations,Release in Increments

18.Fixed Prices Are Broken Promises

四.Agile Feed back

19.Put Angels on Your Shoulders

20.Use It Before You Build It

21.Different Makes a Difference

22.Automate Acceptance Testing

23.Measure Real Progress

24.Listen to Users

五.Agile Coding

25.Program Intently and Expressively

26.Communicate in Code

27.Actively Evaluate Trade-Offs

28.Code in Increments

29.Keep It Simple

30.Write Cohesive Code

31.Tell,Don’t Ask

32.Substitute by Contract

六.Agile Debugging

33.Keep a Solutions Log

34.Warnings Are Really Errors
(你能容忍你的项目有上千个warnings吗?至少有些PM能。。。)

35.Attack Problems in Isolation

36.Report All Exceptions

37.Provide Useful Error Messages

七.Agile Collaboration

38.Schedule Regular Face Time

39.Architects Must Write Code

40.Practice Collective Ownership

41.Be a Mentor

42.Allow People to Figure It Out

43.Share Code Only When Ready

44.Review Code
(现在越发觉得这个的重要性)

45.Keep Others Informed


PS:当老外在深入研究软件开发方法论的时候,我们还在为按时交付软件而苦恼。正确的方 法可以使增加达到正确的结果的可能,但是很多时候我们不重视方法而只重视结果,只要项目完成就可以了,遗憾的是软件开发完成但是他的生命周期并没有结束,为此付出的代价会更加沉重。。。

你可能感兴趣的:(软件测试,敏捷开发,读书,UP,Go)