One Watermelon at a Time, One Bite at a Time

The beginning of July is a perfect time to have a slice of watermelon and consider the benefits of working together, in small batches!

If you’ve heard the adage “you can’t hold two watermelons in one hand”, you know it’s about asking for help, instead of trying to do too much, by yourself, all at once.

Scrum Teams are designed to handle complex work. Two qualities that contribute to a Scrum Team’s ability to handle big, watermelon-ish features are collaboration, and working in small increments.

Collaboration

Does your Scrum team work together as a unit?

By design, Scrum Teams are cross-functional. Each team member has skills in more than one area. The advantage is that no single team member needs to handle a complex, whole watermelon-ish piece of work all on their own and risk dropping it. The best writing I’ve seen on the topic of cross-functional teams is from Jason Yip: https://medium.com/@jchyip/why-t-shaped-people-e8706198e437.

In fact, collaboration is infused throughout Scrum. Here’s a quick list of how:

  • Product Owner plus Development Team plan together what work will be done in a sprint
  • Scrum Team coalesces around a Sprint Goal or objective for each sprint
  • Development Team works together continuously, and syncs up at least daily
  • Stakeholders collaborate with the Scrum Team via a feedback loop at the end of each sprint
  • In larger organizations, multiple Scrum Teams collaborate to resolve dependencies and deliver a complete, integrated increment every sprint
  • Scrum Master works in collaboration with those outside the Scrum Team, to ensure the team’s needs are met and impediments to progress are removed

Working in small increments

A Scrum increment is already a small slice of work, restricted by the timebox of a month or less. To improve the value of the increment, in the watermelon analogy, we want to deliver bite-sized pieces of watermelon, or maybe bowls of them. But they should be fresh, bite-sized pieces. The point is not to hold onto that big watermelon of work for a really long time and try to deliver the whole thing at a much later date.

Here are some techniques my teams have used to deliver higher value product in more readily consumable pieces:

  • Smallest possible user stories. Slicing stories is an art form. It’s important to do what makes sense for your product and your team. I like to ask my teams “what does the smallest unit of customer satisfaction look like for this product?”
  • A Definition of Done that includes everything: all the QA and user acceptance and regression testing, and everything else that’s needed to bring this story all the way into the actual customer’s hands. The idea here is that you don’t have “developer ready” work that is waiting around to be validated while it is losing its freshness. You’re going to need attention to good organizational collaboration unless your team works only on smaller isolated products.
  • Shorter sprints. In each sprint, the Scrum Team produces a releasable increment. When an increment is shorter, the value delivery checkpoints are more frequent.

Delivering small increments

If very large, undefined work items are like watermelons, then slicing them up and cutting them into well-defined, bite-sized chunks will make them easier to process, and ultimately easier to consume. Remember, it’s only when those bite-size pieces of work hit the tastebuds of the customer that we learn for real how much all our work is worth.

Bite-sized watermelon
Smaller work items are more “digestible”, and able to be delivered quickly. Only by delivering can we unlock the value that comes from customer feedback.

HTTP/2 For Faster Web Page Loads

HTTP/2 is in the news lately because it’s just been approved as a standard! This is good news because HTTP/2 offers more efficient and potentially more secure ways for your browser and server to send information back and forth. An ultra-simplified explanation of one part of it, multiplexing, is that it allows multiple browser requests to be processed together. So, a slow-loading image at the top of a web page won’t necessarily hold up the rest of the page.

For web programmers, it’ll no longer be necessary to jump through certain hoops to get the best performance. We can all look forward to the freedom to find newer, better ways to improve performance. Mattias Geniar and Iliyan Peychev each provide some good technical reading for developers (e.g., no need for CSS Sprites and domain sharding).

See HTTP/2 In Action

To see HTTP/2 now in Firefox and Chrome, just look for the “h2-14” protocol identifier.

Here’s how:

On Firefox:

  1. As of Firefox 34, since about August 8, HTTP/2 was enabled by default! Still, maybe you want to confirm, so enter ‘about:config’ in the address bar and search for the option named “network.http.spdy.enabled.http2draft”. It should be set to true.
  2. Enable “Web developer > Network”.
  3. Check the response headers from the server. For sites using HTTP/2, you’ll see a response is “HTTP/2.0”, and also Firefox inserts its own header “X-Firefox-Spdy: h2-14”. For example, load up https://http2.akamai.com/

Using “Web developer->Network” to see HTTP/2 in Firefox
Using “Tools > Web Developer > Network” to see HTTP/2 in Firefox

On Chrome:

  1. Download Chrome beta at https://www.google.com/intl/en/chrome/browser/beta.html
  2. Enable on the protocols column from “Inspect Element”. Mattias Geniar provided excellent instructions here, already: http://ma.ttias.be/view-httpspdyhttp2-protocol-google-chrome/
  3. Also, in Chrome, HTTP/2 isn’t enabled by default, so you’ll need to set a flag. Mattias Geniar helps out again, http://ma.ttias.be/enable-http2-support-chrome/.
  4. Then load up an HTTP/2 site such as https://http2.akamai.com/, and check it out!

Using the Protocol column from “Inspect Element” to see HTTP/2 in Chrome

More Info

For the latest information about which browsers and products have implemented HTTP/2, follow the link for known implementations from here: https://http2.github.io/

http2.github.io/faq/

Here’s a useful chart showing which browsers and applications support HTTP/2, along with the popularity of each: http://caniuse.com/#feat=spdy

 

Internet of Things In My Garden

Image from page 16 of "Currie's farm and garden annual : Spring 1917" (1917) Source: U.S. Department of Agriculture, National Agricultural Library
Source: U.S. Department of Agriculture, National Agricultural Library Page 16 of “Currie’s farm and garden annual : Spring 1917”

Talking to your plants might make them grow better. I haven’t come across the evidence that confirms it. I’m more interested in the day my plants talk to me.

Tell me, sweet blueberries, is the pH too high for you in here? Is the sunlight enough or is it too much? Roses, are you thirsty? How are your roots doing? My dear tree, are you seriously considering running a root that close to the surface of the freshly paved driveway?

I want the lawn service to be notified of everything the plants have to say. I want to set preferences with the lawn service, too. For some things, I want the service to propose a date and let me confirm. For other things (bugs!), I want them to show up as soon as possible.