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
- Know what to say
- outline, ideas
- Choose the moment
- Choose a style
- Based on audience - just facts or long descriptions
- make it look good
- Properly format
- involve audience
- get feedback
- be a listener
- Get back to people
- Document