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
Best tool/tech to teach young people programming
Reading culture/social cues based on appearance
Topics that made the cut:
- 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
(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]
- 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)
- 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)
- (diet, stress)
- (rythms + interuption, lights)
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
- 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.
(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
- Used to think of google as a forward thinking company
- Challenging norms
- Code schools
- trying new things
- Try to solve a problem that doesn’t affect just the privilege of the bay area
- Companies that measure
- 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)
- 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)
When do you prefer to test?
- 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
- Graphs that update
- Weather maps
- Interface vs data
- 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
- Avoid a “Wizard” – leads to no understanding of how things are done
- Smalltalk let you have “Run” as part of editing
- New UI
- Buttons were not present but came back in in later betas of iOS7
- Flat UI: Windows 8 phone
- 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
- 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
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