When do you prefer to test?
- TDD
- Testing used to be an entry level position
- Testing has become a senior level activity
- Testing increases the understanding of the code
- Every bug in the code will eventually be found. You want a tester or a test to find it rather than a customer.
- Tiny little testable steps
- Focu work on a small unit
- Always move forward
- Deliver features vs Deliver Quality
- You get what you measure.
Learning to talk while programming
- How do you learn to communicate
- Pair programming is experiental. People get frustrated if it doesn’t pay off immediately. (much like riding a bike)
- Can you pair with somebody you don’t like?
- “Code buddy”
- Must self-select your code buddy
- Conflicts can cause big trouble
- Mature developers have habits and skills which they have learned over time
- Stereotype of programmers: late nights/pizza
- working alone lets you conceal your weakness
- Egoless programming
- when you pair, problems that confuse both people are immediately visible as serious problems
- One participant can tune out
What makes a graph feel “live”?
- What does “live” mean in context?
- Drill in (nagios)
- Google street view
- Responsive UI vs live data
- Travel sites which take a while to search
- Convention in TV and movies: displays always have text which is updating (2001 screens, Terminator)
- As things get slower they get harder to think about
- Attention span
- latency
- Graphs that update
- Weather maps
- Interface vs data
Executable instructions
- Instead of documentation about how to do something, how about a script which is executable and readable?
- Need a language that is executable and robust for human to human communication
- Chef
- Avoid a “Wizard” – leads to no understanding of how things are done
- Smalltalk let you have “Run” as part of editing
New iPhone
- New UI
- Buttons were not present but came back in in later betas of iOS7
- Flat UI: Windows 8 phone
- Skeumorphism
- Change for change’s sake vs improvement
Presentation of one’s self (Facebook vs LinkedIn)
- Different venues, different expectations
- work/life balance
- How does Twitter fit in?
- Credibility/trust must be earned
- Context
- Not everybody has a FB acct
Resources for learning about agile software dev
- XP pocket guide
- Thin books aren’t intimidating
- Find books that you like, look for “people who bought this also bought” on Amazon
- Books leave out failures, sound like every project is successful
- c2.com wiki
- “less wrong” web site
What makes programming problems fun?
- like solving a puzzle
- Sudoku solvers can be more fun problems than sudoku puzzles
- Fun to not work within an existing codebase
- “That’s what I do for work”
- Demonstrate mastery
- setting own goals
- refactoring?
Best invite to LC
- Bring a great idea for people to explore
- Friendly people, coffee
- exercise for my brain
- light switch (or lens) for your thought process
- thinking about metacognition