Simplify Requirements by Rejecting Boolean Questions

Mar
29
2009

My current big project is a rewrite of a platform that has 3 predecessors, all of which are still running, with implementations on them. The original gig was to dig into 2 of those platforms to get them back to running because all of the existing developers had left. Back in December, we were asked to tackle writing platform number 4.

One of my “rules” of software development on any project where I have a say in such matters is “You don’t get to rewrite it unless you understand it.”

That one made it on my list because of how common it is to watch software developers take a look at code some other developer write for 15 minutes only to declare it “crap” and in need of a complete rewrite. When challenged to explain what the offending library/package/application does, most can’t. That leads to a near 100% certainty that the rewrite will miss some large requirement or miss something subtle but important in how the original works.

So, as we set out to rewrite this mess, we wanted to make sure we understood what those older platforms do. We read all of the original requirements, dug through data structures and code, talked to the people who helped define the requirements on the original, etc.

One of the common threads that went through everything related to all of the implementations was the overly complicated ways that things were done in an obvious attempt to accommodate a wide variety of permutations. However, the complexity actually got in the way of accommodating those same permutations.

As we worked through the features that would be in the initial version of version 4, we pushed back on every assumption we could, hard. It’s something I’ve always done to one degree or another. On this project it’s been with more discipline than in the past.

Now, 4 months later, that has proven to be a critical strategy. That’s because optimizing your thinking about the problem and how you’ll solve it leads to orders of magnitude more productivity than most software tools.

If you add up the time spent actually typing code into an editor or IDE, compared with time spent trying to figure stuff out and otherwise spent thinking, it’s probably 30/70. That means that even if you had tools that could read your mind and instantly do exactly what you wanted, you’d only speed things up by 30%.

In trying to get other people to push back the same way, I’ve struggled to describe it in the kinds of rules that people un-used to doing this kind of thing (beginners in the Dreyfus Model). This week, one common factor in many of these situations popped out at me (Strategic Intuition at work). When subject matter experts asked us questions that would have led to complicated messes, they were almost always expecting a boolean answer.

They were questions like:

  • Can this new platform do X?
  • Will it have feature Y?
  • As a user of this system will I be able to do this specific task?
  • Can you guys make it do Z?

While those questions can be answered, often easily, doing so almost universally is the wrong thing to do.  Under those kinds of questions are giant piles of assumptions. When you answer these questions without probing deeper, you validate ALL of those assumptions without ever knowing what they are.

If, instead, you play the 3-year-old and ask “Why”, you can drill down into those assumptions. You can discover that many of them can be set aside or rendered moot by a much simpler design. And those that stand up to the incessant “Why” are worth keeping and now you have a much deeper understanding of what’s driving the feature request.

Of course, it’s an added perk that rejecting a black/white view of an issue fits in well with the Glass Too Big philosophy too. :)

The Secret of Success: Bad Economy or No

Feb
17
2009

There are a few things that are pretty much certain whenever economic clouds form on the horizon. One is that people enroll in community colleges/vocational programs and that every newspaper, magazine, TV show (and in the last 15 years, web site) starts cranking out articles on how to keep your job, get more business, etc. in "these troubled times". Many of those articles make it sound like they're sharing some deeply held secret that's been locked away in the vault since the last downturn.

However, the thing is that the stuff that garners success is the same1: Adding Visible Value. In the business/career areas of life, if you focus on that for 80% of your effort, you'll be surprised how well things turn out.

What exactly do I mean by Adding Visible Value?

Lets start with how every economic exchange works. First, there must be something which is, to one degree or another, scarce. That scarcity can be obvious and straightforward, like rare elements: gold, silver, platinum. Less obvious at first glance are the instances of scarcity like 1-on-1 access to arithmetic instruction or getting to see a sporting event not on free-to-air TV.

However, in all cases, there is something which is limited and someone who is the gatekeeper of that scarce resource. If you want what's on the other side of the gate, you've got to pay the gatekeeper. And, depending on how many people are standing at the gate with you (demand), the gatekeeper's price changes.

Of course, as people pay to get access to the scarce resource, they may not be paying a whole lot of attention to what they just got. So, as they're walking away, they may start to question why they're paying that gatekeeper at all. They may start asking other patrons or just themselves whether they're getting their money's worth. And, if the answer is "no", they're likely to quit paying the gatekeeper.

Now most employees and many businesses (that means you and I) are the gatekeepers of a scarce resource: our time. As we build a career/business, we fence off a portion of our time and offer access to it, for the purposes of applying it to specific tasks, in exchange for money and some non-tangible stuff as well.

There are only so many hours in a day and a certain number of other people attempting to sell blocks of time working on the same tasks. Thus, the marketplace where we earn our salary, hourly wage, billable rate, etc.

The key is that when that exchange happens, we have to actually add something worth buying to the equation. If you put in 8 hours and earn whatever 8 hours of your work is worth, is the person who paid for it actually getting something for that money?

In some jobs, that can mean that you were present. In some, that you attached a certain number of doors to cars. In others, that you served meals to customers. For me, it's that I solved problems for my client using software.

Now, I know that some of you are saying that you DO deliver that value, day in and day out and still find things not working out. I used to say the same thing, until someone pointed out that no one KNEW that I put in that effort. No one knew that I rewrote the entire malfunctioning module myself overnight to get it done on time.

My efforts were real, but invisible. The person paying for my efforts wasn't seeing them. When I started focusing on both delivering value and making sure that the person holding the checkbook was aware of that delivered value, my working life started clicking MUCH better.

Yes, you can still get laid off or lose a client when doing this (in the United States, you're more likely to lose your job because of something outside of your actual performance than for actually not doing your job). However, among those people I watch who lose their job, but work hard to deliver visible value, they seem to land on their feet more soundly. They tend to find a new gig more quickly and otherwise just have more success, even in bad times, even with periodic failures than those who focus on making sure they are getting their "fair share" out of the equation.

Since taking on this attitude, I find that I am always busy with work. Currently, I'm actually so overbooked (on track for 300 billable hours this month instead of my normally budgeted 167) that this site and nearly all of my online activity has dropped to a standstill. That, despite some of the people holding the checkbook laying other people off, doing paycuts, etc. Why? Because it's clear to them that I am providing clear-cut value for every dollar they're paying. They get functioning software solutions to the problem at hand.

1Sure, at the edges there are opportunities that change a little bit, but on the whole, it IS the same.

ORDER BY BiggestProblem DESC

Oct
21
2008

I caught a little snippet on NPR this weekend that fits in well with what I've been hearing a lot of on the radio, TV, newspapers and the like. They were interviewing someone who was making drastic changes to their life and spending due to a loss of one of the family incomes.

I had a lot of reactions that made me wonder how they afforded their previous lifestyle if the loss of a part-time job led to things like moving into the cellar to avoid heating the rest of the house. Lots of these stories on TV and radio and in magazines make me wonder how many of these are stories that happen every day, bad economy or not, but we now have crowds of journalists digging to find them because it makes for a good story now.

Digressions aside, one of their cost-cutting measures stuck out at me: dramatically altering what they wear to get down to only one load of laundry a week. What I heard sounded like there was a lot of effort for this and hit me funny because we got a new washer and dryer a couple of weeks ago and an image of those yellow EnergyGuide cards from both popped into my head.

The washing machine's card estimated that our ANNUAL energy cost for both electricity and gas (for our hot water) was . . . $11. That's right. Less than a buck a month to wash all of our clothes.

I'm not going to pretend that I understand their situation, but, if we needed to find an extra $1000 or even $2000 a month to scrape by in tough times, it's pretty clear that OUR laundry isn't a gold mine of wasted cash, just waiting to be tapped into.

Whenever I see huge effort going into places where it isn't going to pay off proportional to that effort, I start thinking in SQL. To me, given the amount of data I work with on a daily basis, it's entirely natural to take all of the expenses and ORDER BY the biggest expense when it's time to start cutting.

And, if a quick look at the top of that list doesn't reveal much, a quick ORDER BY "least important" works as well to reveal the easiest cuts.

This approach is something that's impressed me with how the Bill and Melinda Gates Foundation went about choosing the areas to attack first. Everything I've seen about that process says that they were pre-occupied with choosing problems that affect the lives of the highest number of people. They did an ORDER BY "number of people who die from ???" on the giant spreadsheet of problems in this world.

When I go out of my way to consider a problem or situation through this lens, I often end up with a much more obvious place to start my solution. I think this pattern is really powerful. Imagine going through your typical cubicle farm and following this simple process:

  1. Ask everyone the following questions:
    1. What is the most tedious computer-related task you do daily/weekly/monthly?
    2. How much time do you spend on it?
    3. If that task wasn't yours to do any more, what project that isn't being done now would you be able to do instead?
  2. Compile those results, along with salary-type information and start doing ORDER BY's to see what the most tedious, time-wasting tasks are actually costing.
  3. Start tackling the top of the list with a portion of your IT budget.
  4. Act on that list of projects that aren't being done by enabling people to get moving.

Imagine how many thousands of hours, tens of thousands of dollars are being wasted on things like manually comparing 2 reports, line by line for discrepancies because there isn't a reconciliation report that SHOWS the differences.

Imagine how many good ideas for projects, ideas for improving your business, for making a better product or offering a better service are stagnating in your cubicle farm. And, imagine that, after eliminating or reducing these tedious tasks, instead of laying people off, you reinvest that previously wasted time into those ideas and project.

I have to wonder how this little exercise might affect an organization's position in a tough market.

Handling Pro Bono and Discounted Projects

Sep
01
2008

A few weeks ago, I was reading this article on 30 Ways to Create an Incredible Client Experience and I thought about something I started doing a while back. It actually seems counter-intuitive at first, but turns out to actually improve the experience on projects where you're charging less than your full rate.

From time to time, I do a project or a portion of a project for free. Some are for friends or family, some for charity and sometimes I have some hours that I don't bill for because I screwed up.

When I first started out, I would do that free or discounted work and it would never be mentioned again. Then on more than one of these projects, things were just sort of sour.

On one, someone was upset that the project was late (I was too), and I'd actually put in a ton of unpaid work over a couple of months to get it done and we still didn't make it in time. The client made a comment that hit me hard. He was looking at my bill, which only included the first 40 hours of each of those weeks and said, "Maybe if you'd been willing to put in more than just the minimum effort, we'd have launched on time."

Right there and then, I realized how important perception and visibility are to a project. Later on, as I read more about marketing, human psychology, etc. I learned a bunch of things about the way people view "free". Further experience taught me that if the value wasn't visible, people will invent a number in their head. And, if the number they come up with on their own is closer to what you pay the neighbor kid to mow the lawn than to what they pay their mechanic, you're in trouble as a tech professional.

A few years ago, I was having a conversation with another consultant and was complaining about how a pro bono client I was helping seemed decidedly ungrateful. He told me that he billed even the free stuff and just discounted it. He went on to tell me to ask this particular client how much they thought they were getting for free.

I followed up on that suggestion and discovered that the non-profit in question thought that the web work I was doing would cost about $300 on the open market. Problem was that I'd given them the same amount of time that my paying clients pay well over $5000 for. Clearly there was a mismatch.

So, what I do now is to shine a light on that free and discounted time. If I'm doing some geeky work for someone that goes beyond a quick phone call or a chat over a meal, I write up the time spent at my normal market rate. I then apply the appropriate discount. That means that if the whole project is free, there's a completely normal project invoice, with a 100% discount applied.

That's something to think about for those who are starting out doing web or design or other work where the common advice to break in is to do a project for cheap or free to build your portfolio. That advice is frequently criticized because it can lead to either that first client or everyone they refer to you expecting the same cheap deal. If, however, you bill that portfolio building project and just discount it, the point that it was a one-time deal is much clearer. You can even name your discount to nail the point home.

I also do this for the kinds of things where I either screw up (I'm the first to admit that it happens) or need to a bunch of research and don't feel ethically right billing for it. I did it a couple of months ago, where the actual bill for the month was something like 22 or 24 hours and I included another 8 that I discounted 100% because I spent an entire day rebuilding the staging server after I messed it up by trying to take a shortcut.

Given that we had had conversations about the delay, putting it on the bill made it clear that I had really made an effort to rectify things. It also showed that I had skin in the game for the problem.

It's really all of those various reasons that have reinforced this technique. All kinds of assumptions and underlying miscommunication gets cleared up when this stuff shows up on a bill. I'm really still quite amazed at how well it diffuses bad blood on both sides.

If you've got frustrations with or have held back from doing discounted work because you aren't sure how to handle it, this approach is worth thinking about. It works great for me.

Skill, Passion and Market: Make Money Doing What You Love

Aug
11
2008

At some point, you've probably found yourself hating your job, dreaming about your hobby and how great it would be if THAT was your job. If you voiced that desire to someone else, there's a pretty good chance that you heard one of the favorite lines of motivational speakers and self-help authors the world over: "Just do what you love".

The sentence is usually accompanied by anecdotes of riches-to-rags-to-riches stories of high power lawyers who quit their jobs to make a new form of jewelry that turns out to be the next big thing and ends up happy and even richer than before.

Unfortunately, that's the kind of advice that leads people to believe that they can turn their hobby directly into a business. Nevermind that it's extremely difficult to make a living directly doing most unmodified hobbies. Writing poetry, keeping fish, painting landscapes, taking still life photos, playing jazz piano, etc., etc., etc. are all things that people do, indeed, make a living at. However, there are hundreds of people who would LIKE to do those jobs for every one that actually does.

I've seen more than one person get all charged up by this and start drawing up plans to jump right into directly turning their hobby into a business or a career. That's because they didn't have all of the pieces necessary to make money doing something you love: Skills/Talent, Passion and Market.

Ticket To Success: Talent, Passion, Market

Passion
This is the part most people start with: Stuff I Enjoy. If you're going to spend a large portion of your days and weeks in an activity, you have to actually enjoy it. Seems obvious, I know. However, it's something that more than a few miserable people ignore when picking a career or field. They see people making a bunch of money and jump in.

If there's an area of life that you already have a passion for, you're far more likely to have put in enough effort to have a pretty good foundation.

If I were starting from scratch and looking for a career, I might look, things that meet this criteria might be: writing software, watching movies, drawing, writing fiction, trivia, playing guitar, singing, photography, and reading.

Skills/Talent
In order to make decent money at anything, it needs to be in the set: Stuff I'm Good At. While there are some exceptions, people who make a living at something despite being below average at it, if you start out at least a little bit above average in your talent and skill, you won't be fighting a headwind.

If I look at my list of Stuff I Enjoy, it's clear that there's not a 100% overlap with Stuff I'm Good At. I'm a pretty good software developer and a decent photographer. However, at playing the guitar, singing, and trivia, I'm actually average at best and am not a very good movie critic at all.

Market
This dimension is probably the one that's least included in these discussions. In order to make any money at anything, it needs to be Stuff People Pay For. The market isn't exactly clamoring for another Great American Novel about the coming of age of an awkward teenager or a 32 year old guy who plays video games, or someone who reads all day. Neither is the market falling all over itself to buy my little experimental Flickr API client in C#.

The Sweet Spot
Now, there are plenty of things that overlap in 2 of the 3 circles. I was a decent technical writer and the market was there for it, but it turns out that I don't actually enjoy it. I enjoy photography and am pretty good at it, however except for wedding and high school senior portraits, there isn't a huge market and the market that DOES exist is much smaller than the supply of people who want to do it.

Whenever you don't have all 3, you're looking at a situation where you'll be fighting uphill the whole time. However, when you find something that lands in The Sweet Spot, you've got something that you can really run with.

In my case, developing custom business software is The Sweet Spot. I enjoy it, I'm good at it and there's a market. Now, of the software that I aim to write, business apps aren't what I'd write if money were no object. That stuff I write in my spare time. Because I know there's not much market demand, I don't try to push it.

The added benefit to specifically seeking out the sweet spot is that it's highly unlikely that the thing you enjoy the MOST is what will end up in that little patch. As such, your day job ends up being enjoyable, but the thing you really enjoy is saved from the destruction of your intrinsic motivation.

In short, if you're dreaming of a new career, and it doesn't land in The Sweet Spot, you might want to re-think your dream.

« Older Entries  

J Wynia

For better or worse, I'm the guy who runs things here. I'm a web consultant, software developer, writer and geek from Minneapolis, MN. This site is a fairly wide cross-section of the things I'm interested in and enjoy writing about.

Oh, and if you happen to be looking for hosting for your Subversion repositories or just web hosting in general, take a look at Dreamhost. It's what I use for Subversion and your signup helps me out.

Feeds and Links


www.flickr.com
This is a Flickr badge showing public photos from J Wynia. Make your own badge here.

Search


Pages

Archives

Computers Blog Directory
© 2003-2009 J Wynia. All original content is licensed under the terms of the Creative Commons Attribution license unless otherwise noted. Content from other sources is licensed under its original terms.