Avoiding The Shelf-ware Trap

Steven NgDesign, Random, SoftwareLeave a Comment

My Graveyard of Organizers

How often have you bought something that was supposed to revolution some pain point that never came into fruition? I definitely have. My best worst example is personal organizers.

Most of my life, I’ve wanted something to help me organize my life from a time management perspective. I’m no spring chicken, so let’s say I’ve been searching for such a solution since being a freshman in high school (1984) and didn’t get the problem completely solved until 2008. That is a total of 24 years before I finally found the ideal solution. If you add up all the money I’ve spent on personal organizers, electronic or not, we’re talking several thousands of dollars, and that’s not adjusting for the current value of money.

In the 80s, it was coil bound agendas (and a Sharp Wizard for a short period of time). By the time I was in university in the early 90s, it was more expensive Dayrunners and Filofaxes. As I began my career, I started with an Apple Newton. Then I tried WindowsCE, Palm Pilots (and their Handspring offshoots), a REX organizer, Windows Mobile phones, etc. Nothing stuck around after the honeymoon period until 2008.

Old Habits Die Hard

The reason why none of these tools (many of which had significant cost) stuck with me is that they involved some habit changes, weren’t convenient, or both. Back in the paper days, you had to carry a pen and the organizer. And the good organizers weren’t very pocketable. The top end Filofaxes back in the day were the size of a textbook. Inconvenient wasn’t even the beginning of it.

Things got a little better as technology got better. My first Apple Newton was pretty big, but smaller than a Filofax. The handwriting recognition was quite abysmal, and the data was for all intents stuck in the device. Things got better with WindowsCE and Palm, as they offered better syncing, but you had limited application support on your computers. You didn’t really have a lot of flexibility.

With the early smartphones, like Windows Mobile (that includes the Palm Treos and Blackberries), things got a lot better. You got syncing with Microsoft Exchange (often for extra cost), so your calendar was at least in Outlook’s calendar. The user interfaces on those devices, however, still made data entry a little slow.

What Happened

The world basically had to change for me to be able to stick with a personal organizer solution. Two things happened.

First, the cloud. Google introduced Gmail and Google Calendar and made the API open and free. You had access to your calendar and email from any device with a modern web browser, and you had access to native applications that used the API. There was now a lot of choice in how you could access your personal organizer.

The second thing that happened was the iPhone. I get that it was introduced in 2007, but that model wasn’t available in Canada. When the first iPhone (the 3G) became available in Canada in 2008, I picked one up. And it was glorious. After more than a dozen failed solutions, I finally found something that stuck.

The reason why it stuck? Habits and convenience. While I still hate onscreen keyboards, it doesn’t take much to input data into the phone. And because my phone is pocketable, I always keep my phone with me. And because I’m using the cloud for storage, I don’t have to rely on just my phone for accessing or inputting data to organize my life.

When the smartphone industry matured, it didn’t really matter what device you used, and I’ve since switched to Android, but I’m still managing my life using a smartphone and a cloud back end.

Who Cares?

So what does my long winded story have to do with shelfware? Well, every single tool I purchased prior to my iPhone 3G became shelfware. The tools were inconvenient and required a habit change that just had too much friction. My little story about personal organizers isn’t limited to just that. I’ve spent a good chunk of my career working in companies that peddled enterprise software, and a lot of the times, that software became very expensive shelfware.

That thought is always front-of-mind when I’m building something. And it was front of mind when Vince and I came up with Assign It To Me.

How We Try To Avoid Making Shelf-ware

Assign It To Me has to accommodate two primary user types. People who do work and people who run projects. Each user type has a very different mindset, so we try to accommodate each of them differently.

Resistance to change is firmly ingrained in human nature, and it affects all of us, whether we’d like to believe it or not. From my experience in the software business, people in the front line don’t like the changes associated with the new software that “management decided would make our lives easier”. Front line workers are already super busy, and aren’t really big fans of administrivia like status reports, time booking and having to use software that tends to make something simple more complicated.

On the other hand, the small population of power users who were instrumental in getting the software purchased and deployed tend to be very hands on and love the software.

With that, you have two different sets of users with different incentives and motivations with respect to a new application.

In Assign It To Me, front line workers, i.e., the people who do the work, don’t want to be bothered with, for lack of a better term, “crap work”. After all, they’ve got real work to do. For these users, we have tried to keep their exposure to the app simple and tight. The “Assigned To Me” view is where we hope they live most of the time, and we’ve tried to make it as frictionless as possible to update time and progress on their assigned tasks. We want these users to be “in and out”. As long as they make a tiny amount of time to update their time and progress, they probably don’t even need to put together a weekly status report of what they’ve done. For a front line worker, having to use Assign It To Me might be a necessary evil, but we try very hard to make it as painless as possible. In other words, what we’ve attempted to do is minimize habit changes and provide a lot of convenience at the same time.

With project owners, we consider them to be our power users. They need (and hopefully love) managing their projects. We offer them multiple perspectives to view their projects, and reports that hopefully help them have a better picture of a project’s progress and health. Of course, the critical path is getting data from front line workers, and as mentioned earlier, we tried to make a system where users wouldn’t hate inputting that data.

We won’t know if our approach will fully work until we’ve had some extensive usage, but we do think it’s a great start, and we hope you give Assign It To Me a try.

How To Avoid That Heavy Feeling With Weighted Tasks in Assign It To Me

Steven NgProductivity, Project ManagementLeave a Comment

Not All Tasks are Created Equal

Let’s say you’re running a small project with 10 tasks, with each task requiring 1 hour of effort by a team member who charges $100/hour. As your project progresses, each task completed represents 10% of your project’s completion.

At first glance, that makes sense. All of your tasks have the same amount of effort and dollar value, so why not? The catch is that each task might have a different value with respect to the actual progress of your project. What if 8 of your tasks are coding, and 2 of your tasks are meetings? Do those two meetings truly represent 20% of forward progress on your projects? Probably not. They probably don’t represent 0% of forward progress either.

Many other project management tools treat all tasks as somewhat equal outside of their effort. When we were creating Assign It To Me, we were trying to provide project owners with some flexibility in terms of deciding how much progress a task can contribute to the overall progress of their project.

The last thing a project owner needs is to get a heavy feeling because they’re not comfortable with the degree of accuracy of their project’s calculated percent complete.

Let Assign It To Me Do The Heavy Lifting

Our solution to addressing the variability of a task’s contribution to the overall project percent complete had to be relatively simple and straightforward in order to balance usability and simplicity.

The mathematical solution was relatively simple— all we needed to do was make the project’s percent complete a weighted average of all of the percent complete of all the project’s tasks. While it would be more powerful for project owners to be able to set anyvalue for a task’s weight by themselves, having to manage such variable values on a large project would be a nightmare.

We basically decided to keep it simple. We have a 6 point scale from 0 to 5 to let you put a relative weight on a task:

  • 0 – Unimportant – This task represents 0% of the project’s overall progress
  • 1 – Much Less Than Normal – This task contributes much less to a project’s overall progress than a normal task
  • 2 – Less Than Normal – This task contributes less to a project’s overall progress than a normal task
  • 3 – Normal – This task contributes a normal amount to a project’s overall progress
  • 4 – More Than Normal – This task contributes more to a project’s overall progress than a normal task
  • 5 – Much More Than Normal – This task contributes much more to a project’s overall progress than a normal task

By default, all tasks in Assign It To Me start with a weight of 3. This way, project owners who don’t want or care about task weight can have equally weighted tasks. In terms of the math, when we calculate the project’s weighted average, we use this formula:

∑(task percent complete × task weight) ⁄ ∑(all task weights)

We use the same 0 to 5 scale for task weight in the calculation. So a 0 weighted task that is 100% complete represents a 0% contribution to the overall project’s progress. A completed task weighted at 5 represents a (5 x 100%) / ∑(all task weights) contribution to the overall project’s progress.

A Note On Folders

Note that folders do not have a user-defined weight. From a project perspective, folders are simply containers for tasks. They have no bearing on any aggregation calculations made by Assign It To Me.

In a task list view, folders will show a calculated percent complete that is the weighted average of all of its tasks, including those in subfolders. Folders do not impact the calculation of the project’s weighted average.

Weight In Practice

So how can you apply this in a real world project? Here are some ideas:

  • You can create milestones like sign offs in your project by creating 0 weighted tasks
  • You can reduce the progress contributed by meetings by setting them to 1 (Much Less Than Normal)
  • You can make some simpler but more critical tasks very important by setting them to 5 (Much More Than Normal)

Also, while our labels for the weight values are sensible defaults, remember that they are still 0 to 5 weightings mathematically. A power user can always choose to ignore our text labels make the numbers mean something else for you. For example, if you make a weight of 2 mean “normal” with respect to your particular project, a task with a weight of 5 will make a much larger contribution to your project’s percent complete.

Remember, we are defaulting every task to 3, so you don’t have to use weighting if you don’t want to. We do, however, hope you take advantage of this feature in Assign It To Me, because it’s a pretty unique and powerful feature.

Proof of Work

Steven NgCommunication, Productivity, Project ManagementLeave a Comment

Progress versus Proof

In developing Assign It To Me, we had a lot of interesting discussions about the definition of “What am I working on?”

In our previous life, the only way we got the answer to that was to either have your team send you a status report (which nobody liked to do) or to ask them. Both methods were a bit of a time suck. Your team members want to work on what they’re working on, not waste time on status reports, meetings or calls. And the team leads would rather not waste time gathering this information, since there were bigger fires to fight.

On the surface, it sounds simple. If you update the percent complete, you worked on it. Easy peasy. Right?

Wait, Not So Fast

Well, of course, things aren’t so simple. A team member can game the system by tweaking the percent complete progress even if no progress has been made.

But remembering that Assign It To Me is designed for companies that do time based billing, we realized that booked time on a task is a more authoritative piece of proof that work has been done. That time is an artifact that is highly likely to show up on an invoice to a customer. This proof of work, so to speak, was the best way to know what someone worked on.

Damned If You Do, Damned If You Don’t

Of course, there’s yet another catch. Time bookings generally happen in the past. They don’t tell you what someone is working on now. And what does now mean? Does it mean the current moment? Does it mean today? Any mechanism to track what is being worked on “now” needs to provide some flexibility since now in your company might mean something else in my company.

I’m Working On…

We recently added a “working on” flag that you can set on any task assigned to you. The intent of this feature is for you to be able to say “I am working on this today”. This gives your manager or project manager the ability to see what you’re working on without having to ask you. We also plan to use it in Assign It To Me’s status reporting. It also lets you prioritize your current work for the day.

This Working On feature will be appearing in Assign It To Me in the coming weeks, and we think you’ll like it.

Boring, But It Works

Steven NgDesign, SoftwareLeave a Comment

Hot or Not

If I surveyed a hundred people about how pretty our user interface is, I would bet that about half would say “meh”. And that’s OK. Assign It To Me is boring, but it works.

First off, beauty is subjective. Beauty can help sell, but beauty won’t keep customers around. If it did, enterprise software in general would not be nearly as ugly as it is today.

Assign It To Me is made by two people. We’re bootstrapped. Right now, we don’t have money for a designer. Because of that, we went all in on a web ui (user interface) framework to allow us to develop an application quickly without it being horrifically ugly.

For us, flow and functionality come before beauty. If we can get those two things right, people will use our application in spite of the fact that it doesn’t have a glossy finish.

From Here To There

The web ui framework we adopted was Angular Material, which is a fast way to build applications that match Google’s Material Design look and feel. Google made Material Design multi-platform, and to our eyes, it was a decent foundation to get from point A to point B. As I was coding our Assign It To Me client, I could focus on flow and functionality while leaving the cosmetics to the canned modules of the Angular Material library.

But something happened along the way. We got to point B. Our app hit 1.0, and was starting to feel some growing pains with the Angular Material library. On large lists, we were seeing some performance issues that could become showstoppers. Because AngularJS has a reputation for being slower than ReactJS, my first inclination was to blame Angular. After further digging and some luck, we found out the bottleneck was Angular Material and not Angular itself. Our task lists are information dense, and each row has a menu. This menu (md-menu in Angular Material speak) was slowing down our page rendering big time.

Once I found the root cause, working around the issue was a lot easier. But in the process, we’ve moved away from a lot of Angular Material’s components in favor of our own.

Firmitas, Utilitas, Venustas*

Now that our app is stable in terms of flow and function, we are going to start making cosmetic improvements to the application. This won’t happen overnight. These improvements will be gradual and sensible. Once I’ve confined the use of Angular Material to some core modules, it will be easier for me to make these changes, because I’ll have fewer constraints, and won’t be beholden to as many breaking changes with Angular Material library updates.

As much as I would have loved for 1.0 to be splashy and flashy, it would have just slowed down development. Many of our better features were nothing like the original designs. A lot of trial and error while dogfooding the application produced a lot of design improvements. But now that the skeleton of the application is solid, we’re going to build on it in a big way. By the time we hit 2.0, I want the description of “boring, but it works” to be replaced with “works beautifully”.

firmitas,utilitas, venustas means solid, useful, beautiful

Wheels, Mousetraps and Other Clichés

Steven NgProject Management, SoftwareLeave a Comment

It’s A Matter of Perspective

In just about every possible discipline, “reinventing the wheel” is considered a wasteful use of time and effort. To coin another cliché, what you really want to do is “build a better mouse trap”. The problem, however, is that those two clichés describe the same activity. A lot of people who are criticized for reinventing the wheel are could just as easily be complimented for building a better mouse trap.

When we built Assign It To Me, we knew there were tons of other successful, well-made project management tools out there. Vince and I had a particular way of doing things, and none of the tools we tried were really optimized for that. For the longest time, we used a bug tracking tool (Fogbugz, in case you’re wondering) for managing billable project work. We still use Fogbugz today, but we actually use it for what it’s designed for— tracking bugs in Assign It To Me.

In the end, we wanted a project management tool that we would love using every day and prevent our projects from losing money. From one perspective, you could say “that wheel has been already reinvented many times”. From our perspective, however, we thought that “there has to be a better mousetrap”… one that works the way we do. So we built it.

Horses for Courses

So why don’t we use Assign It To Me for tracking bugs? Assign It To Me can certainly do that, but we like to use the best tool for the job. While we developed Assign It To Me with an opinionated design, we still made it flexible enough to accommodate multiple working styles. Even between the two of us, Vince and I have vastly different work styles in certain circumstances.

I personally use Assign It To Me in ways that don’t match its intended purpose. While Assign It To Me might be best for billing companies, at its core, Assign It To Me is still like many other project management systems. While we regularly add useful features, we do only try to do one thing well— allow billing companies to manage the profitability of their projects. Some of our features support that, and some of our features overlap with other products, like our time tracking.

But I’ll be the first to tell you, there are a lot of one-trick-ponies out there that can do things like time tracking better than us. And that’s OK. We think that we do profitability better than a lot of other project management solutions out there, because that’s where our primary focus is.

One Thing Well

We’re a one-trick-pony too. Our focus is on project profitability. Sure, our pony’s one trick is actually made up of a bunch of smaller tricks. Those smaller tricks aren’t necessarily mind blowing on their own, but put together, Assign It To Me is greater than the sum of its parts.

It’s not our goal to be the best insert feature here out there. There are a gazillion other products, products that do one thing well, that are better than Assign It To Me at insert feature here. Our position on these features is to provide a minimally viable set of functionality so that a company that doesn’t already have a tool doesn’t have to buy or subscribe to one.

If you try to be everything to everybody, you’re only going to end up with a gigantic piece of bloatware. It’s a slippery slope, because users are always going to demand more. Instead of becoming a giant piece of bloatware, we plan on building out an API for Assign It To Me to let our users integrate with other one-trick-ponies who are best at what they do.

Our Better Mousetrap

Assign It To Me is our mousetrap for project profitability. That might change in the future, if our user makeup is not what we expected, but that’s our goal for now. You can still use it if you don’t care about project profitability, because the same things that lead to project profitability lead to successful project completion. And Assign It To Me provides a strong foundation for running successful projects.

We’ve been hard at work improving our mousetrap to accommodate different work styles too. Our latest version now lets you toggle among new project views— a Kanban-like panel view, an Excel-like worksheet view and a beta Microsoft Project-like Gantt view. Check it out, we think you might like these new views.