Today i was reading Head First Software Development by Dan Pilone, Russell Miles.
Firstly i would like to thank the authors for producing a good book and i can say i enjoyed reading this book.
DZone Leader Meera Subbarao posted an interview of both the authors.Please do read the interview when in free time.
Below are few key points to remember from this book i thought to share.
1) Customer is always the key
2) Iteration is like a frequent checkup for your software.You will always know how you are doing.
3) Iteration is more than a process.
4) We always Need constant feedback from customer.
5) User story should be understood by the customer.
6) Use Cases describe what on the project and estimates describe when on the project.
7) Get rid of assumptions is the most important activity.
8) Donot make assumptions about your assumptions.... talk about everything...
9) Prioritize with the customer.
10) Keep your software continuiusly running so you can always get feedback.
11) Velocity is a percentage.I know how fast my team performs. Given X number of days,how much time is productive work.
12) Good design helps you deliver.
13) Try to maintain SRP(Single Responsibility) principle
14) DRY principle:-> Donot repeat yourself.
Avoid duplicate code by abstracting or seperating out things that are common and placing those things in a single location.It is like Having in a single responsible place.
15) Branch only when you obsulutely have to.Each branch is a potentially large piece of software we have to maintain,test,release and keep it up with.
16) Your tests should always fail before you implement the code.
17) Implement the simplest code possible to make your tests pass.
18) Simplicity means avoiding dependencies.
19) Implement the simplest code possible.
20) Key to most problems we will run in software development is communication.When in doubt,talk to the teams and your customers.
21) Below are top 10 traits of Effective System Testing.
a) Good frequent communication between customer,development team and testing team.
b) Know the starting and ending state of the system.(Make sure you start with a known set of test data,and that the data ends up exactly like you'd expect it at the end of your tests.)
c) Document your tests.
d) Establish clear success criteria like when is the system good enough to go live? Testers can test forever know before you start what it means to be finished.
e) Good frequent communication between customer,development team and testing team.
f) Automate your testing where ever possible.
g) A cooperative dynamic between development team and testing team.
h) A good view of the big picture by the testing team.
i) Accurate system documentation.
j) Good frequent communication.
22) The right thing to do any time on your project is the right thing to do at that time on your project.
23) Be careful when you are re-using something.When you reuse code you are assuming that code works.
24) Never assume that other people are following processes.
25) Returning null in a method is a bad practice.Instead better raise a custom exception that gives caller more info to work with.
26) Incorporate best practices.
27) Unit Code proves that your code works.System tests prove that your software meets his requirements.
28) Good developers develop - great developers ship software.
Hope you enjoy reading this book.
Monday, 28 April 2008
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment