Do you need a smart customer?

I consider myself something of an amateur photographer (yes, in case you're wondering, the photos are mine, be they ever so humble).  By amateur, I mean in part that I've learned enough to know where I stand against the ranks of really good photographers.  Among other things, I've come to understand that there's a lot to learn about photography before you can really hope to be good, but I also understand how people come to believe that they can be pro photographers just going out and snapping up the latest and greatest hardware.

The advent of digital cameras made photography accessible to a lot more people by making photography cheaper and easier by a pretty huge increment relative to film photography.  Once you've bought a camera, it now costs next to nothing to go out and shoot a couple hundred pictures in a day.  Since you can see your results immediately, you can also make changes to settings or composition in real time, which massively increases a new photographer's learning curve.  Bottom line: you can go from zero to decent in a very short time.

"And what," you might be asking, "does this have to do with software?"

One of the problems facing both photographers and software professionals, it turns out, is that it's pretty difficult for an uneducated consumer to tell the difference between "passable" and "really good".  This morning, I read a really interesting article by Scott Bourne: And You Call Yourself a Professional? In this article, Scott bemoans the fact that there are budget photography "pro's" who are dramatically undercutting really good photographers, producing mediocre results for the client and, in Scott's words, these proto-pro's are "dragging down an entire industry."

My first reaction, of course, was that this is one of the fundamental problems in our industry, too.  Good developers can spot bad developers a mile away, but customers and employers can't do this -- at least, not until they've become somewhat educated in the intricacies of software development.  This is one of the key ideas in another one of my recent posts:  Fixed bid isn’t nirvanna.

Is it really reasonable to expect that bad photographers or software developers are going to take themselves out of the market?  Not really.  In a well-functioning market, they're either going to improve or be driven out of the market, but they're certainly not going to experience a crisis of conscience and change their ways if customers are buying this stuff.

Instead, Scott's “We fix $500 wedding photography” idea is probably a lot more effective.  Customers need to understand how they're affected when they bite on low-ball services, but this is no small feat.  Think about it: if a customer is shopping for a deal, you're going to have a hard time explaining to them exactly what can go wrong by taking short cuts.

In photography, there's a misconception that since cameras can set exposure, aperture, and focus automatically, it's impossible to take a bad picture, but it's less clear how photography is elevated to art.  In software, a customer can see an application that appears to work, and have no idea that the system is riddled with technical debt that will make future maintenance and extension a nightmare.

I'd love to think that we could educate customers on a massive scale, and in the process, drive out bad development practices because no customer would ever tolerate them, but I'm coming to understand that sometimes, a customer just may not be experienced enough to understand why you're a better value than the "cheap" service.

How are you educating your customers?

Reblog this post [with Zemanta]


It's CodeMash time again, and once again, I'm taking notes on my Adesso tablet, and uploading them with Evernote to a CodeMash public folder.  You can see all of my scribblings there as I sync and once again, I'll have some posts to follow based on what I'm seeing here.  There have already been some really fantastic sessions.
Update:  If you look at these notes, you'll immediately see two of the most troublesome issues (for me, at least) with the Adesso pad.  First, this pad uses a regular 8x11 pad of paper that's clipped onto the Adesso pad.  This part is actually pretty great, because I don't need special paper to record notes.  In fact, I almost ran out of paper during the conference.  With other pads, I might have been done at that point, but with the Adesso, I could (in a pinch), just flip the paper over and write on the back, or grab a flyer or whatever other standard paper might be laying around.

So what's the problem?  The pad can slip.  If there's any play in the pad on the Adesso tablet, the writing becomes pretty illegible - especially on the bottom of pages.  This is pretty apparent in a few spots in these notes.

The other big problem is that it's really easy to record right over the top of a page that's already got notes on it.  I've now gotten into the habit of advancing the "electronic" page when I flip the paper page - this bit me regularly for a while after I bought the tablet.  Last week, though, I fell victim to another variation on this theme -- the "page forward" and "page back" buttons are located on the left edge of the tablet, and being a lefty, I bumped them accidentally a couple times.  Without realizing it, then, I moved the "electronic" page back to one that I'd already recorded, and just kept right on taking notes, resulting in a double-exposed page or two.

Choosing a Linux Distribution

A while back, a friend asked me some questions about getting started with Linux.  He wanted to know specifically whether he should pick up a copy of RedHat at the local retailer -- for  something on the order of $80.

I sent him back some notes about choosing a Linux install (distribution, or "distro"), and thought there might be some information here worth repeating.  Incidentally, you might find it worth trying a Linux Live CD (see below) even if you don't think you're a Linux person just to see how your hardware performs with another operating system - it can be eye-opening.

[callout title=Gnome or KDE?]When you start looking at distros, you'll immediately notice that most identify themselves as either a Gnome distro or a KDE distro.  Gnome and KDE started out as window managers, which meant that they were responsible for displaying, styling and managing the User Interface.  Over time, though, both have turned into extensive library installs, much like Microsoft's .Net framework.  If you install a lot of applications, you'll eventually end up with most of both frameworks installed, but only one of them (at a time) will actively run your UI.  In any event, you should try one of each and see if you give a hoot which one you use.  Read more about them here[/callout]

Don't install yet...

Before you install anything at all, you can play with a one or two versions of Linux to see what you like about each of them.  The easiest way for most people to do this is with a Live CD.  A Live CD (or DVD) is a bootable image of an operating system.  Just download the Live CD image (this will most likely be an ISO file), then burn the ISO file to a disc.  Leave the disc in your optical drive, reboot your computer, and make sure your computer is set to boot off the optical drive before it boots off your hard drive.

If you followed along to this point, you should see Linux booting off the disc you just created.  It'll start up, detect most of your attached devices, acquire a network address via DHCP, and you should end up with a working Linux desktop in just a few minutes without making any permanent changes at all to your machine.  When you're done, just eject the CD and reboot back into Windows.

... or don't install at all

The other way to evaluate Linux distros is with a Virtual Machine.  Both Virtual PC from Microsoft and VMWare (Player or Server) are free, and both can be incredibly valuable for testing, development, and so on.  Between the two, I'd pick VMWare -- it's fast, stable, and widely supported.  Plus, if you choose VMWare, you can download pre-built images from their Appliances site.  This can be even faster than using a Live CD once you've got VMWare installed.

The family tree

OpenSUSE 11.1, KDE 4.
Image via Wikipedia

There are probably thousands of Linux distributions, or distros.  For some sense of scale, see this list or  Despite these numbers, there are relatively few popular distros, and almost all of them have been formed by "forking" an existing distribution.  Thus, any distro you pick will come from a small number of "root" distros.  Take a quick look at this diagram to see what I'm talking about.

Although the specific lineage you pick shouldn't matter much, you'll usually see support articles refer to instructions for one or more of these roots, so it's helpful to know if you're running a Suse-based distro, or a Gentoo-based distro, and so on.

For what it's worth, the most popular general-purpose distro right now is probably Ubuntu, so if you're absolutely flummoxed right now about where to start, that would be a fine one to begin with.

But what about RedHat?

If you've made it as far as firing up one or two distros, you'll realize that you're not going to get much in the RedHat box that you don't get for free somewhere else - after all, that's the Linux way.  If you still see something on their feature list that you want to pay for, go ahead, though - at least you're an informed buyer now.  Of course, if you insist on buying a distro, Suse's enterprise distro is probably worth a look, too.

Reblog this post [with Zemanta]