Join us for Lean Coffee at Viewpoint Construction Software on Wednesday, August 5 at 7:30am. Viewpoint is located at the east landing of the Hawthorne Bridge, at 1510 SE Water Ave. Come to the Tech Center on the eastern side of Water Ave.
Lean Coffee is a simple, efficient, and fun way to discuss open ended topics in a small group. We’ll tend to focus on agile software development, but welcome any and all topics of interest. Porltand Lean Coffee is always an open, free community event.
For more on Lean Coffee, check out http://leancoffee.org/
Lean Coffee PDX is back. Our next event will be on Wednesday, February 25, 2015 at Old Town Pizza, 226 NW Davis Street, Portland, OR.
We’re going to try something a little different for the next few months. Instead of one event on a regular schedule and at the same place every week, we’re going to try a variety of events at different times, different days and different locations.
Over the past few months our organizers and hosts have changed jobs. And we’re taking this as chance to sort things out before re-launching the Portland Lean Coffee event. We plan to start it up again in late February 2015.
- Time to test vs. time to Develop
- How long is too long for a commute
- Balancing Dev & Support
- Have you used Lean Coffee elsewhere?
- Product Release: Marketing vs. SiteOps
- Retrospective frequency
- Attracting Talented people to Portland
- Cars vs transit vs bikes. How can communities support multiple models?
And we had a beautiful view:
Thanks, once again, to Colin Dabritz for compiling these detailed notes.
Topics that made the cut:
What should you ask potential employers
- Objectives behind this? Important to know, but also ask good questions can affect how you are perceived
- How do you figure out if you really want to work there?
- Ask about exact tools you are using? (Some say DON’T ask this, ask more general questions)
- Some think you should ask about broad things, mission, vision
- Questions that show company culture – e.g. what version control, favorite editors, libraries
- Developers should have opinions, what tools in detail is my first question to potential hires
- Tools is valuable, because it isn’t an idealized answer, it’s specific
- What do developers do? e.g. what do you feel developers jobs are, what is the work that they do? (Should have informed opinion, match might matter)
- List of questions going in
- Contextually intelligent questions
- Questions that help answer concerns the business might have
- What types of problems? (e.g. are you doing something interesting)
- How do you challenge your developers?
- Ask business model questions, where does the money come from?
- What value do you provide?
- Satisfaction is most importantly your direct boss
- Tell me about management philosophy, who would be my supervisor, can I talk to them
- How supported do you feel?
- Can I talk to some of your workers, one on one?
- What real role do you have, what is the real responsibility of this position?
- The box they perceive they are putting you into affects you hugely
- Major factors Autonomy, mastery, purpose – will you have these? Investigate
- What books have you read recently?
- ongoing career development
- Personal development, e.g. conferences, training, more opportunities, technologies
Agile/lean and “enterprise solutions” – Will it blend?
- Continuous integration, huge process?
- Are these enterprise solutions compatible with the agile work style
- “UK government digital services manual” 500 pg online book, how to use lean/agile
- DOD has a similar one
- Often the difference is agile is “good enough” and get better
- “Locking things down” is boring an unfun
- Internal deployment vs external deployment
- Huge companies sometimes have no plan, agile, e.g. mozilla with 500 engineers
- agilefluency.com (website)
- Interactions with contracting?
- Surveillance society
- “Surveillance” vs “Suveillance” (su = from the bottom up, e.g. citizens recording government workers)
- Historical context – there has been an information asymmetry
- If you even got to “symmetry” can it be equal when one side has more power?
- Secrecy to gather information, backdoors, MITM, compromising security
- “You should write as if everything you write your grandmother may read”
- If you don’t think your privacy is important, no one will
Conferences – Which ones to go to?
- What is the right number?
- Which ones do you go to?
- Diversity – different areas or topics e.g. IT and Not IT
- broad? deep? Between?
- Focused area – pick at least one deep conference
- One broad industry conference
- People – Do you have a community there?
- Are you working? Speaking? Networking?
- Starting your own conference?
- Biased toward open conference, conference style
- Look like an exchange, unstructured? Hardwired speaker? Tracks? Or dog and pony show?
- Learning – go to open space conference, networking any kind of conference?
- How much are you willing to pay your own way? If your business sends you, they may expect reports, notes, re-presentation etc.
- Cost – who pays? How much?
- ROI – Myself? Management?
- Can be exhausting, don’t push too hard. Can you find the time/energy?
- Maybe smaller alternatives, conferences area big chunk. Things like lean coffee get a part of it.
- “Kind of like a CD when you just want one song” just that ONE speaker..
- How is the conference actually run
- Nonprofit Developers Summit
- PDX Barcamp
- Agile Open NW
Human bug tracker – What are we bad at?
- Hardware bug – eyesight issues (write this up)
- Need a faster dev cycle – Continuous integration
- Pokemon model? (Evolution of the individual)
- The redundancy isn’t good enough
- Logic fallacies
- Are our heuristics up to date with our current context? (e.g. emotions, cold logic is very expensive)
- Need to deprecate some features that no longer apply
- Is the system deterministic, or nondetermistic?
- Emotional intelligence not up to leadership challenges
- Huge psychological part to quality (Deming)
- Constancy of purpose – drive fear out of the workplace
- Bug tracker is too big, needs a specific purpose
- NOT EVERYTHING IS A DEFECT – It’s not a bug, it’s a feature
- Buddhist conception – the only thing that’s wrong with you is that you think there is something wrong with you
- Decision making is a big thing
- Am I picking the right tool for the job?
- What does it mean to be the right tool?
- “I am not a test case”
- What heuristic do we use? “Is everyone using it?”
- Pairing? Issues with teams, groups, collectives, interrelations
- Can we depend on the wisdom of the crowd?
- “Good decision making” Is it technically sound, does it result in higher quality, will it be implemented, does it help to build the competence of the group (provide value)
Where do you find beauty in unusual places?
- Overcast days
- Unusual thing that impressed you
- Simple, effective systems
- Humanity – people being people
- Solving the same problem with less code
- Technical/professional excellence, e.g. an amazing waiter
- “I find process improvement beautiful” -> “I find that unusual”
- “I cry at training videos, where people get a lot of job satisfaction out of them”
- Biggest Loser when the contestants break out and explain “why I don’t deserve to be happy”
- Unexpected patterns or congruencies – driving along catching a beautiful moment
- Unique moments, nonrepeatable
- Deciding to see something as special, has to feel fleeting
- The unexpected
- Unintended beauty in art – e.g. a mural, where it being faded adds beauty
- Can be beauty in mass produced – owning it makes it yours
- Unique – Imperfections and wear
Working alone vs socially
- Some people like to work alone (after planing). Some people like working together, e.g. groups, pairs. Is it ethical to want them to change?
- Needs of individuals, vs needs of the work
- Some work demands collaboration, who do you assign where?
- Maybe if you want people to change, they don’t fit that need
- e.g. Different tools for different cases
- Extroversion vs introversion – tend to see introversion in engineers, continuum
- Need alone time to recharge
- “I thrive in social programming”
- Even alone, still need to communicate
- Is the work still getting done? If it is, it doesn’t matter how as much
- “Software groups are like rock bands” e.g. pop-punk vs sellout, vs shared vision
- Signals you can send to others, this is not a social time e.g. headphones
- What happens when there are clashes between work styles – bad one: “Everyone will work like I work”
- Negotiating a place in between is important
- Score square worked well, easier to sort (square in corner, votes go in square)
- New guy: Loved topics # covered, time boxing, kept energy up
- Sometimes I was surprised
- Broadness of the questions works well – right scope
- Reget not splitting – people showing up right up to the last minute – group was a bit big. Four seems too small.
- converse – really enjoyed larger group, constant discussion “woah, one conversation at a time” more energy. harder to dominate conversation.
- Could we force split early? Hard after intro/voting
- new relic rule – arrive before the meeting starts, always get done with at least 5 minutes until hour (or half).
- Tardiness is a problem
- Could have a lagging group
- second – actually liked larger group – don’t like having to choose (e.g. what people? topics? room for me?)
- Hard to hear all the way down the table
- Other discussion format only enjoyed as much as this – the liberty fund socratic session format (indicate what you have to contribute, e.g. small amount, large amount to add, hand signs)
Once again, thank you to Colin for taking notes.
Topics that made the cut:
- Data nerds and the (un)natural world
- Tracking data
- Examples: Apartment prices in building, MAX Car #s, License plate photos from all 50 states
- These are unnatural world
- Like stargazing and philosophy
- “boardgamegeek.com” games played database, bridge, chess, Magic the gathering, scrabble tend to be “solo” games
- Given a data set how do you find a signal in there?
- “Kids game”, I have a device that easy to capture, fun, wasn’t seeking data
- Idle curiosity, liking to measure and capture
- Similar to days before, shell collections etc, collecting comes first
- Technology captures
- Quantity of data
- Journaling events in calendar, e.g. sleep in google calendar, morning routine etc, corrected as it happens and tweaks (why do we have empty spaces on calendars?)
- becoming useful, e.g. density of out of state drivers
- Act of collecting changing your view (vs only collecting for a reason or goal)
- Collecting is noticing, becoming aware
- Collecting and Mining, sometimes can’t tell you why the other is important, but doing the other gives you a new perspective
- How to learn more Git
- Git is powerful
- Easy to screw up a checkin
- Live in fear of so many comitters
- We should have git competency, aptitudes that everyone should have, and an advanced set of skills that someone in the group should have
- One in the “group” vs one in the “building”?
- Could have Git “moves” algorithm to do things safely, recipe of safe ‘moves’
- Safety vs correctness
- Problem is git safe stuff is right by unsafe stuff
- Commits every 5 minutes
- Source control complexity, much comes from the idea of “storing unfinished work” (git has stash, branch, other tools)
- Software development is chaos, discovery, exploration – Is that inherently problematic? Not modeled properly in source control?
- Short branch and frequent integration, a long branch is a bad branch
- Could pick a core set of git practices that favor good behaviors (How to communicate this?)
- Probes for Complex Problems
- How do we deal with problems? not sure of scope, don’t know the right way through etc.
- How do you wrestle with them?
- Being ok with failing
- Mystery problems, not sure why it’s broken.. collect more data? Get a better view of what is going on?
- Agile – Try a solution, iterate, ship frequently
- “what do I NOT know how to do?” Tackle the unknowns first
- Top to bottom solutions, a “spike” all the way through quickly
- breaking problems down
- Go for a model problem,what embodies the hard part of the problem, but is simple in other respects? (solve a smaller problem first)
- Learn the parts, relationships
- “I don’t think there are any problems that can’t be broken down”
- How is a probe different than a solution? A probe is a test for a solution.
- Your probe is based on assumptions that you make up front, you form a hypothesis and test it
- Why are things the way they are? What would make that be wrong? Can we test that?
- Gaming – solving real problems (e.g. the protein shape puzzle)
- “Your problem is you don’t understand your problem” get used to it, play with it
- “Mathematicians use “play” to mean very serious work” “and software engineers use “work” to mean very serious play”
- Divide and conquer separates you from all the pieces, you get stuck in a reductionist mode)
- The Gervais principle
- (e.g. Ricky gervais)
- Pyramid: Losers on the bottom, clueless in the middle, sociopaths on the top
- Blog post on this problem
- This describes a dysfunctional organization well
- People choosing to do what is dysfunctional because it’s comfortable
- Feedback from middle based on politics and yes men
- Non-delivering political environment
- The labels are very judgmental (and humor based), but the problem is real
- Clueless band are highly loyal much more than the other layers are
- Tribal leadership, 5 stages of evolution, cultural evolution
- L1: Like in prison world sucks, L2: My life sucks, L3: I’m great but everyone else sucks, L4: Were great, L5: The world is great
- Has to do with the way leadership make tribes, or tribes of tribes
- Instil a sense of empowerment
- Pyramid with positive layers, building it up without falling into above is a great achievement
- They may have a lot of problems going on, but they are forgiven for achieving great things
- What is the most significant change in software develop in the past 10 years?
- Stack overflow
- Leveling sharing we’ve talked about forever is being delivered on (with the rise of the internet)
- Huge repository of knowledge
- You can almost always find someone else who has had a particular problem before, and what they tried or solved
- Not just sharing and size of knowledge base but searching and filtering
- We still really haven’t adjusted our model to realize
- We don’t assess ability for new hires to rapidly acquire knowledge (habits in hiring that are hard to break)
- Let developers decide who to hire, #1 question – Who do you follow online (e.g. where do you get info)
- Another thing that we see, now you work in 3-6 languages at a time, because you can. (this wasn’t true before, couldn’t keep that much in your head)
- Right sized lego blocks
- “has this been done before, and can I find it?”
- If I learned more I can contribute back and say how I found it, blog post on my outage, error, etc. Culture of contributing knowledge.
- Google never confronts you with “that’s the wrong question”, searching is big skill, what terms? What question? How far back?
- How far back do you have to go to figure out you’re doing the wrong thing?
- Can we run our government like wikipedia?
- Wikipedia runs interestingly today, some problems
- How does wikipedia run?
- Every kind of misbehavior is understood, never destroying information, transparency and history
- goal to inform could be solid
- People can find the media that agree with their world view, (confirmation bias)
- How strong is special interest influence, power seeking?
- You don’t have a total budget for pages on wikipedia, unlike the national budget
- Decisions made impact people directly, unlike wikipedia info, may no agree with you
- Heart of the question: Can we have a governance system that allows transparency? Feels like not yet.
- How to get to ‘Done’ with an employee communication problem?
- Recently had a long time employee leave due to reorganization of administration and shifting roles
- Changed role of a person who had been around a long time, cause them to be unhappy
- Mediation didn’t work
- Most people are thinking about what they are going to say in response
- Need to JUST LISTEN – True listening is a hard skill
- There are things you can’t say, things that are inappropriate, business doesn’t allow the directness
- Bringing up specific grievances instead is problematic, because they can be addressed.
- Need to have other people who can take in the vague input and divine the direct problem
- One of the problems – coming with focusing on “how do we get this done?” “how do we solve the problem?”
- The thing needs to be allowed to NOT be done in order to get to done
- When people do a job change this affects them negatively, you get a negative curve for a while, you need to help them settle out. You have to be checking in with them, face to face conversations
- Working with introverts, have to elicit feedback (and respect it)
- Change cycle is similar to grief cycle (“my job has just died”)
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 again for Dan for writing up notes.
- Naming is hard (how to)
- “2 hard problems in CSc: naming & cache invalidation”
- very important
- names that are wrong are like an itch you can’t scratch
- naming conventions
- language conventions
- help you things if names are good
- happy collisions
- project glossaries
- organizing iterations when team has multiple responsibilities
- multiple projects
- individual may not have anough info to prioritize
- protocols to deal with unexpected incidents (prod)
- different colors on the task board
- fudge factor in estimating
- being able to deal with this is a sign of maturity
- larger companies tend to have a bigger spread
- some people devalue older coders who don’t know the lates/greatest
- maybe pair younger coders with older experienced ones
- “don’t type as much, but get stuff done”
- some older people can be set in their ways
- broader toolkit
- younger consultants, don’t say no for themselves
- “how important is that work?”
- sometimes it’s good to step back
- is capacity for work changing with age?
- Where innovation happens?
- tech, edu
- startups, small companies, garages
- education is socially very conservative
- lots of regulation around schools
- charter schools – not very different from a conventional school
- tweaking the classic formula
- technology in schools isn’t disruptive by itself
- khan academy
- still doing the same basic formula: tests, homework, course materials
- locus of control is far away from the classroom, has different goals
- what makes a retrospective good?
- post-mortem is different, after a large project ends
- recognition, prime decision making
- why do things go wrong?
- ask the right questions
- retrospective is a steering activity
- followup on past issues
- not just a bitch session
- Dealing with a dominant team member
- might be very good
- might just be pushy
- needs to be a team solution
- peer pressure
- they may think that they are doing what is best for the team
- need to have that “a ha” moment when they realize that they are hurting the team
- PM with good facilitation skills can help
- behavior profiles, analagous to Meyers-Briggs
- Dealing with a weak team member
- not getting work done, passive
- what motivates them?
- they do have strengths, find them!
- how does the team approach it?
- give them a mentor
- career level may not be the same as their skill level
- autonomy, mastery, purpose
- let them pick first
- Group size
- past 12 or so you can’t make a decision
- 5-6 can get a lot done, larger needs more coordination
- how fungible are the tasks
- “moving a house” works well with big groups
- making a decision
- spread ownership
- optimum team sizes from the group?
- 5 ish for software
- larger teams work well if they know each other well and collaborate well
- it can grow
- can’t sustain work at a high level
- getting tired a few times a year can be good. More than that can wear you out.
- Not enough “no”
- beating your head against the wall
- get fresh ideas, read more
- “the progress principle” book
- “frustration is the opposite of progress”
Special Thanks to Dan for creating these notes.
– Meetings need to have a purpose/agenda
– some cultures punish tardiness, could be shaming, could be financial
– Some cultures treat being overbooked as a sign of status
Use of automation/macros
– machine setup
– machine activities (shutdown at a certain time, etc)
– tech support (standard text responses)
– how much do you customize your environment?
What is Agile?
Definition proposed was about helping teams work faster, we disagreed with that but couldn’t stabilize on what it is
Human Systems Dynamics
– Method of managing interaction between people
– know what you know, what you can potentially know, what you can’t know
– US Navy submarine control room anecdote: Discussions happen in public, everybody participates, Captain makes a decision
– All information is visible to everybody in the discussion
– No holding back
– Helps bring new people up to speed
– Helps spread institutional knowledge
– Is it useful? Can be if the people dogfooding the product are the ones who build it
– Can show confidence in your product
Finding Tech talent in PDX
– Not enough talent
– Paying relocation costs to bring in talent can be a sticking point
– People outside of the PDX area don’t necessarily know what the job market is like in PDX
– People churning around locally costs everybody time and money