Basic Transparency

An organization with good communication is like a clear pool, where people can see to the bottom of things.
Organizations with good communication are like clear pools, where people can see to the bottom of things.

Agile processes are famous for transparency.

For anyone who doubts this, or is new to Agile,

  • Transparency is implicit in the first item of the Agile Manifesto. Individuals and interactions are valued over processes and tools, and the best interactions happen when communication channels are open.
  • Transparency is the first of the “three pillars” of Scrum (transparency, inspection, adaptation).
  • Transparency also features prominently in the scaled frameworks built on top of Scrum. In the Nexus (Scaled Professional Scrum) framework, transparency is called for in all artifacts, dependencies and the state of the increment. I’m not personally as familiar with SAFe (Scaled Agile Framework) as I am with Nexus, but transparency is a core value of SAFe. I know even less about LeSS (Large Scaled Scrum), but you can read about transparency in LeSS here.

The benefits of transparency

Here’s what happens when groups work in a transparent way:

  • Quality improves. When more people see a product during development, more imperfections are brought to light, and can be addressed before the product is released to customers. An open and safe platform for raising and resolving issues also incentivizes teams to perform better and improve quality.
  • Metrics improve. When everyone can see first hand what’s happening in an organization, data and reporting are confirmed by observation. You may even discover better performance indicators when you have open communication and when data is collected directly at its source.
  • Risks are mitigated. Transparency allows you to see ahead and gives you the opportunity to fix small problems before they become big ones. Risks, internal and external, are easier to spot. Planning is better, and the organization is more likely to see its way towards the most profitable path ahead.
  • Product improvements are realized. Ideas find their way into the open where they can affect positive change. Confident teams that communicate well do better and more innovative work.
  • Quality and productivity work hand in hand. An experiment published in the Harvard Business Review demonstrated that when cooks and customers could see one another, customer satisfaction improved over 17 percent, and service was 13 percent faster.
  • Waste is reduced. Transparency saves you energy and time. When you synchronize with reality, less energy is wasted trying to be something you’re not. That energy can be used to fix anything that you would have wanted to hide. Spend less time re-framing stories and more time fixing things.
  • Culture change. There is a snowball effect when you start being more open in your organization. People who are doing well are proud to share their success. It spreads. High performing teams model success and other teams improve.

How can organizations get better at transparency?

Scrum comes with transparency built-in. For teams who are brave enough to adhere to it, adopting the Scrum framework makes it easier to work transparently. Scrum teams use information radiators to display up-to-the-moment metrics. We meet daily to update one another on work in progress, collaborate and overcome issues. Product Roadmaps, and to an even greater extent, Product Backlog stories are openly discussed. Stakeholders and development teams flesh out product direction and specifications together. The team’s work is demonstrated at the end of each Sprint at the Sprint Review. If you practice the Scrum ceremonies, you are well on your way to reaping the benefits of transparency.

If you’re not using Scrum, you can still create room for mutual transparency to grow by bringing open practices into your daily routine. Encourage candid discussion during your regular status briefings. Simply listen. Hold meaningful feedback sessions after every increment that’s released. Involve the development team in roadmap discussions. Acknowledge that everyone working on the project has a vested interest, and when the project is a success, it is to everyone’s credit.

Aim for a pristine pool of shared information, and reap the rewards of transparency!

The Truth About Stand-Ups

Oil on canvas, by Claude Harrington

People new to Scrum often find the number of meetings daunting. It’s natural to want to avoid meetings, if your experience was that they tend to be non-productive. Within the Scrum framework, however, teams use the structured meetings as tools to improve performance over time. Let’s look at Scrum’s most frequent meeting, the Daily Scrum, and see how this comes about.

I’ll get two things out of the way first…

It’s not a status meeting.

It’s a planning meeting. The purpose of getting together every day is not for each team member to report her status. You don’t need a meeting for that—a group email or a time log serves the purpose. Instead, at the daily meeting, the entire team inspects its work in progress, towards its short-term goal. The team as a whole figures out what it needs to do immediately, to attain that goal. I’ll explain more, but for now, all I ask is please stop thinking “status meeting” and start thinking “mini planning session”.

Standing is optional.

It’s up to the team to agree about how to hold the meeting. Many teams stand, as it keeps the meeting quick and high-energy. The Scrum Guide calls it the Daily Scrum, and doesn’t mandate standing up at all. Maybe your team is more productive if it has the Daily Scrum while jogging around the block.

Now that we have an understanding of some things that Daily Scrum is not, we can begin to understand what it is.

Every Daily Scrum is an investment in a more productive team.

As a Scrum Master, the Daily Scrum is an opportunity for me to observe interactions between teammates, and check in on the health of the team. Here are seven key performance indicators to monitor how well a Scrum team is functioning.

1. We are consistent.

Sticking to the same time and place every day means a minimum of overhead. A meeting location is already reserved. Everyone has it on their schedule. All we need to do is show up, ready to go.

2. We’re self-organized.

Shockingly for many Scrum Masters, the team runs their own Daily Scrums. Healthy Scrum teams don’t report in to a Scrum Master. They speak to one another, and they help each other. The team does the heavy lifting, and the Scrum Master is available as a coach and facilitator. This daily practice of team autonomy builds strong teams.

3. We work together.

Silos are inefficient. If you arrive at the Daily Scrum with the intention of getting it over as soon as possible, so you can head back to your desk and get some real work done, then something is wrong. Working in isolation slows the team down. Let me explain.

At the Daily Scrum, the team shares its latest learnings. Everyone is on the same page, at least once every 24 hours. This is also a chance to re-plan, if needed. Each teammate needs to be aware of what the others are doing in order to synchronize work. If someone moves ahead based on wrong assumptions, everyone’s time is wasted. These are the ways that this daily knowledge sharing increases the team’s performance.

The Scrum Master observes the team’s interactions in the Daily Scrum, and is ready to offer guidance. He may suggest that two developers work together to solve a problem, for example.

4. We don’t phone it in.

Well, literally, yes, you can conference everyone in for a Daily Scrum. I’ll get to that later. I’m talking about presence here. Everyone needs to pay attention for the magic to happen. When everyone listens, ready to jump in and offer help, the Sprint picks up pace. The Scrum Master facilitates by noticing if someone is tuning out, and by keeping communication flowing in positive ways.

5. We’re focused on one goal.

Every member of your team should have the answer to “What is this Sprint’s Goal?” at any moment. Daily Scrum is about the entire team, focused on the Sprint Goal, moving together. Think of a Rugby team, passing the ball to one another as they move down the field. That’s your Scrum team. As a team member, you’re always watching that ball, ready to catch it and pass it again.

6. We are concise.

Daily Scrums are never more than 15 minutes, so each person has at most two minutes to share what they’ve worked on, ask for help, get feedback, and indicate their next move. It’s enough time to get a lot of information across. Over time, the team gets better at communicating the most important bits.

7. We can decide quickly.

Daily Scrums are a practice ground for quick decision-making. The right people are together, along with the freshest, most actionable information. For anything that can be decided immediately, another meeting isn’t needed. For anything that deserves a breakout meeting, the team members can meet immediately after the Daily Scrum.

Being there in person is really important.

Collocated teams are vital in Scrum. Even splitting a team from floor to floor causes disruption. The communication channels that work best for Daily Scrums are, in order of fidelity:

1. Face to face. Meeting in the same space, in real time is by far the very best way to hold a Daily Scrum. Everyone has the advantage of immediacy, eye contact and body language. The team shares the same air and the same light. Standing in a circle, facing one another helps. Each person has the others either in their direct or peripheral vision. People can move around and change places if they need. They can be loud or soft. They cannot use a mute button. They are visible from head to toe.

2. Videoconferencing has many of the advantages of face to face, but even with the best equipment, the experience is degraded significantly. The team still meets at the same time, so immediacy is retained. But every other measure of richness in communication is lost. Eye contact is impossible, since looking directly into a video camera prevents glancing at teammates’ faces as you speak. You have no way of getting any feedback from facial expressions, the way you do in person. Body language is reduced significantly, usually to just heads and shoulders. The best suggestions I’ve heard for making this work are “invest in the best equipment possible on both ends”, and “make sure everyone is videoconferencing, not just the remote workers.” Even people who’ve used videoconferencing successfully strongly recommend supplementing it with frequent face to face meetings.

3. Conference calling. Similar to videoconferencing, you get some immediacy by meeting at the same time. But any information the video channel would have provided is wiped out. People who’ve used conference calling successfully suggest having participants use headsets during the calls. If your company doesn’t have a good conference calling system, you can try a cell phone on speaker to include remote workers.

4. Emailing daily status. Having remote teammates email their status doesn’t provide any immediate feedback at all. It doesn’t encourage the team to engage in a conversation or help a teammate remove impediments. In fact, it puts distance between team members, and discourages them from working together.

Homogeneity.

Whatever method the team chooses, it should be used by everyone. The team’s cohesion is key. If half of the team is videoconferencing while the other half is voice only, the imbalance works against the team.

Make every Daily Scrum count.

Holding a stand-up meeting every morning isn’t doing Scrum. Scrum is all about increasing the value of the team’s time. By paying attention to certain performance indicators, you can use this one, highly focused meeting to as a foundation for building a high performing team.

 

Nourish Your Team

Team Garden
(clockwise from top left) Peony, grape, rose, hydrangea

A healthy team is like a vigorous garden: it thrives in good conditions, and it can weather adverse conditions. Nourish your team regularly. Here are a few ideas that will help keep your team healthy.

Warmth

Your human team is hard wired to respond positively to warm communications. Research supports the idea that treating each other like people is what really matters: it leads to better employee engagement. Practice listening, caring, helping, smiling, eye contact and general friendliness, and encourage all these in your team. Think of the sun that warms the ground and invites seeds to sprout.

Light

Encourage individuals on your team to shed light on the contributions each of them makes. Retrospectives are a great time for this recognition, and there are many resources that can help you get started. Here’s one based on 360-degree feedback. It really can be as simple as asking each person to write one highlight of the past Sprint on a card, based on another team member’s contribution, and putting all the cards up on the wall for discussion.

Compost

Yes, I went there. The flip side of shedding light on the successes of the team is shedding light on the problems. Most people don’t want to go there, but you need to do it. In Scrum, introspection is a regular part of the team’s routine. With practice, the team becomes better at opening up and problem solving together. Think of the rose that thrives when a good compost is mixed in with the soil. All the decaying organic matter feeds the new growth.

Attention

The idea is to tend your team as you would tend a garden. Plants and people thrive when provided good conditions for growth. Check in regularly. Remove weeds. Water as needed. Be aware of individual traits.

What Can The World’s Smartest Lake Teach Us About Building Smart Teams?

Scott K. Johnson wrote this excellent article at Ars Technica about some impressive work being done in mapping and modeling environmental data at Lake George. What’s fascinating to me, is seeing people working together so well, on a huge multi-year project that has a potential for great impact. Some things I see as contributing to this project’s success:

Cross Functional Teams

The  “Jefferson Project” is an interdisciplinary partnership between IBM, the Rensselaer Polytechnic Institute, and FUND for Lake George. Each partner brings different skills to the project, and they are collaborating together. Collaboration is a basic model for a successful team. Instead of separate teams of specialists working on their own sub-projects, the groups work with one another on slices of the same project.

Organized Around A Single Goal

The FUND for Lake George states its single driving goal as Stopping the present decline of water quality and achieving sustained protection of Lake George for the next generation. They go even further than that. They want to set the standard for restoration efforts anywhere in the world. I imagine that everyone working on this project is on board with this goal. The people at IBM are probably most interested in pushing the limits of big data. At the same time, they must understand that this work isn’t about the data, but about the data in the service of protecting the lake. On any successful team, each contributor is more valuable when they understand how their contribution provides value to the larger goal.

Information Radiators

Each sensor helps scientists study the impact of stressors on the lake in real time. For a Scrum team, radiating information in real time is also vital. Everyone should be able to see the team’s progress in the moment, without having to wait until the next progress meeting.

Always-Changing Environment / Marketplace

Nothing is static. The Lake George team is moving beyond real-time data. They’re creating sensors that will adjust the sampling size when unusual events are detected. This is just the type of thing that your project team can do. Every meeting is an opportunity to inspect the work in progress. Every Sprint is an opportunity to take a step back and see the big picture. Things will always be changing. Keep in mind the Agile Manifesto value of “responding to change over following a plan”. When you notice big changes on the horizon, it’s time to increase your observations, so that your short term plans can be informed, and you will be ready to modify your course if needed.

 

HTML5 vs Native Development

Are you starting a mobile app development project? Maybe you’re worried about the expense of native deployment. Could HTML5 deliver what you need? I’d say the programming language is not the first thing you should think about. There’s something else that needs your attention first.

Start with your customers. Take technology out of the equation. Understand the people who’ll be using your application. What are you helping them to accomplish? What would they say is valuable? You’ll want to ask them directly. Use surveys. Interview them. Watch them as they do things. Reflect on your observations. How does this fit in with trends in the industry? Assume that things are changing, and keep reassessing.

  • Do your customers demand super speedy performance? Are you sure? Maybe you are optimizing for performance that your customers won’t even notice. A game may need performance, whereas a news reader… not so much.
  • Where will your customers use this thing you are building? A subway trip without Wifi could be a massive failure. Or not. Maybe that is an easily survivable use case.
  • How important is security to your app?
  • Do you know what devices your customers use? Does it include iOS, Android, Windows Phone, Kindle, Nook? Do they move from one to the other? If it includes wearables, which ones?

All the things that you normally look at when building a new product apply, whether you’re looking at initial development or you’re considering porting to additional platforms. It’s not always cut and dry, is it?

Now, look inward. Again, look beyond the technology to determine a path forward.

  • Pure native apps are rare. Most developers use a non-native language even when building “native” apps. HTML is in the compiled code. HTML and web protocols communicate with supporting servers. Are your back end services mobile-friendly?
  • More than one production line gets expensive. Does your business case justify that? What would be your costs for bringing in new resources or for training? How long would it take? Think about separate toolsets, designs, assets, releases and maintenance. Every bug fix and release is a cost.
  • How flexible do you need to be? How far into the future do you need to plan? Do you really need a strategy for five or ten years out?
  • Understand where your organization is now. Are your apps opportunistic (one-offs), strategic (mobile implementations are driven by business factors), or mobile-first (mobile is driving the business)? This mobile application maturity assessment will help in setting expectations going forward.
  • You can also get actual data for a comparison of one platform vs the other, by building only part of an app in more than one technology.

I wish you all success!

Scrum Timeboxing Is Like Doing 15 Pushups Every Day

To keep on track physically, I do a “minimum daily requirement” routine of exercises. No matter what, I do at least 10-15 minutes every single day. I allow myself to vary the exercises, but I never vary from doing this minimum. This daily goal is in addition to my weekly exercise goals. It keeps my momentum going, and inevitably, when I need to take time off from my weekly goals, it’s easier to get back into my routine, and continue to progress towards my long-term goals. It’s worked so far—it’s been about two years since I started, and I’m still at it.

Some days, the routine doesn’t feel very challenging, so I add more reps or add some weights, still keeping it to under 15 minutes. This morning, it was one of those days for pushing myself harder. It occurred to me, as I did my pushups, that my routine works a lot like timeboxing does in Scrum.

If you’re not familiar with the Agile process Scrum, it segments chunks of work into Sprints of equal lengths of time, as determined by the team. Instead of fixing the scope of a project, the iteration time is fixed. Something demo-able is delivered at the end of each Sprint.

So, you may ask, how is my couple of sets of pushups every morning like a two-week Sprint for a software development team?

Well, just as I do my exercise set every morning, the development team gets into a rhythm of delivering something tangible every single Sprint. As time goes by, I have stronger muscles, and similarly, the development team grows stronger as a team. The developers, Product Owner and QA all get better at setting realistic deliverables for a Sprint. Over time, they plan better and deliver more in the same time period, just as I can do more pushups now than I could when I started!

If you want to read more about timeboxing, this article is a good place to start. It has more than you could possibly ask, including links to some information about Temporal Motivation Theory, as developed by Piers Steel and Cornelius J. König.

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.

Automagically Created Photo Albums

Here’s some very clever research from Disney into making photo albums automatically from all the thousands of photos we shoot.

I can imagine this technology being used along with geolocation APIs to create beautiful keepsakes of vacation trips!

logo-disney-research