This was our first meeting in the new 29th floor lunch room at the New Relic office in Portland, up from the 28th floor.
Discussion topics :
- Is wearable technology ready for adoption?
- “Sexy Tech” (Node, go, Core OS, Docker, etc)
- What defines a good interview question?
- Conference Behavior
- Human Speed
- What is a computer (VM, container, cluster, etc)
(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
Who is worth following, and how do you know?
– Who is saying original things?
– Curators are still valuable as navigators
– People who rephrase and clarify can be valuable too
– similar problem to cites in academia
What non-tech skills make a team work well? How can you encourage them?
– Some people seem to “smooth out” the team
– Can you self-disclose?
– Know when to trust
Having a concrete job offer vs deciding to wait for better?
– Are you finding your next job, or are you finding the last job you will ever have?
– Define “good enough”
– Know where you want to improve
– Will this job help you achieve a goal?
– Hiring bonus?
– research on glassdoor, etc
– Sometimes people resist change as a defensive measure
– Sometimes people are upset because their cheese is being moved
– Some antibodies are appropriate
– Governance is a common antibody to resist agile
Hiring senior vs jr developers
– Fresh blood
– fresh perspective
– can help in succession planning
– Give people responsibility then live with them. Struggles and failure are great teaching and learning opportunities
– “Junior” is not “cheap”.
AgilePDX community building
– How do we build a community?
– Why do we build a community?
– meet outsiders
– movers & shakers vs watchers
– The “in” group is it’s own worst enemy.
Balancing Creators & Elaborators
– Code that shows an idea vs code that we can depend on
– Deleting code can be a great embellishment
– Pair a creator with an Elaborator, can enrich both
– TDD can help to creators to work together
Architecture and Culture
– Conway’s Law
– Can you use architecture to drive cultural change
– sometimes you need to hire a contractor who is expert in where you want to be
Working with allies outside of IT (HR, Facilities, etc)
– Go to them early, establish communication
– People don’t know everything that others do, don’t know how their needs impact other departments
(Facilities will have time & budgets, HR doesn’t realize how long it takes to do pert reviews, etc)
– See what other’s objectives are, see you your needs can help them achieve their objectives
How many reverts is too many?
– Be bold
– Knowledge emerges
– What moves you forward?
– What gets in your way?
– Tolerance of mistakes
– Maybe too many things are in flight
– service recovery vs service consistency