Skip to content

Archive for

Feature Request: Trello and Fogbugz list consolidation, aka You can only have one boss

I have an idea for a feature enhancement to my two favorite project management tools. To set the stage: let’s ponder the following question. “What should I work on next?”

An individual can only divide their attention so many ways. Some are better than others, but a working set of anything more than 4 or 5 is unrealistic. The only way the extend this working set is to begin working off of a list. By building a list we are able to mentally “shelve” a piece of work until we are able to address it fully. Lists are fantastic productivity tools, instead of an interruption we simply put it on the list to be prioritized later.

When it comes to the real world, different types of tasks call for different types of lists. One reason we see so many different todo list management programs out there (don’t remember the milk, omnifocus, toodledoo, etc…) is that everyone approachs list management from a slightly different viewpoint. Software development is no different, and while there is also a great proliferation of software management tools I have yet to see a software project management tool that acknowledges and addresses the truth that the way most developers approach writing features is significantly different than how they approach fixing bugs. Those two primary tasks require different types of lists.

Sit down and watch a Project Manager while their team is in bug fixing mode, and then watch them when they are designing and implementing new features. The workflows are often drastically different.

Fixing bugs requires a lot of list management, sorting, filtering, categorizing, and bulk editing. The barrier to entering a bug needs to be low, and there needs to be good workflow automation to ensure that bugs don’t fall through the cracks. Often we are watching the list, assigning cases, tracking cases written vs. resolved vs. verified, in different functional areas and across priorities. A few high level charts help us see the big picture above the churn of the individual cases, but we need to be able to easily drill down to see if a specific concern has been addressed.

Organizing new features requires a high level of flexibility and visibility, along with the ability to attach design specs and user stories. Sitting down with users and doing interviews, capturing brainstorming sessions and fluidly adjusting priorities as new competitive possibilities emerge.

Great, so we’ve got one tool for bugs and one tool for features. No problem… except for one tiny little… hiccup. A developer can only really pull from one list at a time. As soon as you give someone two lists you have given up your ability to prioritize. Not only have you given up some control, but you’ve introduced an additional hurtle for the developer. Each time they complete a task, the developer needs to ask: “From which list should I pull my next task?” If I am required to stop and answer that question every time something is completed, what was the point of building the priotized list in the first place?

The result of this multiple list model is often that bugs get batched into discrete phases in software development. Developing features happens first, and fixing bugs happens second. Even if the bugs already exist, they are prioritized below the bugs. This is because you can really only work from one list at a time.

So how do we solve this problem?

I believe the solution is to allow users to create a Trello card checklist from a Fogbugz stored filter. With the appropriate cross product linking. How should that work? I dunno exactly, presumably it should work like an embedded version of fogbugz inside a trello card. Something that lets me batch up bugs and integrate them into the feature workflow. I’d like to be able to tell my developers, as quickly and easily as dragging a card to a list, “hey, fix these 10 bugs before you get to that next feature” without them needing to hop back and forth between products to see what they should do next.

There are 100 ways to do this wrong, and probably 6 ways to do this right. And the brilliance isn’t in the idea, but in the working bits at the end of the day.

Advertisements

Facebook’s traffic violation: the stats

Facebook has moved from merely being a walled garden into openly attacking its users’ ability and willingness to navigate the rest of the web.

via Anil Dash

Anil’s post explains what I’ve been seeing in the traffic patterns on my blog. When I first started blogging about a year ago, most of my traffic came from Facebook. It made sense, I have a lot more facebook friends than twitter followers. But after the most recent newsfeed redesign at Facebook, their referrals have dropped precipitously.

Facebook is on the top of my all-time referer list. Beating out twitter by about 30%. But over the last 30 days, twitter has provided 4 times more referals than Facebook!

Scandal!

I would be curious to know if other bloggers have noticed this shift, or it it’s something unique to my particular blend of friends and followers. If this holds true for other bloggers as well I can see a greater push to build communities in other social media sites that are not as aggressive at keeping users inside the walls.

Failure – Now what?

via flickr user jontunn

I had an interesting experience a few months back. I utterly and completely failed at something. Luckily the consequences have been minor… I started competing in something called the Crossfit Games Open, which is an international competition designed to find the fittest men and women on the planet. Big surprise, I’m not the guy they’re looking for.

A little back story on the competition.

In the Crossfit Games Open, each competitor needs to complete a certain workout and submit their scores online. Their scores are validated by judges watching the workout and everyone is ranked on a giant list. When you post your score you can see exactly how many people are better than you. Great!

I did the first two workouts, and posted my scores. I wasn’t doing great, but I was hanging in there in the bottom third of competitors. Life was good. I was having a good time, and I was able to sooth my competitive drive by reminding myself that even though I wasn’t the best, I wasn’t the worst either. That is, until the third workout came up. It was incredibly simple, only one exercise, done as many times as possible in 5 minutes. Unfortunately that one exercise was a 165 pound squat clean and jerk.

I can’t do a clean and jerk with that weight. Not a single one. And it’s not something I can really “work on” either. I have pretty good technique, and enough strength to get the bar up and off the ground and onto my shoulders, but my legs and back (mostly back) simply aren’t strong enough to front squat that weight. So what did I do? Started a timer and for five minutes I tried repeatedly to clean and squat that weight… my goal was 1… just do 1 rep…

I failed.

I tried to submit my score of 0 to the website… to which they responded “sorry, you can’t do that”. So not only did I fail, but I was so much of a failure that I wasn’t even given the chance to tell the world about my failure. No one was interested.

It was a pretty disappointing saturday. I took myself out to breakfast at the local diner and while I was sitting there realized that based on my original criteria of success I had failed, but viewed through the lens of history I had actually achieved something that morning. I had on my list of fitness goals for a while to be able to clean my bodyweight. I weigh 155, and in cleaning 165 pounds from the ground to my shoulders, even though I hadn’t finished the squat part of the workout I had done something I had never done before. I also got to add another item to my list of personal goals. It’s still sitting there today, taunting me. But I’m going to hit the Olympic Weight Lifting class at the gym today and see if I can’t chip away at that goal a little bit more.

Hat tip to Nerd Fitness for blogging about failure and helping motivate me to finally finish this post.

Tipping the other hat to Seth Godin, with more info on dealing with failure.

Inspiration strikes at funny times

I can’t believe it took me this long to figure out I could use the iPad 2 smartcover like this.

20111121-203829.jpg

mountains are actually 100 little hills

via flickr user ItzaFineDay

There have been a lot of metaphors used to describe software project management. Waterfalls and Spirals are both pretty common metaphors. In more recent history we’ve started thinking of teams as being agile and their work as being sprints. I haven’t heard any great metaphors for the act of project planning though. I’ve come to think of it as slicing a mountain up into a million little hills.

When engineers are thinking of how to solve problems (which is most of the time) they tend to think about “everything” it will take to bring something to reality. This is a great trait, and it is present in all great software developers. They are the ones that will respond to “can we add feature X to widget Y” with 200 reasons why it won’t work, and 2 great alternatives that would work better instead.

The unfortunate side effect of this skill is that sometimes engineers will look at a big problem like “create an operating system designed to run in the palm of my hand” and their internal todo list creator will overheat. They’ll start at step 1, see something attainable, move on to step 2, 3, 4, 5, and somewhere around step 75 their brain will overload and the problem will go from something that is possible but difficult to impossible.

The key for a project leader is to take that mountain of a project and turn it into a sequence of little hills that are all individually attainable and when finished will lead to the top of the mountain.

Sometimes this takes the form of compartmentalizing. “Let’s ignore the wireless syncing feature for now, presume we have a connection, how can we synchronize the data once the connection is established”

Sometimes it means creating a path that the developers can walk down with you. “Yes eventually we’ll have to rewrite this entire module, but what if we just rewrite this small part now and wire the old one and the new one together in the meantime?”

Sometimes it’s about talking about the view from the top of the mountain. “Imagine how great it’ll be when we do finally rewrite this old Basic code in Java?”

Sometimes it’s about obscuring the mountain top. “We don’t have to rewrite everything, just these two modules for now, and then we can get this version shipped.”

The key in project management is to know the developers and know the project well enough to choose the right strategy at the right time.

Step one is always taking a good long look at the mountain…

Why Trello doesn’t work for bug tracking

Via flickr user goingslo

In my post on Trello I briefly mentioned how the software doesn’t work well for bug tracking. I wanted to dig into that issue a little deeper.

Bug tracking and bug fixing require much more process automation compared to feature development. This is primarily because of the large number of cases that will be open at any moment in the development cycle. For our company, we churn through between 40-60 bugs in a given week when we are focused on bug fixing. By comparison, when we are really cranking on features, we might do somewhere around 4-8 in a week. That is a fairly significant difference and the core reason that Trello doesn’t fit well for bug tracking. The overhead associated with managing the workflow of those thirty extra cases becomes a nightmare without a more rigid process.

Our process is fairly simple, we have a triage list where all new bugs go. We have a working list which contains the bugs we intend to fix in the upcoming iteration (an iteration is usually a week long). We also have a backlog list for bugs we intend to fix “someday” but not right now. We will periodically we go through the triage list and move bugs into either the working list or the backlog list. Bugs are fixed, developers resolve the bugs and they go to QA. QA validates the fix and closes the bug. Test automation will then decide whether to add this bug to their list of automated tests.

We use Fogbugz and find it works great for this workflow. It has enough process automation to make sure that cases flow smoothly through the system, but it isn’t so heavy handed that we can’t tweak the process when necessary.

Why Trello doesn’t work for bug fixing:

First is it’s lack of bulk editing features. If I want to take all my critical/show stopper bugs and move them into the working release, I will need to move all of them over by hand. Since moving by hand in Trello is literally moving by hand (via the mouse) this is actually a large amount of work.

Trello is at it’s best when you only have 6-8 items in each “active” list. When lists grow larger, they are very quickly pushed off the screen, making scanning and locating cards difficult. Some weeks we will ignore the bug list while development is working on a new feature and QA is testing something that was just handed off. If we were using Trello to manage these tasks, the “bug” list would grow quite large and very quickly become unmanageable.

Trello doesn’t have great categorization and search features. We categorize our bugs pretty heavily by priority and area. So for a given product and milestone we may have 100+ bugs we intend to fix across a variety of functional areas and at various priorities. Also, when we start working on features in certain areas of the product we will also look for any outstanding bugs or feature requests in that area to see if we can lump them into the upcoming enhancements.

Trello doesn’t have good screen capture integration. While it does support attachments, these aren’t enough. Fogbugz integration with snagit and their own desktop screen capture tool are great accellerators for entering bugs. Sometimes a picture is worth a 1000 word bug description.

How Trello could be made to work with fogbugz:

Don’t get me wrong, Trello and fogbugz integration would be awesome. I would love to be able to turn features into cards and then mark the cards as “finished”, automatically resolving the corresponding features in fogbugz. This would likely necessitate a stricter board setup, but being able to visualize feature requests this way would be a nice addition. We are essentially doing this process manually today anyway.

The ability to grab all of the bugs in a given milestone or assigned to a certain person and create a card that has those bugs as checklist items would be an nice way to help developers prioritize and manage the list of bugs they are working on. As a manager I could highlighter 7 or 8 critical bugs that need to be addressed and make sure the visibility is raised through the creation of a card. This would let me do away a little bit with our “working” list in fogbugz and instead replace it with cards in the current iteration. Not a blindingly brilliant enhancement, but again, we are doing something similar now. We make the card in trello “Fix the bugs on the list” but I have to check 2 places daily to know how the developers are progressing on their tasks.

I can only presume that Fogcreek is working on ways to integrate Trello with Fogbugz in the future and I look forward to seeing what they come up with.

reduce, reuse, recycle – a cardboard iPhone stand

I saw an advertisement for a very clever iPhone stand.

Which I think is a cool idea, and in fact solves a problem that I have. Not the bracelet part, but the propping up of my iPhone part. Rather than scouring the internet for a solution I could prop up on my desk, maybe something in a nice brushed aluminum. I made one of these.

cardboard iphone stand

fancy!

I like it so much I made another one to leave at the office, and I’ve still got a whole amazon box of cardboard left over!

Siri is the iPhone 4s killer feature for motorcycle riders

via flickr user Al Pavangkanan

At first glance the iPhone 4s is an incremental improvement from the previous version. The pundits have blasted it as being a boring, yawn inducing, upgrade, and as an iPhone 4 owner, I had agreed with them. Until I acquired another piece of interesting technology and in the process, uncovered the iPhone 4s’s killer feature.

The Scala Rider G4 is an in helmet bluetooth device that lets the rider communicate with the outside world from the back of her motorcycle. I was motivated to pick up the G4 before a road trip down to Oregon so I would have a handy way to listen to music, and accept the occasional phone call on the 5 hour ride. The G4 worked perfectly, except for the occasionally miscommunication between myself and the iPhone itself. The iPhone 4s uses the old school voice control app which is usable, sort of, but it’s nowhere near perfect. I’ve gotten in touch with a few old friends unexpectedly (Matt Andersen and Mike Andreessen sound really similar…)

Enter Siri

If I’m completely honest, I believe Siri to be kind of a parlor trick, fun and flashy but somewhat useless for a majority of tasks. Off of the bike I get the most use out of Siri when I grow weary of trying to tap out long messages. Dictating to Siri instead of entering text via the on screen keyboard can be a huge time saver. The integration with Wolfram Alpha is fun but not earth shattering. Dictating reminders is nice. All periodically handy features that have an equivalent, likely superior alternative.

Unless you ride a motorcycle.

On a motorcycle you have this fantastically capable device in your pocket, that you simply can’t make use of. Sure it’ll play music, and if someone calls you, you can answer, but the metaphorical road runs out after that.

The true excitement behind Siri is not what you can do in your office, or at home, but what you can do between those places.

I will have Siri read texts to me while I’m riding. I’ll dictate responses back to her. If I feel like listening to some music, I can ramble off a command to shuffle some high rated songs and Siri will figure it out. If I have a random factual question that is bugging me, or something I need to add to a shopping list or todo list, Siri will help take notes for me. The list goes on and on.

I think Apple is stepping into a big void and offering a solution to a problem for which no one has taken ownership… what do you do about all these phone related car accidents? How do we help people take their eyes off their phones and put it back on the road?

Texting while driving? I have no reason to do that anymore…

Sometimes time = energy

via flickr user janie.hernandez55

I’ve been struggling to find time to blog recently… at least that’s what I’ve been telling myself. Turns out what I’ve really been lacking is energy. I’ve had the time to write, but whenever a slot opened up in my day I would whittle away the time on a number of distractions instead of digging in and writing something.

I’ve recently had a surge of energy and I’m hoping it sticks around. How am I going to do that? Here’s my short list:

  1. Get adequate sleep, 8 hours, every night
  2. Avoid insulin spikes (aka, anything heavily processed, sugary, or starchy)
  3. Get exercise
  4. Don’t overdo the exercise
  5. Go outside
  6. Have some fun, play some games
  7. Stay connected with friends