1. It's your life

Software engineers have flexibility

  • switch job if it doesn't fit
  • learn new langauge if not working

2. The cat ate my source code

  • Provide options, Avoid lame excuses
  • Before telling bad news, is there anything you can try?

3. Software Entropy

  • don't live with broken window.
  • Technical debts

4. Stone Soup and Boiled Frogs

  • Soldiers started with soup of stone but asked all ingredients eventually
  • Farmers liked it.
  • Same with stakeholders in Software development
  • They will be happy with eventual result. So, ask gradually
  • But remember how a boiled frog doesn't realize when temperature in increasing.
  • Keep an eye on the big picture.

5. Good enough soup

  • Great software today is preferable to perfect software tomorrow.
  • Feature bloat:
  • more features than you need

6. Your Knowledge Portfolio

  • Like an investment portfolio develop a knowledge protofilo
  • How?
  • Invest regularly (Update regularly)
  • diversify (Multiple tools, programming langauges)
  • manage risk
  • buy low, sell high (learn a language when it's in ifant stage)
  • review and rebalance
  • Specific goals:
  • Learn at least one langauge every year
  • Read technical book each month
  • Read non-tech book tool (To understand how your users think)
  • Take classes
  • Participate in meetups, local user groups
  • Use different environments - linux, windows etc
  • Stay current
  • Critical thinking:
  • Think critically about what you read or hear.
  • Content on top of web search may not be best
  • How critical thinking?
  • ask why 5 times
  • Who does it benefit?
  • what's the context?
  • when or where would this work.
  • why is this a problem?

6. Communicate

  1. Know what to say
  2. outline, ideas
  3. Choose the moment
  4. Choose a style
  5. Based on audience - just facts or long descriptions
  6. make it look good
  7. Properly format
  8. involve audience
  9. get feedback
  10. be a listener
  11. Get back to people
  12. Document