26. Practice : Design for ideas You will surely REDO it againor else…GET STUCK with your bad design
27. Suggestion 1 Design in Paper or whiteboard Take a photo for sharing Practice : Design for ideas
28. Suggestion 2 Practice : Design for ideas CRC design method Class name Responsibility What it is supposed to do ? Collaborator what other objects it works with ?
29. Suggestion 3 Practice : Design for ideas Make it easy for test
30. Suggestion 4 Practice : Design for ideas As simple as possible KISS Principle
31. 5 Practices (for small team and small project) Release frequently Design for ideas Test! Code for future Communicate agilely
44. Practice : Code for future Make code EASY to Read Test & Debug
45. #1 EASY to Read Reader get what code does without reading comment Expressive naming Comment why code does it Use enum Don’t quick hack Insert +1 or -1 and it just works! Don’t concern performance too much <<1 instead of *2 Practice : Code for future
46. #2 EASY to Test Query – command separation Make query code has no side-effect (it’s easy to test now) Small class One method one purpose Practice : Code for future
47. #3 EASY to Debug Always handle or throw all exception No empty catch block Provide useful error messages Categorize them Program defects Environment problems User Error Practice : Code for future
48. 5 Practices (for small team and small project) Release frequently Design for ideas Test! Code for future Communicate agilely
53. Stand up Meeting Twice a week Everybody answers in 3 minutes What did I do? What will I do? What problems I face? Everybody Stands Up And you ain’tgonna waste time :)