Thursday, May 18, 2017

Site Reliability Engineering; The Book and The Practices

Site Reliability Engineering

It’s difficult to walk into a software development organization without hearing about the discipline of Site Reliability Engineering (SRE) though you may discover that SRE means different things to different teams. The practices of Site Reliability Engineering are all well known, and successful teams practiced them before there was a collective name for them. I read Site Reliability Engineering in an attempt to get a handle on what the discipline covers, and what SRE teams do. I do feel like I have a better understanding both of what canonical SRE is, and helped explain why different organizations practice the SRE discipline in slightly different ways. I recommend the book to those want to learn more about deploying systems at scale, though with some caveats.

The book is very Google centric, which is appropriate since the book is subtitled “how Google Runs Production Systems.” How well you can apply the lessons in the book to your team depends on your prior expertise, and the specific topic.

The book is a collection of articles by a variety of contributors, rather than a single sourced book and as a result the writing is a bit uneven. Some chapters do a good job of walking you though the subject area, and distinguish how what Google does could apply to your organization and too chain. Others are Google centric to a fault, describing internal tools and approaches with little if any reference to similar more generally available or even open source tools, or the tradeoffs to consider when evaluating that decision for your team.

The principles in the book are all generally valid and you will definitely walk away from the book knowing more about the issues to consider in keeping production systems running at scale. You many or may not have a clear idea about how to implement the lessons you learned.

Google is a successful company and has solved some challenging problems, and we can learn a lot from the Google practices. It’s important to remember that Google is also unique, in terms of history and problem space, so one should consider adapting the Google Way, rather than adopting it without interpretation. This book is a great launching point for discussion, and it’s worth having a copy if you deploy systems at scale. Just don’t take it as The Way to do Site Reliability Engineering.

Friday, May 5, 2017

Designing your life: Design and Agile Tools Applied to Life.

Designing your Life: How to Build a Well-Lived, Joyful Life by Bill Burnett and Dave Evans explains how you can apply design thinking to life choices. While the true test of the information in the book is to do the exercises and embrace the process, and look at the results (which I have not yet done) I finished the book with an excellent understanding of the possibilities and the feeling that I could use the tools to better understand my goals. Participating in a mini-workshop that Bill Burnett helped to validate that the process can be very powerful. A lot of work, but powerful.

As I mentioned in an earlier Techwell article (which was based on an interview) many of the concepts here may be familiar If you are a student of agile principles. Some of the exercises are reminiscent of those in Innovation Games. There is an exercise that is reminiscent of a career timeline exercise that Johanna Rothman has proposed, and the discussion of job searches and job descriptions is very consistent with some of what Johanna has written about the subject.

There are other elements that sounded familiar as well. The discussion of problem reframing will be familiar to those who work with software requirements, and the discussion of the qualities of a good “design team” will be familiar to anyone who has studied teams and read books such as Extraordinary Groups. Even if the concepts are familiar, there is value in seeing them applied to life design.

That the tools are familiar should not lead you you dismiss the value of the book. (After all, one could argue that much of the “agile toolbox” derives from other disciplines.) Like any tool box, tools can have many applications and it's useful to have a guide to how to use a tool to solve your problem with the right techniques, and to understand that there are versions of the tool that are more finely tuned to your purpose. I hesitate to say "solve your problem efficiently" because life design is neither a problem with a single solution end point (it's a process) nor is it simple. By applying the collection of straightforward steps in this book you can start on the path to understanding how to design a like that is congruent in all dimensions that matter.

Regarding solving as compared to exploring, the authors emphasize that there is difference between engineering problems and design problems is that design problems in that engineering problems are more about solving, and design ones about building forward. While I believe that to be a good engineer you need to understand design, I agree that there are different perspectives, and engineers don’t often switch between “explore options” and “solve a defined problem” appropriately.

This is an easy to read book that can be useful in helping with evaluating both the big picture and specific aspects of your life. You may even gain some insight into problems related projects, since the tools are similar. Reading the book is valuable. Working through the exercises with a team can be more so. The book is full of are exercises and is supplemented by a web site with worksheets and other resources to use. This is an easy to read book that can be as useful as you want it to be.

Sunday, January 29, 2017

Excitingly Well Run Meetings

The group of people huddled together in a room “until the job is done” is often used as a demonstration of virtues like “diligence” and “commitment.” And these scenes are often the stuff of dramatic moments in popular culture. We rarely, if ever, see any effusive praise for the well-run meeting that ends on time with a useful outcome. The former is more compelling. The latter is often more valuable and much harder to do. And while there are times that the former is the right thing to do, more often than not, it’s an indication of a problem. Well run meetings are useful meetings.
While it seems a bit pedantic to talk about meetings and schedules, and teams often present a ‘meeting-free culture’ as an ideal, the reality is that software development is a collaborative activity and we need to interact with (or “meet”) with people. When you need collaborate with more than a couple of people — perhaps from different teams — scheduling a meeting is inevitable. People have other commitments and time constraints, and respecting these commitments is good for the organization and the individuals.


There are many reasons for keeping a meeting on schedule. Starting late or ending late, wastes people’s time, which has a financial cost. But the primary reason keeping to schedule from perspective its it is respectful, and not honoring a schedule shows a lack of respect. By starting or arriving late you are disrespectful to the attendees who might be on time, by not ending on schedule you are being disrespectful to anyone the attendee was supposed to meet after a meeting and anyone who needs the room (or other resources) you are using. Of course, it is OK to you extend a discussion by mutual agreement, but you also need to agree on the basic ground rules.

Meeting Principles and Protocols

There is much written about good meeting structure and facilitation, and if you are in a role where you need to collaborate with people (as most of us are) it’s worth the effort to learn a bit about the subject. An effective meeting has, at minimum, two things: a reason, and a schedule.

A Reason

In general, a meeting worth having should have:
  • A reason, which attendees understand.
  • A goal, which you can decide if you have met or not.
  • An agenda, to help everyone understand if they are on track.
  • Attendees who understand why they are there.
  • A start and end time that is sufficient to have the discussion you need, and which allows for people to meet their next commitment.
All of these items can have more or less definition depending on the culture of the team, and the nature of a problem, and how close you are to having a common baseline of understanding. A Sprint Planning Meeting might have a more well defined reason, goal, and agenda, than an “explore design options” meeting. But it is important to be able to express these things.

Start Times and End Times

It’s easy to think of meetings as being (say) 1 hour long, starting and ending at hour boundaries. This makes no sense if you assume that anyone else has to be somewhere else after your meeting. It’s helpful to have a protocol where you allow for a buffer at the start and the end of the meeting to allow for transitions. There are many options. for a 1:00 - 2:00 meeting you could:
  • Start at 1:05 and end at 1:55
  • Start at 1:00 and end at 1:50
  • Start at 1:10 and end at 2:00
or any variant. Pick what works for your organization. In my experience the first option seemed to work best, as people tend to be more keyed to “round” boundaries. But as long as everyone is consistent, people will have time to regroup and move between meetings.
Be sure to plan the agenda to include time before the end of the meeting to review what you all decided, what followup is necessary, and to decide who will do that followup.

When “Until we are done” makes sense

The opposite side of watching the clock is the idea that you don’t want to cut short a productive exchange of ideas. Ideally you would have allocated enough time to allow for opportunistic conversation. If you do that, you will need to take care that a non-productive meeting doesn’t expand to fill the allocated time. In some cases you can’t do that, and “in the room until the problem is solved, regardless of schedule” is the right thing to do and makes sense but when certain things are true:
  • The issue under discussion needs to be resolved soon.
  • The issue is the top priority for everyone in the room who is asked to be there, and everyone understands this.
  • If you are using a shared resource, such as a conference room, the issue at hand is the top priority for the organization, and you have priority for using the resource.
All of these things are rarely true at the same time. Most people have other commitments, and in many organizations, meeting rooms are a scarce resource. It’s worth taking the time to solve the hard problem of how to get useful work done on a schedule (and to identify what problem fits in that schedule).

Next Steps

While “meetings” may always have a subtext of “something that distracts from work,” if you make the effort to be respectful of people’s time you’re likely to get more done. While having a company culture or guidelines that supports this approach is good, you can establish these guidelines are part or your working agreements at any level of scale.
Regardless or what guidelines you use, the most important thing is to be mindful of the goals of the meeting, and the reality the people may have other commitments.

Monday, January 9, 2017

Books to Make Discussion Easier

For a variety of reasons, I’ve recently found myself in quite a few conversations about social and political issues, both in person, and on Facebook and other social media. Even when I was engaging with someone with a different view that I had, I learned a lot, both about my views and contrary ones . Other conversations were more frustrating. The difference between the enjoyable ones and the frustrating ones seemed to be that the arguments I heard didn’t always seem to be either relevant or logical. Rather than (always) walk away I took these challenging conversations as an opportunity to practice focusing on understanding, rather than (only) and opportunity to win. (Though sometimes walking away is the best thing...)
I found these books, which I’ve recently read, to be a useful part of a toolkit for more productive arguments about controversial subjects:

Don’t Think of an Elephant by George Lakoff is the most partisan of the books. It is upfront as being about being a “guide for Progressives,” though it also explains the concept of “framing,” and the role it plays in how people interpret information.
As an engineer I tend to think that the best way to argue point is with facts and data. This doesn’t aways work, especially in political discussions, even when the data are clear, quantifiable, and not disputed by reasonable people, because the words are sometimes framed in a way that re-enforces another view point. Don’t think of an Elephant explains how framing works from the perspective of linguistics and cognitive science and the importance of framing in discussion and debate. Lakoff emphasizes that this book is more action oriented than academic, and he points to more scholarly works on the topic for those who are interested.
While the book is about political advocacy, and geared at Progressives, it can be useful for a number of audiences. For Progressives, you can better understand how to frame your arguments when trying to influence others. The book also has a discussion of what the Conservative mindset is, and awareness of the perspective of someone who thinks differently that you can help bridge gaps. Conservatives who are interested in having better conversations with their more progressive friends and associates might also get some insights from the book.
The book heavy emphasizes political discourse, but the concept of frames and framing is something you can apply to communicating your perspective in various contexts.
Partisan as the book, is, it can also be useful for bridging gaps. This book might provide a guide for Progressives to make their points in a more effective, less reactive way, and to have more productive conversations with their Conservative friends.

Mastering Logical Fallacies by Michael Withey is a bit less political, and more generic, but still relevant to political conversations. I got a copy of this book for my 10 year old so that he’d be exposed to the idea of good arguments early. Then I decided that I needed to read it myself, in part as a reaction to having been in far more conversations around recent political events where some of the arguments made no sense to me. The book helped me understand how to recognize and address those kinds of arguments. It also has helped me to take a step back in discussions in other domains, including technical discussions at work.
Having a framework for understanding these kinds of fallacies can help you to put a conversation in context, and be able to (more) calmly address the issues people are raising, rather than react emotionally and perhaps commit the same kind of fallacies yourself.
While I can’t speak fully to the thoroughness of the discussion of the fallacies (maybe if I had either taken the forensics class in High School, or considered the Debate Team!) I found this to be a really good bit of background. My one complaint is that some of the examples are a bit forced, but the author still makes his point most of the time.
I still plan to share the material with my 10 year old so that he can learn how to have good discussions -- something it’s never too early to learn! This book is a tool that can help you navigate conversations (especially political ones) be they on Facebook or in person.
While the first two books are more tactical, in that they provide guidelines for how to deal with specific conversational situations, [_Humble Inquiry_] by Edgar Schein is more about mindset.
This is a short, pragmatic, easy to read, book that can help you be better at something both essential and often neglected: How to work together better. By chance I first opened the book to a page with the heading “The Main Problem: valuing tasks over relationships” and I knew that I made the right choice when I got the book. Teamwork is essential and building an environment where people trust each other enough to work as a team is hard.
This book explores a technique that can help to work across cultural, organizational and hierarchical boundaries. With theory, examples, and practices to try, it becomes easy to understand what Humble Inquiry is. The practice will take work.
Humble Inquiry is as much a mindset as a technique, since, as Shein points out, it is hard to be authentic when simply “acting humble” and people will notice, and you will thus erode rather than build trust.
Any leader, team member, spouse, or even parent can learn valuable things from reading this book. I would even argue that if you interact with anyone there are lessons you can learn, or at least have reenforced. This book is a small investment in both time and money for a large reward.
There are certainly any more books that cover this space, but these three seemed to cover a range that might help be weather the more difficult conversations.

Monday, November 14, 2016

Review: Grit for Kids: 16 top steps for developing Grit, Passion, Willpower, and Perseverance in kids for self-confidence and a successful life

Because I had written reviews of Grit and other some education related books Lee David Daniels sent me a review copy of his short book Grit for Kids. While the title would have caught my eye, I’m not sure that I would have stumbled upon it otherwise, and I’m glad that the author brought it to my attention. While the book, by nature of its length, leaves out quite a bit about the concept and its application of Grit to parenting, it does provide a useful, actionable, introduction to concept.

Grit for Kids is a short, application focused short book that can provide some needed guidance to parents who are struggling with how to help their kids follow through in the face of challenges, or just boredom. It says a minimal amount about the theory of “grit” and dives into scenarios and techniques you can use to encourage the right combination of endurance and passion with children in your care. The examples are realistic and address children of a variety of ages from later elementary to high school.

The author captures the essential parts of grit, including the subtlety that gets lost in many interpretations which focus on "persistence" over all else. As Angela Duckworth describes the concept of “grit,” it also means understanding your limits. I would recommend reading Grit, but that is a larger time commitment, and this book might just fill a gap. It will give you ideas to get started, as it is easily readable during a couple of short blocks of idle time, like a subway or bus commute.

The book would be better if the author pointed to resources to go more deeply, and it is a bit simplistic. But if you are looking for a way to understand how to help your kids get on the road to being grittier, then this is worth a look if the price is right. But do follow up with the original book, or at least the TED talk.

Tuesday, October 25, 2016

Review: 100 Tricks to Appear Smart in Meetings: How to Get By Without Even Trying

Sarah Cooper’s book 100 Tricks to Appear Smart in Meetings, is very much a fun, and funny book, which, is also surprisingly useful and relevant. Part satire, part social commentary, it reminds us of people and situations we’ve been in and gives us the opportunity to laugh at others and ourselves. If you’ve been in any medium to large size organization (or had to interact with one), you’ve seen most of these “tricks” in action, and you’re likely to want to share select items with others, laugh out loud, or perhaps wistfully imagine life where these things didn’t happen. But the book offers more than just the opportunity to mock your corporate colleagues. After having a good laugh, you have the opportunity to think about why some of these tricks, — especially the ones that sound so reasonable — make you cringe when you see them in action. And that thought process can lead to better collaboration.

Let’s start by taking a step back (see tip # 3). All of the items Cooper mentions are things that really happen, and they don’t always make you cringe. The answer is (Imagine this on a slide by itself — tip # 53): “Context.” While you’ve probably seen all of these techniques be presented as part of a collection of meeting tactics and mechanisms. When you are doing these things for the right reasons, with the interests of the group in mind, most of these tricks in the book can be useful. It’s when you do them to win an argument, suppress ideas, or just because “it’s what you do” that the techniques become cringe worthy. If reading this book makes you more self aware of how you appear in meetings, you’ll get extra value. Though the humor value is more than enough to justify getting the book.

After you read Cooper's book (and I do suggest that you follow her advice and get a copy for yourself as well as a copy or two for a colleague), think about the meetings you've been in and the ones you are about to be in. Consider if they are useful, and have only the right people. Some are. Many aren't. I suggest getting a physical copy of the book, because having one in the office (and perhaps on the table during certain meetings) will help people keep their jobs in perspective.

Sara Cooper captures the essence of useless meetings with humor and uncanny accuracy.
100 Tricks is a fun, entertaining read in the spirit of Dilbert, which will amuse you, help you get through a demoralizing day at work, and surprisingly, help you think about how to do better.

Saturday, October 8, 2016

Mindfulness, Resilience and Positive Intelligence (Book Review)

I got a copy of Positive Intelligence at the recommendation of a leadership coach. After having done the “Saboteur” quiz on the Positive Intelligence site, I wanted to learn more about the his approach. While the book gets at some of the concepts I've seen in other places, the approach is worth exploring.

The positive intelligence framework is that we have within us Saboteurs, which hold us back, and a Sage, which helps us explore possibilities. While the anthropomorphism initially made me feel a bit awkward, there is some power in ascribing non-productive reactions to a part of your thought process, and giving it a name. The book explains techniques to both be more attentive to, and thus able to suppress, your saboteurs, and also how to “strengthen” your Sage, so you can treat setbacks as opportunities more readily.

Some of the basic themes of Positive Intelligence may sound familiar if you’ve spent any time learning about team leadership, but Chamine’s way of modeling them adds an interesting and compelling twist. Saboteurs are reminiscent of the concept of “survival rules” that I first learned about while reading one of Jerry Weinberg’s Becoming a Technical Leader. Like survival rules, saboteurs are useful in certain circumstances, but have negative effects when you misapply them. Chamine describes how each Saboteur manifests themselves in terms of how you feel, act, and how others may perceive you. He then describes techniques to become more aware of them so that you can take a step back and act appropriately.

In short, this is a book about mindfulness and resilience, both very useful concepts that are very difficult to apply. Even if you feel like you have a basic appreciation of the how to be be more mindful and resilient, reading about them again, and considering a slightly different approach to achieving them can’t hurt.

While it has a business focus, you can apply what you learn to both personal and work situations. The author also explains how to apply the model and techniques in individual and team contexts. And while not about Agile, the book also left me with some ideas for activities to use in Sprint Retrospectives, which are after all, a practice teams use to be more mindful and resilient.

Positive Intelligence is a rather quick read (but you will want to take notes and mark pages), which mixes discussions, stories, and practices, so you can apply what you’ve learned. The book also makes frequent references to resource on the companion website. If you feel that negative reactions are holding you back, even subtly, this book is worth a read.

Site Reliability Engineering; The Book and The Practices

Site Reliability Engineering It’s difficult to walk into a software development organization without hearing about the discipline of Site ...