4. Coding

1. Preparedness

When you code you juggle between

  1. Code must work
  2. Code must solve problem
  3. Code must fit into exisiting system
  4. Coe must be redable.

Different Bad codes

Avoid them:

  1. 3 AM code
  2. May feel good working long hours
  3. But bite us again
  4. Utilize 8 hours in best way
  5. Worry code
  6. Code written after big fight

The flow zone

  • What you feel
  • Hyper productive zone
  • You write more code
  • BUT this is not where you want to be
  • uncommunicative zone

Music

  • depends on person
  • May or may not help write better code

Interruptions

  • Someone asks question when you are working
  • Rude response? or other solution
  • Pariging with other while coding
  • TDD may help

2. Writer's block

  • You do things to avoid code
  • Email
  • Documents
  • Books
  • Schedules
  • But code doesn't appear
  • Solution:Pair parter. Ohters discussed below:

Creative input

  • Spend away from useual problem
  • Science fiction
  • Mystey books
  • See what works: TV may not work, movie may work.

3. Debugging

  • May take days to find errors, bugs, vulnerabilities

Debugging time

  • is as expensive as coding time
  • TDD
  • Less bugs and less debugging time
  • Software developers creating plenty bugs
  • Is activing unprofessionally

4. Pacing yourself

  • Software developement is maration not sprint

Know when to walk away

  • Stuck in a problem. Can't go home
  • You are tired
  • So, disengage yourself.

Driving home

  • don't think about problems in car

The shower

  • Best solutions come in shower
  • Creative solutions are supressed by intensity of your focus.

4. Being late

  • Detect being late earlt
  • transparent
  • Regulaly measure your progress
  • Update stakeholders, team members

Hope

  • Hope is a project killer
  • Hope I get this done in 10 dyas
  • Don't let anyone else have hope

Rushing

  • Rushing doens't make code faster

Overtime

  • Don't overtime unless
  • your boss has full back plan if overtime fails
  • it's short time ( < 2 weeks)
  • You can afford

False delivery

  • to delivery, we rationalize
  • A new definition of "Done"
  • Very unprofessional behavior

Define "Done"

  • When business analysts / testers
  • have created automated acceptance tests.

5. Help

  • you benefit from other programmers
  • Programming is hard

Helping others

  • When your teammate in trouble
  • Help other
  • Not because you are smarter
  • Just fresh perspective

Being helped

  • When someone offers helps
  • Accept it
  • Learn to ask for help
  • unprofessional to remain stuck
  • Collaboration is criticial to effective programming

Mentoring

  • Progressional duty:
  • Senior programmer spend time mentoring juniors
  • Duty of juniors to seek out mentoring