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

  • Collaborate to learn

10. Mentoring

  • Mentor juniors

11. Know your domain

  • Writing a travel application --> Know about travel industry

12. Identify your employer / customer

13. Humility