what google learned about creating effective teams – live blogging from qcon

What Google learned about Creating Effective Teams
Speaker: Matt Sakaguchi
See the list of all blog posts from the conference

In software, we hire the best people, put them together and hope for the best. In sports, we focus on positions and teamwork.

Google was in NY Times for Quest to Make Effective teams

Matt talked about his path to Google. He was a police officer for 7 years until he got injured and physically couldn’t do it anymore. He then worked in retail. Then Matt upgraded the network to be faster and liked tech. THe CEO would “just randomly come and scream at people”. Had to leave toxic environment so went to Sony has manager of security guards 5am-2pm shift. Keep showing up; keep grinding; something will happen. Recognized as being underutiized and asked to look at operations to detect theft. Did that for a few stores. Still not making much money but doing something useful.

Recognized as being good at solving “weird problems” so Sony sent him to teams weird problems and fixing them. Had 27 people under him and an admin. Then moved to Walmart managing system admins and engineers. Got to learn basics of UNIX. First time managing engineers. Then BEA -> Oracle and Nexttag managing websites. At Postini, got to build a team. Postini got acquired by Google.

“snuck in the back door of Google, but still at Google”

Diagonsed with cancer. Greatful because helped realize what is important. Passionate about making work better. “We spend a lot of time at work we spend a lot of time in teams.”

Think about

  1. What kind of team are you on?
  2. What kind of teammate are you?
  3. What kind of learder are you?

On average

  1. 8.8 hours working
  2. 7.8 hours sleeping
  3. 1.2 hours caring for others

Diversity problems result in people not being able to be whole self at work (gender, race, orientation). Shouldn’t have to pause who you are for 8 hours.

With police, “if you aren’t scared, you aren’t human”. Good application to speaking and other “scary” things.

Everything is measured at Google. Even the placement of the tea/water/red bull/coffee. Example: moved M&Ms away from coffee machine, then hid it and then replaced with 100 calorie packs and measured reduction in calories.

Best teams

  1. Effectiveness – means results to executives, ownership/vision/goals to team leads and team culture for team members
  2. Tried to find algorithm for perfect team. Looked at dependendabiity of team, structure, extoversion, manageable worklowad, # of top performaers, tenure, co-location, impact of work, averge eel of team members ,consensus-drriven team, psychological safety, etc
  3. Most important five from most important to least importantL
    • psychological safety – knowing it is safe to make mistakes. Ok to take personal risks. Ok to bring up concerns. Know will be respectful open discussion
    • Dependency: can depend on teammates to do their part
    • Structure and clarity – enough to know what doing
    • Meaning – is work meaningful to you
    • Impact -is work important

Want a championship team, not an all star team.How a team works matters more than who’s on the team.

Components of psychological safety

  • Voice – am I heard. Are people just nodding or actually listening with respect
  • Trust – can I say anything without it being repeated?
  • Inclusion – not just inviting all people to the party, but making sure everyone has a good time

Set tone for psychological safety

  • Frame work as a series of learning problems; not execution problems – don’t just want to grind away DOn’t learn much in a performance environment because always on
  • Model curiosity and ask more questions. If team sees you ask “dumb” questions, everyone learns the answer and that ok to ask questions.
  • Admin your own failliblity. “Here’s my plan; tell me what’s wrong with it”

Tips

  • If team too negative, first question must be “how can we make this work”. Helps change mindset.
  • If you are the leader, try not to speak much if not running meeting. Putting your opinion out there too soon makes it harder for more introverted folks to state theirs
  • What are the top 3 things you enjoy doing outside of work. Make sure to spend time doing those things. Helps appreciate life. Do not cheat yourself

“The road to someday leads to a place called nowhere”

Fun talk to start the day! Matt is a great story teller. He had the Mac “machine name” screensaver in the background.When he showed the stats, I like how he just put them on the screen in silence rather than reading them. It really called attention to them.

live blogging from qcon new york

Monday

Tuesday

Wednesday

Random info about the conferenece

  • Each track has an open space.
  • 5 editorial tracks and one sponsor track
  • Different tracks each day
  • 130 speakers
  • 900 attendees
  • Hallway track – 25 minutes between sessions so time to talk
  • Badges are shorter with names bigger so easier to see name
  • Have a white lanyard you can wear to optout of photos
  • Healthy food – gulten free and vegan options
  • Vote green/yellow/red after each session. If go online, can see how you voted and provide text feedback.
  • Track preview so you gt. 30 second glance at each session and can pick better

automated testing for digital experiences using junit 5 – live blogging from spring days

Automated Testing for Digital Experiences Using JUnit 5
Speaker: Justin Baumgartner
See list of all blog posts from conference

General

  • Asked how many use JUnit 4. Almost everyone. [didn’t ask about TestNG, but did cite most used framework in general]
  • JUnit 4 is ten years old
  • “It’s all about the tests” – TDD/CI/CD – create. more importance on tests

Gaps in JUnit 4

  • Tight coupling between the APIs we use to write tests and the ones build tools use. Separating the jars lets progress at different speeds
  • Built on Java 5. Can’t use lambdas [aside from a tiny bit in assertj]
  • Runner restrictions – can only have one
  • Rules aren’t flexible enough

JUnit 5

  • Release in early fall
  • New architecture: JUnit platform (for build tools and IDEs to discover and execute tests), JUnit Jupiter (for writing tests), JUnit Vintage (to run legacy tests)
  • Potential for Cucumber or Spock runner so can run all tests in one place
  • Extension model: Can hook into life cycle callbacks. Used instead of runners/rules. An extension point is an interface. Example BeforeEachCallback. Need to be stateless; get TestExtensionContext as parameter. Can implement multiple callback if want called multiple times and store state in getStore(context).
  • Can pass parameters into test methods using @ExtendWith(xxx.class) so narrow scope. Implement ParameterResolver to create the object you want to mock.
  • Dynamic tests: create tests at runtime. Not expected to use often. @TestFactory and then create tests as lambdas. Each dynamicTest in list is an actual test (vs run in a loop
  • @ParmeterizedTest and @ValueSources – hard code parameters, read from file. [need to look at how to run “legacy” style parameterized test – answer – there’s. a @MethodSource where you can havve any logic]
  • RepeatedTest(x) – to run test a bunch of times
  • @Disabled – can disable class or test. Appear in report but not run. (unlike @Ignore where don’t appear in report at all)
  • @DisplayName so can print clearer name than test name
  • @Tag – replaces @Category – to grou/filter tests
  • assertAll() – new assertion – facilitates grouping of assertions

Said backward compatible. But not all runners/rules are in Jupiter. So would have to use Vintage test engine to use those or port. Jupiter has different packages for annotations/assertions so can mix within class. So if using Jupiter engine, still can use “old” asserts until change imports.

Nice ending presentation. I’m really excited about JUnit 5!