4. Coding
1. Preparedness
When you code you juggle between
- Code must work
- Code must solve problem
- Code must fit into exisiting system
- Coe must be redable.
Different Bad codes
Avoid them:
- 3 AM code
- May feel good working long hours
- But bite us again
- Utilize 8 hours in best way
- Worry code
- 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
- 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