September 25, 2013 Justin’s Table

Sorry for the brevity this time, but here are the topics:

Social score/Social Karma

What skills should a junior developer have?

But they are so messed up!

Developing with a team in different locations/Thoughts of working with folks in different timezones/countries

Google glass

Best tool/tech to teach young people programming

Reading culture/social cues based on appearance

September 25, 2013 Colin’s table

photo (1)
Topics that made the cut:

Mentoring Others

  • Transitioning to manager, mentoring others is part of that
  • Can’t screw it up, if you have a willing partner who needs advice. Just requires transparency and honesty, and commitment to time
  • You know you’ve done well if they stop talking to you.
  • mentoring vs coaching?
  • Explaining the why is important when you coach
  • coaching as managing learning, mentoring as transferring expertise, habits
  • On transparency, what do I have to offer? What would you like to get stronger in?
  • Also amazing what you learn

Hybrid Planning

(Planning across organization, multi-company)
  • Complicated, looked for books and resources
  • When you have a scrum team, you want low overhead, collaborating quickly
  • have to have a plan to get there, the parts come together
  • Within an effort, a project.
  • changing from throwing documents over the fence
  • plan the path you can see to, all the boulders on the way, put them out there to think about them
  • Have to convey what you don’t know, focusing change
  • timbox thing, deliver as much as you can get done
  • you can’t know everything
  • keep the communication flowing
  • understanding problems is hard
  • people move into agile because they are sick of project plans, more about changing the mindset
  • key person is product owner, reframing how you deliver value
  • (why is the team huge and spread?)

Expressing opinions about how we work vs actively influences others to work differently

  • ok with “here is how I see things” vs “you should change”
  • Ask them to try it for one task, one story, one sprint (then lets talk about it)
  • Retrospectives are an opportunity to change (e.g. quality is a problem, lets try pair programming to up the quality)
  • Try in small pieces
  • [change is hard, needs an advocate]

Refactoring

  • Want to get things done
  • Select and area of the code and turning refactoring into a project (infrastructure projects)
  • We didn’t refactor as we go, e.g. this area of functionality as you go (“just get it done fast”)
  • Refactoring as skunkworks
  • Refactor as you go (vs as a project)
  • features are shiny
  • communicating value in effectiveness
  • Shared aesthetic of what good code is
  • Unacceptable to leave them in a bad state
  • Takes just one person making a mess (broken window theory)

Setting yourself targets

  • How to set yourself targets
  • appropriate sized targets, actionable
  • targets, estimates, commitments
  • stretch goals
  • Don’t know what an effective way to get better
  • Talk to an expert, mentoring, club
  • concrete goals, e.g. X games of Go, attending club regularly etc.

Communication to executive management

who only think in scope, schedule, budget
  • executives have different needs, haven’t found an effective way to communicate to them
  • How communicate to each need and style?
  • can talk in terms of value provided
  • How do we keep value in front to get buy-in and communicate effectively

Favorite way to relax?

  • Sinking into to something away from people (books, movies, games, puzzles)
  • Sports
  • Scheduled relaxing – have to hit the minimum relaxing time or ‘cracks appear’
  • Something creative that has nothing to do with work
  • Need to “fill the well”

Still tired with 7+ hours sleep as a parent

  • managing your energy
  • going to bed ritual
  • Spend time on passion
  • Doing too many things at once
  • (light quality, winding down)
  • (allergies)
  • (diet, stress)
  • (rythms + interuption, lights)
  • (learning)

Infrastructure projects

how to explain business value to executives
  • optimization, neutralization, and differentiation (to executives)
  • once you build it its debt, support
  • How do you make projects
  • Talk about costs
  • Talk about options
  • slack, momentum, efficiency
  • TDD, build cleanly to minimize the need for later
  • focused on minimum product instead of minimum viable product
  • end at monolithic huge debt platform that ties you down
  • need to not talk at the level of features and implementation to execs and customers
  • (issues and risk)
  • (wall of requirements – decision makers should have to hang each printed requirement (or story) on their wall)

Silos in development

  • DB group, Ops group, Product group, Dev group, App development, etc each with managers.
  • Can’t work in agile teams with separate managers
  • Specific skillsets are problematic

Product owners

  • How do discuss true value
  • Seems like product owners don’t really talk to owners to decide priority
  • often wonder “how did they prioritize the work?”
  • Can we get past “I own the backlog, trust me”?
  • Could be trust problems, why do you need to know?
  • How do we talk about brush-strokes across an entire area vs going deep
  • The reverse problem can be moving on without polish and finishing everything
  • Product owners aren’t well connected to clients (in this case, product owners are developers)
  • (Does this work end to end with the customer?)
Special thanks to Colin for taking notes.

September 11, 2013 (Justin’s Table)

(Thanks to Colin Dabritz for taking notes)

 

Misogyny + Bigotry in tech

  • lots of incidents recently
  • maybe some of this crossover from video games?
  • lack of professionalism in general
  • Are parts of the culture perpetuating a lack of professionalism?
  • Casual culture, you feel less ‘accountable’ but you are representing a company, profession
  • profession is young, no liscensure to revoke (e.g. you can’t be disbarred for unethical behavior)
  • Youth culture contributes

 

How much prediction making do you do?

  • Agile, so many unknowns can’t predict, so don’t. Manage and move.
  • Sales need targets, sometimes hard deadlines.
  • lost of people forget, can adjust schedule or features
  • Mcconnel estimation (book)
  • This is an exploration, research, not mechanized process
  • Predictions are dangerous, can become constraints
  • Predictions can be important to coordinate, can cause issues, why not buffer?
  • Just make the development team as productive as possible
  • Making predictions is natural, making promises

 

What kind of interruptions do you allow? How do you manage them?

  • git stash – temporarily ‘stash’ work
  • Kanban – focusing on the thing  you are doing
  • Feel about – “oh great, I’m accumulating inventory in my warehouse that’s costing me money”
  • (who fights fires this week?)
  • allow? can’t choose interruptions, distractions
  • (context switching is expensive)
  • (understanding management vs maker schedule)
  • (true fires, understand the cost)
  • (have a good product manager, prioritize properly)

 

How do you manage your brain?

  • Problems in work and life don’t always give you a choice
  • Do what you want to be good at, e.g. if you switch to managing that’s a shift, you will lose some dev ability.
  • Learning, practicing
  • Taking breaks (pacing)
  • Managing stress
  • Learn your rhythms, 90 mis is a magic number for me, give yourself time, find others who can handle your rhythm
  • Be mindful of the things you put into your brain (e.g. sources of news, how they make you feel)
  • your environment, habbits
  • surround with smart[er] people, choose your work, environments
  • exercise, diet, socialization
  • Space – space where it’s easy to access healthy things, exercise, standing desks
  •      – Avoid stress, ability to move and adjust, eat good food
  • Competitive can be stressful, but can also be positive, pushing you.
  • Stress spectrum, can be different kinds
  • autonomy, mastery, purpose
  • too comfortable, not exploring new things
  • sharpen the saw, be attentive, prioritize yourself and your brain, get coaching

 

Forward thinking companies

  • Have you heard of OKCupid? Was it because of the service, or the blog posts with data?
  • How is this measured?
  • Being trusted experts. (Unbounce)
  • Who do you think of as forward thinking? Company providing fungus that acts like styrofoam
  • Cellular level mechanism, nanotechnology, nano power generation in clothing
  • SpaceX
  • Used to think of google as a forward thinking company
  • Challenging norms
  • Code schools
  • Connecting
  • trying new things
  • Try to solve a problem that doesn’t affect just the privilege of the bay area
  • Companies that measure
  • Watsi
  • Do VCs and the startup industry promote this?
  • Pharmacutical companies, make or break on FDA approval

 

What’s hard or challenging?

  • Simple – to make or do simple things, always harder than the compacted.
  • e.g. quitting smoking. Very simple, very challenging.
  • Changing habits
  • Software – making it simple, elegant is hard.
  • Understanding the problem
  • Quick feedback loop makes things easier, long or complex feedback loop is much harder
  • People issues are a long feedback loop
  • People are hard
  • Department has “solutions” in the name, but uninterested in the solutions, much more interested in the problems
  • The problem is you don’t understand the problem
  • Starting with the wrong question, finding the right question
  • Exploring the landscape
  • Follow up, follow through, ideals
  • Doing the RIGHT thing now, vs the fast easy thing
  • Working in teams
  • Others perspective, doing the right thing for everyone
  • Being ethical for all stakeholders
  • The unknown unknowns
  • Missing pieces, missing requirements
  • Communicating ideas, sharing vision
  • (Vulnerability, taking real personal risk)

 

Learning Center

  • making a space where learning happens
  • Where existing engineers can mentor, and improve their own skills
  • Book: The quick start guide to the five years of accelerated learning Willem + Diana Larsen
  • First thing you do is take care of peoples basic needs (comfortable, fed, relaxed, welcome)
  • Mix between – solid, things aren’t moving, not a good environment. gas – chaotic, moving too much. Liquid – move enough
  • Zone of proximal development
  • Whiteboards – Whiteboard paint (“winking”)
  • What makes a learning environment welcoming?
  • What motivates people to learn?
  • Parents sense of expectation was a big driving force in undergrad
  • Suddenly having to come up with intrinsic motivation was hard
  • Book: “Confessions of a buccaneer scholar”

 

Programers are to sysadmins as doctors are to surgeons

(missed notes here)

 

Vacation – do you check-in or not?

  • “what is a ‘Vacation'”? (sarcasm)
  • What types of responsibilities does your job have?
  • If you’re at a job/company
  • (lost notes)

September 11, 2013 (Dan’s Table)

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