Monday, January 23, 2017

The XY problem

There's an interesting phenomenon in asking questions: we often ask help to solve the wrong thing. In certain circles, this is called the XY problem, summarized here:
  1. You want to do X
  2. You don't know how to do X, but you think you can get there by doing Y
  3. You don't know how to do Y
  4. You ask for help to do Y
The XY problem is asking about your attempted solution rather than your actual problem. But you won't get much useful help in asking to do Y, because you aren't really trying to solve Y. You're trying to solve X, yet you've invested so much time and energy on your possible solution involving Y that you forget to mention that X is the real problem.

As a result, folks may offer solutions to Y that technically work for Y, but don't help you with X. And that's not very helpful.

I see this happen across the board, in my work with open source software and in my professional career. Even I'm not immune to it; I may decide on a particular solution, and ask for help with that solution. But by not providing the full context of the problem I'm really trying to solve, others aren't able to help me that much.

Use your words. When you have a problem or make a request, tell people what problem you are trying to solve, and what solution you are currently chasing.

Monday, January 16, 2017

Don't check email in the morning

Many of us seem connected to our personal devices, like our phone. We check email, do Twitter and Facebook, read websites and blogs, watch videos… we do everything. Our personal technology has become part of our lives, like a habit.

And like a habit, I'll bet many have this bad habit: you check email first-thing in in the morning.

But checking email right away when you get up is ruining your work-life balance. You aren't staying separated from "work" when you are at home. And checking email in the morning can ruin your day, according to Michelle Gielan, former national CBS News anchor turned psychology researcher and best-selling author.

According to Gielan, even one bad email can set a negative tone for your day. And that rings true for me, certainly. I try not to read email over breakfast, but when I do, one bad item can put me in a poor mood for much of my work day.

If you must check email in the mornings, Gielan recommends instead to put yourself in the right frame of mind before doing work emails. Take a few minutes to send a positive email to someone you know well, like a friend or a family member. From the article:

After you send your upbeat email, move on to your regular routine of checking your work email or the news.

That two-minute message primes your brain to see everything in a more positive light.

“It will change how you process your day and how you process your email at 2 o’clock in the afternoon,” she says.

My best recommendation is to preserve your work-life separation, and avoid work email at home when you can. But for those times when you do need to check work email, Gielan's recommendations may help.
image: William Hook (CC by-sa)

Monday, January 9, 2017

On resource planning

As a young manager many years ago, I didn't really know how to manage people. I just didn't have any training for that. So when I needed to assign staff resources to projects, I did it ad hoc. I tried my best, but it came down to asking who was interested in a project, and making a selection based on who had the best availability.

The problem with ad hoc planning is that you aren't really planning. There's very little thinking ahead.

Later in my career, I worked with someone who was a professional planner. As a former project management consultant, this person really understood how to do project and resource planning. I learned from him that there are many ways to do thoughtful resource planning, and from him I derived a method of resource planning that has served me well these many years later. I'd like to share it with you.

If you do project planning or work as a project manager, this method may seem very familiar to you. But if you haven't done resource planning before, I hope this will be helpful to you.

You don't need a fancy tool to do resource planning, although there are professional tools to do much of the work for you. But a spreadsheet works well enough, especially if you are just getting started in resource planning. So let's do this example with a spreadsheet.

Start by thinking about a time frame. How far out can you do planning in your organization? If you're like me, one month is too short, and six months is too long. Things change more quickly than a six month time frame can accommodate, but not fast enough for a one month window. I use a three month time frame. This gives me a quarterly work plan.

There are 52 weeks in a year, 26 weeks in half a year, and 13 weeks in a quarter. So create your work plan by creating 13 columns, one column for each week. I also recommend you include the date of each week as a separate row—although for this example, I'll leave that out. Leave a few columns to the left; we will fill these in later:
12345678910111213

Now, think about the work that you will need to get done over the next quarter. What work does your organization need to get done? What are the priorities from your leadership? What are the major projects? Put these on separate rows in the first column.

Don't forget that support activities also count here. For example, you may have systems administrators who need to keep servers running. Same for network administrators supporting your network. You need to include these too.

Once you have the major projects, determine how the projects break down by tasks. A project consists of many steps. What are the components to complete the project? List the steps in the second column.

Then, identify the resources you have available. What projects are they best suited for? What are their skills? Where can you best direct their energies? Who would be the best contributor for each project? Don't forget that only very small projects require just one person; most projects will require more than one contributor. List the people for each task in the third column.

In this example, let's assume two "infrastructure" team members (John and Jane) and two developers (Jill and Jack). As we start the quarter, the developers are starting a new project (Project1) while they prepare to deploy a previous one (Project2).
12345678910111213
Support
networkJohn
serverJane
databaseJane
Project1
analysisJill
designJack
devJill
devJack
Project2
testJill
testJack
rolloutJill
rolloutJack

As you identify new projects and tasks, keep the spreadsheet organized. In this example, see how separate projects start on their own row. Tasks are matched with a resource. I've kept my example somewhat simple by not providing much detail. If you were writing your own resource plan, you would likely need to fill in more information about the project and tasks.

Look ahead by weeks and consider how long each task will take. If this is your first time building a resource plan, you might "block out" some time by filling in each week with a color that you can go back to later. Let's do that for the example. I'll block out some time. Note that the support tasks should be blocked out for the whole quarter, but other tasks in other projects might take different amounts of time.
12345678910111213
Support
networkJohn
serverJane
databaseJane
Project1
analysisJill
designJack
devJill
devJack
Project2
testJill
testJack
rolloutJill
rolloutJack

From here, you need to assign time or "effort" each week to every person working on every task in each project. You can do this a few different ways. Professional project managers sometimes prefer to use a four-day work week, where you always assume one day is "lost" to "overhead" (usually meetings). I prefer to use a five-day work week. I find my staff understand the five-day work week better if they can build in their own "overhead" and see where their time is going. This also allows some flexibility. For example, developers may need to attend more meetings for project planning, etc. Let's assign time to each project with the assumption that John and Jane attend fewer meetings than Jill and Jack.
12345678910111213
Support
networkJohn5.05.05.05.05.05.05.05.05.05.05.05.05.0
serverJane5.05.05.05.05.05.05.05.05.05.05.05.05.0
databaseJane5.05.05.05.05.05.05.05.05.05.05.05.05.0
Project1
analysisJill5.05.05.05.0
designJack5.05.05.05.0
devJill5.05.05.05.05.0
devJack5.05.05.05.05.0
Project2
testJill5.05.05.05.05.05.0
testJack5.05.05.05.05.05.0
rolloutJill5.05.0
rolloutJack5.05.0
meetings

John1.01.01.01.01.01.01.01.01.01.01.01.01.0

Jane1.01.01.01.01.01.01.01.01.01.01.01.01.0

Jill1.51.51.51.51.51.51.51.51.51.51.51.51.5

Jack1.51.51.51.51.51.51.51.51.51.51.51.51.5

Look at every column, and make sure the total time for any one person adds up only to 5.0 every week. There are only five days in each week, you can't expect your team members to work more than five days. In the above, Jane is over-committed on "server" and "database." Similarly, Jill and Jack are over-committed across "Project1" and "Project2."

When considering the balance of time, I prefer to use a few simple rules: The smallest increment of time allowed is 0.5 days per week. That's four hours of work time, and I find you cannot really plan for time less than four hours per week.

As you balance the time committed to each project, consider the work load. For example, Jane's dual responsibilities as server administrator and database administrator may not require equal time. Perhaps she spends most of her time maintaining the server.

And don't forget about vacations and holidays. Everyone needs time off, and you need to plan for that. Build your holidays into your work plan from the beginning. Ask staff to estimate their upcoming vacation time. While folks might take an unplanned day off here and there (or be out sick) you can still plan in advance for extended absences such as a long vacation.
12345678910111213
Support
networkJohn4.04.04.04.04.04.04.0x4.04.04.04.04.0
serverJane3.03.03.03.03.03.03.03.03.03.0x3.03.0
databaseJane1.01.01.01.01.01.01.01.01.01.0x1.01.0
Project1
analysisJill1.51.51.51.5
designJack3.03.03.03.0
devJill2.52.53.53.53.5
devJack3.53.53.53.53.5
Project2
testJill2.02.02.02.03.53.5
testJack3.53.53.03.50.50.5
rolloutJill3.53.5
rolloutJack0.50.5
meetings

John1.01.01.01.01.01.01.0x1.01.01.01.01.0

Jane1.01.01.01.01.01.01.01.01.01.0x1.01.0

Jill1.51.51.51.51.51.51.51.50.50.51.51.51.5

Jack1.51.51.01.51.51.51.51.51.51.51.51.51.5
vac/hol

John1.05.0

Jane1.05.0

Jill1.0
2.02.0

Jack1.01.0

As you can see in the work plan, Jane plans to divide her time between "server" and "database" tasks. For the first eight weeks of the quarter, Jill and Jack each will spend some time on analysis and design for "Project1," and the remainder of this time doing testing for "Project2." See under "Project2" how Jack ramps down on testing at the same time Jill ramps up, because of his balance of responsibilities.

Also, Jack gets to turn a holiday on week 2 into a four-day weekend in week 3, while Jill takes an extended vacation during weeks 9 and 10. John takes the whole of week 8 as vacation, and Jane takes all of week 11. When each person is out, notice that their time on other projects also needs to be redistributed.

That balances the time assigned to projects. No one gets overloaded. And everyone gets to take their vacations. The staff can be productive, while the manager is able to plan for their work.

With that, you have the start of a quarterly resource work plan!

You can add other features to this work plan. Here are a few ways to extend this:

Total time

As you build your work plan, it quickly becomes cumbersome to add up everyone's time each week, and ensure every person is allocated "5.0" days per week. Let the spreadsheet do the work for you. Look up the =SUMIF() function to make this easier. The =SUMIF() function is a standard spreadsheet function to add numbers from a column only if a key matches one in a list. In calculating total time, the key is the name of each staff person. I also use automatic formatting in my spreadsheet to highlight the total in a different color if the value is less than, equal to, or greater than "5.0." This helps me to quickly identify where staff are over-committed as we build the work plan.

Reporting

As you progress through the quarter, how do you track when people actually work on projects? When I "borrowed" the work plan spreadsheet from my colleague, he used separate tabs in the spreadsheet for staff to report time. Entering time into the spreadsheet required staff to track hours worked against each planned work item, and provide an estimate to completion. This sounds great, but ended up being very confusing, especially for folks in a primarily "support" role. Later, I asked my teams to report their status using a simple metric: don't change the numbers in the work plan, but highlight each cell to indicate when you worked on something. Highlight in green if your project is progressing well, yellow if you encounter issues that might put your project behind schedule, and red if the project is at risk. Then I would review the spreadsheet every week as part of my staff meetings to see how things are going. If I saw any yellow or red for the previous week, we would go over that and talk about issues and how to move things forward.

Unplanned work

You can't really plan for unplanned work, but sometimes things just happen that require staff to drop everything and make some work item their number one priority. In higher education, the dean might ask us to work on a special project. This was unplanned work, and it certainly had an impact on our time. To account for unplanned work, I would add a few rows to the bottom of the spreadsheet, one row per staff member, and reserve this row for unplanned work. If you worked on an emergency project that wasn't on our list, you would record the time worked in your "unplanned work" row, and use a spreadsheet cell comment to indicate the unplanned work item. If this unplanned work impacted another planned work item, the staff member would highlight that other project's status with yellow or red to flag it for the manager. This ended up being a good balance of reporting time without over-burdening staff to fill out a weekly status report.

Roll-up reporting

Sometimes it's helpful for a manager to provide a "roll-up" report of how their team spends their time. This kind of "roll-up" requires adding a new column to the work plan to categorize the type of work. I borrowed from other professional project planners and developed a "code" to represent the type of work:
AN Analyze: Time dedicated to understanding a project or doing background work about the project.
DE Design: Designing a solution.
BU Build: The creation of a system.
TE Test: Time dedicated to testing a new system.
DP Deploy: Rolling out a new solution.
P Project: Use this if your project doesn’t use defined phases like Analysis, Design, Build, etc.
PM Project management: Usually reserved for managers who need to report time.
CF Change-fix, or production support.
NP Non-project time, such as vacations and holidays.
UW Unplanned work: Time spent on emergencies or last-minute important work requests that were not planned. By definition, do not plan for UW.
Once you have a code entered for each task on the work plan, you can create a simple roll-up report to show how time has been allocated. Again, let the spreadsheet do this work for you. The =SUMIF() function can use the code as the key to generate the total time for each code. This lets you build a matrix to calculate the total time spent each week for each type of work.

Monday, January 2, 2017

Feedback from Symposium

In December, I was proud to be part of the Minnesota Government IT Symposium, in Saint Paul, Minnesota. I served on the planning committee, led an all-day workshop, and gave three presentations during the conference. It was a lot of fun, and I met a lot of interesting people and attended some excellent presentations.

As a presenter, we always ask for feedback. This helps the conference understand how each session went, and assists in planning next year's conference.

Feedback is also helpful to the presenter. Feedback is a gift, and we should seek out feedback so we can improve ourselves. So I was excited recently to receive my presenter feedback from the Government IT Symposium. I wanted to share them here, with some notes for how I'll use this feedback.

Business Continuity and Disaster Recovery Planning Tech Jam (report-out)

In this session, I provided a recap of the all-day "Tech Jam" workshop on business continuity and disaster recovery planning and shared what we learned, including the detailed results of the four work groups during the workshop.

No comments.

Leadership Lessons from Unusual Places

This is one of my favorite presentations, and I've given variations of it at different conferences and events. I sometimes like to find leadership lessons in unusual places. Looking for leadership lessons through the lens of unexpected sources can be interesting and insightful. In this session, we learned about leadership from various sources including Disney's Mulan (coaching), Breaking Bad (commitment, hiring), Star Wars (taking on a new role) and My Little Pony Friendship is Magic (relationships).

Comments:
  • "Maybe for the Star Wars example, use actual examples like you did for the other ones, not just 'what could we tell Darth Vader in a leadership transition.' Because that doesn't really happen in the movie. Your Breaking Bad one was good because you used real examples from the show."
  • "Good speaker. Very entertaining."
  • "So useful and topical!"
  • "By far the best session and most interesting speaker I have seen so far. This was a great session that provided great ideas and knowledge."
  • "Love the presentation ~ very creative way of presenting your information! Don't think I will look at those movies in the same way again!"
  • "I was really impressed at the awareness of your ability to take movies/ tv shows and pull out the leadership skills. Made me aware of the fact that it is not just entertainment!!! I will probably analyze and look at movies/ tv a little different in the future!"

Usability Testing in Open Source Software

In this presentation, I spoke about our usability tests this summer with GNOME and Outreachy. Attendees had great comments about Renata's traditional usability test and Ciarrai's paper prototype test. People also liked the heat map method to examine usability test results. When I talked about the UX test, attendees thought the emojis were a good start, but also suggested the method could be improved. I asked for help to make this better next time.

Comments:
  • "Very informative and entertaining."
  • "Great presenter and great information."
  • "Interesting, would like to see more examples of results and test questions."
  • "He's open to ideas and feedback from audience."
I appreciate hearing these comments and feedback because it helps me to do better next time. The Leadership Lessons talk was a lot of fun, but I think it is time to retire the "Star Wars" example. I led with that in my presentation because it was the first "leadership lesson from unusual places" I ever did. But it uses a different format and structure than the other Leadership Lessons examples. One reviewer certainly noted the difference. And I agree that the other Leadership Lessons examples are more effective because we are drawing out lessons from something, where in the "Star Wars" example I ask the audience to make recommendations to Darth Vader and Luke Skywalker. I agree that this method is less effective.

I'm glad that folks found the disaster recovery and business continuity session valuable. We worked very hard on this one to create a presentation based on the previous day's workshop. The goal in the conference presentation was to share what we had learned. I also wanted to recognize the effort everyone put in, and let managers know that their staffs' time was wisely used and generated valuable results. We also provided the results to conference attendees for them to use in their organizations and boost their own disaster recovery planning.

Thank you for your wonderful feedback.