Sunday, March 31, 2019
My rating: 5 of 5 stars
Start with Why explains that having of clear mission is important to success. The general themes in the book are things you wish every team did, but which most teams ignore. Sineck makes his point in an easy to read book that includes a number or stories.
Understanding your mission (or why you are doing what you do) has benefits at all phases, ranging from execution to marketing and sales. At the execution end of things, a team that understands (and embraces) a mission can work more autonomously and creatively, and thus be more productive. At the consumer end, it can differentiate your product from others that do the same thing, and lead to brand loyalty. A clear “why” can influence a product decision more than technical merits, especially in an evolving product space.
This resonates with my experiences. I’ve often thought of my self as an “Early Adopter” and someone who made decisions that often included intangibles rather than an evaluation of a pro/con lis. An early example of this, is my deciding to buy a Palm Pilot in spite of friends extolling the technical merits of the Apple Newton, because I really just wanted an easy way to carry addresses and calendars around, and while the Newton was “cool” I wasn’t sure why I’d want one.
Sineck draws many examples from successful businesses that, while necessarily being the first in a business, had a clear sense of purpose, including Apple (at least the Steve Jobs era) and Southwest Airlines.
While the book seems focused on the importance of Why in business strategy , the philosophy in this book carries over into many aspects of ones work (and even personal) life.
For example, in software requirements, I’ve always been skeptical of requests that tell me what functionality to build, without having an idea of why the person wants it (or what they what to accomplish). Obscuring the Why makes it harder to build creative, more cost-effective solutions.
In terms of work/life balance, I’ve always felt more engaged in work that I found inspiring, and when leading teams, I’ve observed that teams moved more quickly when everyone had a reasonable sense of the mission and goals.
As I read the book, I even realized that I could improve a presentation I’m working on by focusing more on why the ideas I’m presenting can move not just work, but values forward.
And, as the last paragraph in the book sums up, being able to share “why” can help you, as a leader, inspire action.
I picked up the book almost at random, but am, glad to have read it. It’s engaging, inspirational, and actionable. The ideas make sense, and you may even have thought along similar lines yourself. The core ideas here are ones that I’ve always tried to live by in my professional life, though it felt that I often got blank looks when I raised the question of mission in certain teams and organizations. Having had the book to point to might have made a difference. Perhaps not (and the question of why an idea from a third party takes better than one from an employee is likely the subject of many other books).
At some level, Start with Why is simply about applying what Jerry Weinberg called “Congruent Action.” Know what your values are is a prerequisite for acting congruently. This book is worth reading if you want to improve your (or you team or organization’s) focus and enjoyment of work.
View all my reviews
Sunday, February 10, 2019
If you (or a family member) plays Minecraft on iOS, and you get a new iPad you’ll often want to transfer the worlds between devices. The simplest thing is to restore the new iPad from an iCloud Backup of the old device. This will transfer all of the data, including Minecraft words.
Sometimes you might want to start a new iPad from a clean slate. ( Since most of the data I care about is already in some sort of cloud storage, a new iPad is a good excuse to cut down on clutter). Minecraft doesn’t make transferring data as easy as other apps do. There are 3 options, including one that I hadn’t come across doing searches the times I’ve done this.
One option is to use Minecraft Realms. With Realms you can keep words in the cloud or upload worlds on one iPad and download them on another. Realms isn’t really a backup solution. You pay per ‘world’ and the upload and download process is slow. But it can work if you have a small number of worlds, and if this is a one off, you can do the transfer during the free trial period. Mojang has a helpful article describing how to do this.
The more useful approach is to use a Mac app that lets you mount your iOS devices as disks. There are many forum posts on how to do this. The two tools that get mentioned often are iExplorer, a paid app, or iFunBox, which is free.
I wondered why one could not use the iOS Files app to do this, thus avoiding third party tools. And it turns out that you can.
When you go to the Files app for the first time, navigate to On My iPad,. You may notice that there isn’t an anything promising visible.
But you can make a Minecraft folder visible. Connect the old iPad with the world data to your Mac via USB, and go through the workflow to have your iPad trust the Mac it’s connected to. No need to synch or transfer any data.
When you disconnect, you should see a Minecraft Folder. Navigate to the Minecraft Worlds folder (as described in the posts on how to use iExplorer-- games/com.mojang/minecraft Worlds) and copy the Minecraft Games folder to another place on your iCloud Drive.
Connect the new iPad to a Mac to get the Minecraft Folder to appear. Navigate to the correct place and copy the world files from the iCloud Folder into the Worlds folder.
Restart Minecraft and you should see the worlds.
(I haven’t dug deeply into why connecting to the Mac makes the folder visible, but I’ve heard some plausible explanations from friends who know more about iOS app development than I do. If someone has a concise, explanation I can share it.)
Monday, January 15, 2018
One way to establish common expectations is to create and agree to something akin to a Contract for One on One Meetings, either at the start of a new management relationship, or at a time when your meetings seems to be becoming less effective. Like any long-term agreement, realize that it’s subject to change as situations change. If “contract” seems too formal, think of it as an outline for a conversation.
Having been on both the manager employee side of the conversation, I’ve found the following to be the key points to agree on at the outset. Your list may be different, but I hope that this is a good starting point.
Key Agreements for One on One MeetingsA one-on-one agreement should address the following points. This agreement should allow for situational variation, but if you consistently stray too far, consider having a conversation. For some of the sections, who does something can vary. For simplicity, I specified either manager or employee in the example.
PurposeWhile it may seem “obvious” why you’re having one-on-ones, there are enough obvious reasons that it’s worth spelling them out. Are these meetings career focused or project focused? Often one-on-ones are focused on career conversations rather than project work (though project work might provide context). Being explicit and clear is the important thing. If you have only one conversation about one-on-ones, this is the one to have. An example of a purpose statement could be:
The purpose of these one on one meetings is to provide a regular time to check in with each other about career goals, and to understand how we can work together to help the employee achieve her goals, and for the manager to get information to help her manager better.
SchedulingAgree on how frequently you will meet, who will schedule the meetings, and in what format you’ll meet. Since business and personal commitments might lead to missing an occasional meeting or two, discuss how to handle those situations. The point here is to establish responsibility for scheduling time, and to establish the priority of these meetings. For example:
The manager will schedule one on one time every two weeks (as agreed). If schedules make this hard, the manager will provide notice and try to reschedule. If we miss more than 2 scheduled meetings, we will plan to meet in person, or via video as soon as possible.
The employee will make time for the one on one meeting, and give as much advance notice as possible if there are conflicts which make attendance difficult.
ContentThis is a statement about the general agenda and how much preparation to expect. Err on keeping this to general themes so that you can keep to the format over time. It’s useful to include the following components:
- Manager Items
- Employee Items
- Feedback (both ways)
- Career development
- Action Item Review
The Manager will come prepared with items to discuss. During the meeting the manager will offer constructive feedback, follow up on action items, and ask for feedback, and accept it in a non-defensive manner.
The Employee will come prepared with items to discuss. During the meeting the employee will provide follow up on action items, offer constructive feedback to the manager, accept feedback from the manager in a non defensive manner and commit to raising any issues that are, or may be, concerns.
Follow upMost short meetings will result in work to be done by the participants. This section describes what will happen after the meeting to capture and follow up on action items.
The manager will summarize action items (for both employee and manager). We don’t need meeting notes or minutes in most cases. Each party will make a best effort to follow up on action items.
SummaryThe idea of a “contract” for a routine meeting might seem a bit heavy weight, but some form of agreement is essential. My hope is that this can be a framework for a conversation about what a good 1:1 is, even if the details vary.
Thursday, May 18, 2017
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: 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
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.
RespectThere 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 ProtocolsThere 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 ReasonIn 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.
Start Times and End TimesIt’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
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 senseThe 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.
Next StepsWhile “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
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.
Start with Why: How Great Leaders Inspire Everyone to Take Action by Simon Sinek My rating: 5 of 5 stars Start with Why ex...
My main development language is Java, but I also some work in Python for deployment and related tools. Being a big fan of unit testing I wr...
Being a fan of Continuous Delivery , identifiable builds, and Continuous Integration: I like to deploy web apps with a visible build number...
Groovy is a powerful and fun language. One of the nice features, particularly useful for internal tools, is the ability to deliver scripts...