
A few weeks ago, I created a small web app for scheduling project teams at TOPP Labs. At any given time, we've got anywhere between 10 and 20 active projects, so keeping track of it all is difficult, and planning ahead requires a good clear overview of everything that's happening. Why create something new? Good question. Before I started making a custom app, I experimented with a few existing tools. I started with a basic spreadsheet. Then, I tried dedicated project scheduling tools like OmniPlan. While each of these tools got me part of the way there, nothing was exactly right. Spreadsheets were too slow and OmniPlan was too complicated. I really wanted to do one simple thing: drag people around from project to project on a weekly basis -- including the ability to experiment with different configurations. I didn't need to get more granular than "project", "person", and "week", and I needed something that would let me change these parameters easily and quickly.
The inspiration for what I wanted came from my time as a ballboy at the US Open tennis tournament. At the Open, there are 18 courts, ~300 ballpersons, and 4-5 shifts per day. At every shift change, a crew of 6 ballpersons is assigned to each court -- each team consists of 4 "backs" and 2 "nets", and the team makeup (ratio of veterans to rookies, etc) is critical. The staff at the Open manages all this is with a giant magnet board, holding one magnet for each ballperson. Before each shift change, the staff sets up "crews" by dragging the magnets around the board, grouping them, and finally assigning them to courts. It's a perfect system for the job -- just the right amount of detail, and highly visual and tactile. In many ways, that was exactly what I needed. The result is The Board -- a virtual magnet board for managing teams. Check out the demo to poke at it and the project page for code. Enjoy!


I had a great crowdsourcing experience yesterday. Here at TOPP Labs, we're doing a 6-month check-in on our annual employee reviews. What that means for me is a 30-minute interview with each of the folks on my team (about 20 in total), where we look back on the past six months to see how we're doing re: professional goals outlined in the annual reviews. So, today and Monday, I'll be having 20 30-minute meetings, each followed by 15-minutes of write-up time by me. That's kind of a lot to schedule. Here's how it went down:
1) First, I cleared my schedule for today and Monday. 2) "Hmm, I guess I need to ping each person to see when they can meet up. Ugh. Time to procrastinate." 3) "Since I'm out of the office today, it will be super annoying to email every single person from my phone. I'll just write one email to the team list and have each person email me back times that work for them. Nice. Offloading the work." 4) "Wait! Even better, I'll just ask everyone to add their own appointments to the team Google Calendar. Now we're talking."
So in the end, I just had everyone schedule their own meetings on a first come, first served basis. Kind of empowering to just let other people schedule two whole days for me. Plus, the communication overhead went from a lot to zero. Yay for crowdsourcing.

A few weeks ago, I created a small web app for scheduling project teams at TOPP Labs. At any given time, we've got anywhere between 10 and 20 active projects, so keeping track of it all is difficult, and planning ahead requires a good clear overview of everything that's happening. Why create something new? Good question. Before I started making a custom app, I experimented with a few existing tools. I started with a basic spreadsheet. Then, I tried dedicated project scheduling tools like OmniPlan. While each of these tools got me part of the way there, nothing was exactly right. Spreadsheets were too slow and OmniPlan was too complicated. I really wanted to do one simple thing: drag people around from project to project on a weekly basis -- including the ability to experiment with different configurations. I didn't need to get more granular than "project", "person", and "week", and I needed something that would let me change these parameters easily and quickly.
The inspiration for what I wanted came from my time as a ballboy at the US Open tennis tournament. At the Open, there are 18 courts, ~300 ballpersons, and 4-5 shifts per day. At every shift change, a crew of 6 ballpersons is assigned to each court -- each team consists of 4 "backs" and 2 "nets", and the team makeup (ratio of veterans to rookies, etc) is critical. The staff at the Open manages all this is with a giant magnet board, holding one magnet for each ballperson. Before each shift change, the staff sets up "crews" by dragging the magnets around the board, grouping them, and finally assigning them to courts. It's a perfect system for the job -- just the right amount of detail, and highly visual and tactile. In many ways, that was exactly what I needed. The result is The Board -- a virtual magnet board for managing teams. Check out the demo to poke at it and the project page for code. Enjoy!


I had a great crowdsourcing experience yesterday. Here at TOPP Labs, we're doing a 6-month check-in on our annual employee reviews. What that means for me is a 30-minute interview with each of the folks on my team (about 20 in total), where we look back on the past six months to see how we're doing re: professional goals outlined in the annual reviews. So, today and Monday, I'll be having 20 30-minute meetings, each followed by 15-minutes of write-up time by me. That's kind of a lot to schedule. Here's how it went down:
1) First, I cleared my schedule for today and Monday. 2) "Hmm, I guess I need to ping each person to see when they can meet up. Ugh. Time to procrastinate." 3) "Since I'm out of the office today, it will be super annoying to email every single person from my phone. I'll just write one email to the team list and have each person email me back times that work for them. Nice. Offloading the work." 4) "Wait! Even better, I'll just ask everyone to add their own appointments to the team Google Calendar. Now we're talking."
So in the end, I just had everyone schedule their own meetings on a first come, first served basis. Kind of empowering to just let other people schedule two whole days for me. Plus, the communication overhead went from a lot to zero. Yay for crowdsourcing.
My internal dialog went something like: "okay, now my route is merging with Nick's ... oops, now i'm editing Nick's line by mistake, how do I undo that? (random clicking around) ... ok now i'm back to editing my line ... argh, it's going down the wrong street... let's try this way... whoa, why is there a random line floating around in the water? can't seem to get rid of that one... oops, didn't want to put a point there, let's see if i can delete it... click... oops, i apparently deleted all the work i just did on my line, and there doesn't seem to be an undo for that. F**k it."
It's tough UI to get right -- basically you're trying to replicate the vector drawing capabilities of tools like Illustrator, but in a simple way that provides just the right amount of control. Not easy. Safe to say that collaborative route drawing has not crossed over into the mainstream yet.
My internal dialog went something like: "okay, now my route is merging with Nick's ... oops, now i'm editing Nick's line by mistake, how do I undo that? (random clicking around) ... ok now i'm back to editing my line ... argh, it's going down the wrong street... let's try this way... whoa, why is there a random line floating around in the water? can't seem to get rid of that one... oops, didn't want to put a point there, let's see if i can delete it... click... oops, i apparently deleted all the work i just did on my line, and there doesn't seem to be an undo for that. F**k it."
It's tough UI to get right -- basically you're trying to replicate the vector drawing capabilities of tools like Illustrator, but in a simple way that provides just the right amount of control. Not easy. Safe to say that collaborative route drawing has not crossed over into the mainstream yet.
Share Dialog
Share Dialog
Share Dialog
Share Dialog
Share Dialog
Share Dialog