- »
- Tech books »
- Clean coder »
- 1. Professionalism
-
1. Professionalism
1. Be careful what you ask for
- What if you allowed bug to slip and costs company $10,000
- Non-professional: says stuff happens and writes next modules
- Professional: Takes responsiility
2. Taking responsibility
- May have disaster if Shipping without proper testing
- Should say product isn't ready to be shipped
- Even if manager is upset prevents a possible disaster.
3. First, Do no harm
a. Do no harm to Function
- Harm function when we create bugs.
- So, avoid bugs.
- Perfect software isn't practical
- Apologize.
- Simply cannot make same errors again and again.
- Error rate decrease to zero
b. QA should find nothing
- You should be surprised if QA find bugs.
- Charged and determined to prevent it from happening again.
c. You must know how it works
- Automated unit tests
- Design code so that it's easy to test
d. Automated QA
- Automated tests should at least say it's likely to pass QA
4. Do no harm to structure
- Must be able to make changes
- without exorbitant cost.
- Devs afraid changes can break software. Why?
- Lack of tests
- Professionals are cetain code and tests work
- Treat software like clay. You can continuosly shape and mold it.
5. Work Ethic
- Your carrer is your responsibility
- Not your employers responsibility to give time to learn
- Plan 40 hours employer's work
- 20 hours self-learning - reading, practicing, learning.
6. Know your field
- Minimal things to know
- Design patterns: All 24 in GOF
- Design Principles: SOLID
- Methods: XP, Scrum, lean, kanban, etc.
- Disciplines: TDD, OOD, CI, Pair programming
- Artifacts: UML, DFD, PERTs etc.
7. Continuous leanring
- Whould you visit a tax lawyer who doesn't know current laws?
- Read books, blogs, tweets etc.
8. Practice
- 2 Kata everyday
- A 10-minute warmup exercise
9. Collaboration
10. Mentoring
11. Know your domain
- Writing a travel application --> Know about travel industry
12. Identify your employer / customer
13. Humility