Home

About Eric

RSS

Complete Archive




My Favorite Books

Series:

Source Control HOWTO

Marketing for Geeks

The 22 Immutable Laws of Marketing

The Business of Software

WPF 3D

Topics:

Software Development

WPF

Business

Laughs

SourceGear


Related Sites:

www.NotALegend.com

www.SourceGear.com

www.Teamprise.com

     

More on the sad state of print publishing for developers

People usually think of SourceGear as "Eric Sink's company", but that's only half true.  My business partner Corey Steffen has the same ownership that I do -- he's just not as loud as I am.

Because Corey is sort of quiet, most people don't know much about him.  Here's a piece of information that I think is interesting:  Corey is an amateur farmer on the side.

Yep, Corey spends his days running a software company and his off hours running a small farm.  So he comes to work with stories about chickens and sheep and horses and pastures.  Oh my.

(It is interesting to note that Brian Harry, creator of SourceSafe and Team Foundation Server, also has a passion for farming.  So Corey and Brian are two data points that suggest some sort of a pattern involving version control and agriculture, but I dare not try to extrapolate.)

Anyway, since Corey's life is such an odd juxtaposition of two extremely different pastimes, folks here at the company tend to make the occasional joke about it.  In fact, Corey has been the recipient of merciless but harmless teasing here for over a decade now.  For some reason, the subject just never gets old.  When we get together for our company lunch on Wednesdays, a joke about Corey getting up at 4:30am to clean out the horse stalls before he comes to the office to clean out the bug database is probably a sure laugh.

Continuing in this fine tradition, one of our guys recently found the following promotional card and brought it in for a quick joke at Corey's expense:

"Hey Corey, I thought of you when I saw this magazine.  Maybe you should pick up a copy?"

That was funny.

And it got even funnier two seconds later when Corey admitted that he was already a subscriber. 

The next day, he brought in his copy of the most recent issue:

I would like to be able to say that I took this in stride.  After all, I've known for years that Corey keeps chickens.  I still remember back in 1997 when Corey joined the company he told me that his chickens provide them with 18 eggs every morning.

How does a family make use of 18 fresh eggs EVERY SINGLE MORNING?

Anyway, seeing this magazine left me speechless.  In part I was surprised by yet another Green Acres moment from Corey.

But mostly I was just shocked that this magazine exists.  I mean really.  An entire print publication for people who raise chickens as a hobby?  That's what I call a niche.  How does the publisher survive?

More to the point, how can this magazine be successful when Dr. Dobb's looks like it might be pushing up daisies sometime before the World Series is over?  Dr. Dobbs is arguably the most prestigious developer magazine in our industry, but it hasn't been looking any too healthy over the last year or so.

It's gotta be all about market penetration:

  • In very rough and round figures, there are 3 million software developers in the United States and 1% of them are subscribers to Dr. Dobbs.

  • I have no idea how many people raise poultry in their backyard, but I suspect my freshman chemistry class had more people.  However many it is, I bet well over 50% of them are subscribers to the magazine shown above.

Most software developers no longer use content in paper form.

Andy Brice recently commented on the poor sales of Charles Petzold's book on WPF 3D.  This is another sign of the major shift in our industry.  Petzold was maybe the last of his breed.  Most authors gave up years ago on the idea that they could make a living from writing alone.  Until quite recently, Petzold was one of the few who still did, and now even that appears to be changing.

Software development magazines and books are dying.  You already know this.  I already know this.  But I continue to be amazed at the pace of this change.  People resist change.  Billions of dollars of VC money has been lost by overestimating the willingness of people to embrace change.  In this case, I have underestimated it.  Looking ahead ten more years, I wonder how much smaller the "Computers" section at my local Borders bookstore will be.

They'll probably just fill the extra space with a bunch of titles about backyard livestock management.


 

A Case Study in Bad Marketing

OK.  Before I explain why Asus deserves to be mentioned in marketing textbooks for its horrible management of the Eee brand, let me first say that I love my Eee PC 901.  I've had this little device for a couple weeks now, and it's just a really great product.

  • The battery life is outstanding.
  • It takes a few days of use to get accustomed to the keyboard, but after that, it's quite usable.
  • I wish the Mac were available in this form factor.  (Yes, I know about the MacBook Air.  That's not even close to what the Eee is.)
  • I'd prefer Linux, but I've got the XP version.  At some point, when Ubuntu Netbook Remix is ready to work smoothly on this thing, I'll probably repave.  But for now, everything Just Works, and I don't want to lose that.
  • I got this device to replace my day timer, not my laptop.  I don't really do any serious work on my Eee.  It's a portable web browser and email client.  Visual Studio is not installed.
  • OTOH, I'm thinking that for my next trip, the MacBook Pro will stay home and the Eee will go.
  • I know the 10-inch netbooks are gaining in popularity, but for me the 8.9-inch form factor is much better.  The MSI Wind is a lot bigger.  The Eee is so small I can (and do) take it everywhere.  The 10-inch models remind me of a laptop.
  • For me, the Eee is the second coming of my HP 200LX.
  • I think of my Eee as a large and extremely capable BlackBerry, not as a small and a lame laptop.

So, like I said, it's a great product.  But Asus is doing everything they can to destroy this brand.

The brand name "Eee" is great.  It's short and memorable.  Its sound matches its sense.  It just fits.

But Asus is now introducing so many products under the Eee name that soon the brand will be meaningless.

I believe the first popular Eee was the 701.  People raved about it.  I never owned one, but apparently the two most popular attributes were the low price and the small size.  Either of these attributes could have become the positioning for the Eee brand.  Maybe both.

But now Asus has all kinds of Eee products.  Some are small.  Some are large.  Some are cheap.  Some are expensive.  They're even working on a desktop machine with the Eee brand.  After that I can only assume that we'll see Eee cola, Eee furniture and Eee shaving products.

Maybe Asus doesn't care.  After all, they're basically a manufacturing company, not a marketing company, right?  The fact that they created a great brand was probably an accident anyway.

But as a marketer, that's what makes this even more infuriating.  Creating a great brand usually requires hard work, lots of creativity, and tremendous discipline.  When someone pursues the goal in that manner and succeeds, I admire them.  But when someone accidentally succeeds, and then destroys their own work, I just want to bang my head against the desk.  Yes, I know that luck is a factor.  I just hate the situations where luck is the only factor.  We're making products here, not Top 40 pop radio songs.  Talent and hard work should count for something.

Oh well.  The Eee brand will die and Asus will return to its former life of making products that normal people have never heard about.

But I think this product category will survive.  These things might even become popular enough to go mainstream.  I can only assume that Dell will end up being the leader in this market segment.

But whatever brand they use for these products, it will never be as cool as "Eee".


 

Randy Pausch

I was saddened this morning to hear that Randy Pausch has lost his battle with pancreatic cancer.

Pausch was a CS professor at Carnegie Mellon who became famous for his Last Lecture, delivered in September 2007 and later published as a bestselling book.  He was also the creator of the Alice software project.

When a famous person dies, I often find myself appreciating their work, but I usually cannot say that I feel a personal sense of loss.  Richard Harris was fantastic in every role I have seen him play, but I doubt he and I would have found much to talk about.  For me, Randy Pausch is a special case.  All of us are lucky to have access to his work, but I think the people who really knew him are even more fortunate.  I wish I was one of them.

Every man dies.  Not every man truly lives.  Rest in peace, Dr. Pausch.  You truly lived.


 

Summer Movies

This weekend I saw Wall-E and The Dark Knight, both of which are just amazingly good.  Lately I'm thinking this may be the best summer of movies ever.

Compared to cinematic masterpieces such as these, Paul Roub's recent videos are kind of lame.  His plot and characters are really anemic.  I need to talk to him about somehow working in a car chase scene and more explosions.

:-)

Seriously, Paul has been making some short videos to offer a different way of talking about our products.  His latest one is my favorite:  In order to show how quick and easy it is to setup SourceGear Fortress, this video shows every step of the install from start to finish.  The video is 3 minutes and 12 seconds long.

These movies aren't exactly Iron Man, but they're still pretty cool.


 

C and Morse Code

Darren Stokes sides with Joel over Jeff on whether programmers should know C.

This whole debate reminds me of amateur radio operators bickering over whether newbies should be allowed to get a license without learning Morse code.

Morse Code

So Eric, tell us about your experience as an amateur "ham" radio operator?

My call sign is KA9KEF.  To get my General class license, I had to pass a written exam as well as a Morse code test at 13 words per minute.

Really, you know Morse code?  Nowadays, it's possible to get a ham radio license with no code at all. 

Yes, and I think that's outrageous!  It's just wrong.

Why do you think that?

If I had to learn Morse code, then everybody else should too.

So does anybody really need Morse code these days?

Well, I suppose not.  But don't pester me with facts that distract from my point.  Learning Morse code should be a rite of passage for all hams.  Anybody who got a license without code is not a "real ham".

But you -- you are a "real ham".

Yep.  I passed the Morse code test.  13 wpm.

So you're still actively involved in amateur radio?

Well, no.

Oh.  When was the last time you used your ham rig?

I suppose it's been a few years.

How many years are in "a few"?  Maybe five?

More like twenty.

Twenty years? 

Twenty-three, actually.

And you still have your amateur radio equipment?

Well, no.  I sold my station a long time ago.

OK, let's review.  You're a "real ham", even though everything you know about ham radio is two decades out of date.  But the guys who got a "no code" license and are actively practicing the hobby today, they're somehow not "real"?

That's right.  I know Morse code.  They don't.

So you think all ham radio operators should be required to learn a basically useless skill simply because you did?

Exactly!  And don't ask me to get down from my high horse.  I like it up here.

C

The argument about whether programmers need to know C is just so similar.

All of the people arguing that C is important are the people who have already learned it.  I'm pretty sure that a lot of their argument is resting on the same foundation as those crotchety old hams:  "If I had to learn C, then everybody else should too."

I am one of those people.  Yep, not only am I a Morse code bigot, I'm a C bigot as well.

I learned C, and I learned it good.  I've worked on multiple significant C projects.  I even wrote a C compiler.  In C.  I think all "real programmers" know C.

Yep, we C programmers are elitist and proud of it.  The view from up here on our high horse is pretty good.  We see lots of so-called programmers down there:

  • They don't really know what a pointer is.
  • They're not even using a real compiler!  That thing they're using doesn't even generate native code you know.  It's "byte code", so it's not real.
  • Those people have never had to manage their own memory.
  • In fact, they've never really had to do anything at all.  I mean really.  They're building on a class library that's got more features in it than Photoshop.

We are different.  We learned C.  We are "real programmers".

One big difference

What's the main difference between hams who know Morse code and programmers know C?

The C programmers actually have a point.

Seriously, strip away all the elitism and see what's left.  Morse code is nearly useless, but C is still darn important whether you're using it or not.

And a lot of people are still using it, by the way.  Don't think of C as merely "important historical and foundational background".  In fact, my current project is being written in C.  Software development today is a big field.  There are still many problems for which C is the best solution.

But even if you're coding in something higher level, the experience of using low-level programming techniques is invaluable.

I'm not going to take a black-and-white stance on this.  I won't go so far as to say that every developer must learn C.  I've met lots of developers without C experience who are successful and making positive contributions to important software projects.

Furthermore, I'll admit that knowing C is not a magic solution to poor skills.  A lousy developer who happens to know C is simply better equipped to hurt himself or somebody nearby.

However, I can say these two things:

  1. All of the truly extraordinary developer s I know are people who really understand the kind of low-level details that C forces you to know.
  2. Every programmer without C experience has a clear path of personal development:  Learn C.  Get some real experience using C to write a serious piece of software.  Even if you never use it again, you'll be a better programmer when you're done.


 

My Favorite Books

People often ask me for a list of my favorite books.  So here it is. 

I reserve the right to update this list from time to time.

I tend to read a lot of stuff.  The fact that I recommend a book here does not mean that I agree with everything in it.

Coding

I think it's out of print, but I really liked Writing Solid Code.  It's very oriented toward C/C++, so if you're mostly in C#/Java/Ruby/Python/Perl/VB, it may not be worth your time.  Still, it's an outstanding book.

And of course Code Complete is a classic.

Software Management

Dynamics of Software Development is one of my favorites.

Business

I'm a big fan of Built to Last and its sequel, Good to Great.  The sequel is easier to read and a bit more relevant to smaller companies.

The Silicon Valley Way is a great book, and it's a very visual book with nice short chapters.  Easy to just pick up and browse..

If you get the opportunity, go hear Guy Kawasaki speak.  He's much better in person than he is on paper.  But if that doesn't work out, Rules for Revolutionaries is a good read.

Marketing

If you read only one book on marketing, it should be Crossing the Chasm.

But actually you should read at least a dozen books on marketing. 

Here's your second one:  Differentiate or Die

Now go find ten more.

Sales

I think Selling the Wheel is an outstanding book.  At first you'll be tempted to stop because it's kind of cheesy.  Don't.  Finish it all the way to the end.

Useless but Enjoyable Fluff

I really like the "Prey" series of novels by John Sandford.  Start at the beginning with Rules of Prey

WPF

I have all of the following WPF books:

These are all good, each in a different way.  If you're going to do anything serious with WPF, it seems to me that you should own them all.

Other Stuff

The Seven Habits of Highly Effective People is still worth reading.  None of Covey's other books are nearly as good.

Any serious pool player has a copy of Byrne's New Standard Book of Pool and Billiards.

My favorite literary novel is The Count of Monte Cristo.  The unabridged version is worth the extra trouble.

For dog lovers, Marley & Me is terrific.


 

Yesterday's entry: A comment and a correction

The Comment

I've received a lot of feedback on yesterday's blog entry.  The two most common questions are:

  • Eric, why did you think that working on your Scrabble project was wrong?  It doesn't seem all that bad.
  • And since you thought it was so awful, can we assume that you would go ballistic if someone in your company was working on a pet project at the office?

I sort of figured that if I wrote an article about a software manager that I really admire, I didn't need to address the question of how I would react in a similar situation.  It should be fairly simple to connect the dots.

But folks are having trouble with the fact that I held such a strict attitude about my own transgression.  They assume that I would be similarly draconian with others.  A fair assumption I suppose, but an incorrect one.

When it comes to ethics, most people treat themselves loosely and other strictly.  Instead, try being strict with yourself and gracious toward others.  You'll get along a lot better with the world.

Do I really believe that working on a fun personal project at work is such a heinous crime?  Certainly not.  But surely you can agree that goofing off and trying to cover it up isn't exactly the way to win the employee of the month award?

The truth is that I just don't believe in making excuses.  I'm not going to defend myself unless I have solid possession of the moral high ground.

My kids read this blog.  I'm trying to teach them to take responsibility for all their choices, good and bad, big and small.  How can I do that if I'm not willing to set the example?

If I found somebody in my company working on a pet project at work, I imagine I would handle it pretty much like Tim did:  I would be more disappointed in the company than in the individual.  If people are working on hobby code, then they're bored.  In my opinion, the blame for a bored employee splits about 80/20 toward management.

The Correction

Tim's current car is a Lamborghini, not a Ferrari.


 

Choose Your Manager

The Context:  Being a slacker

In the early months of 1994 I wrote a program to play Scrabble.

It was a magnificent piece of code, easily the fastest Scrabble program I had ever seen.  The implementation (in C) was based on the GADDAG data structure and algorithm explained in a paper by Steven Gordon.  The resulting program was so fast that computer moves were instantaneous.

Unfortunately I had to keep my software a secret.  The lawyers at Hasbro love to send nastygrams to anyone who implements a Scrabble program.  These guys are a lot like the lawyers at the RIAA who have become famous for their lawsuits against toddlers and family pets.  The Hasbro legal team is merely less prolific.

Actually there was one other reason why I kept my Scrabble program a secret:

I wrote the entire thing on company time using my employer's hardware.

At the time I was working for Spyglass.  We had recently finished shipping version 2.0 of our flagship product, Spyglass Transform.  Things were a bit slow, so I was discreetly hacking on my pet project.  I setup my office such that nobody could see my screen from the door.

Unfortunately, I gave myself away.  At times when I was working on my Scrabble code when my boss (Tim Krauskopf) walked in the door, I would flinch and quickly try to minimize the window.  About the third time it happened, Tim said, "All right, what game are you playing?"  Suddenly I wished I actually was playing something like Doom.  In that moment, working on non-company software seemed more shameful than wasting time in a first-person shooter.

I offered a full confession and an apology. 

I don't remember what he said. 

I do remember that he never mentioned it again.

The Inflection Point:  Day 1 of the browser wars

A few weeks later, on April 4th, 1994, Tim once again stepped into my office.  He said he needed to talk with me somewhere offsite.  We left.

In that conversation, Tim told me that the Spyglass management team was making the decision to abandon our then current business (scientific data visualization tools) and get into the web browser business.  He asked me to immediately begin working and commit to giving a demo to an important potential customer a few weeks later.

I shifted into high gear.  I came in at 5:30 am every day for weeks.  I was writing code at a fantastic pace.  The demo was successful.  We showed them our browser.  It didn't have as many features as NCSA Mosaic, but it was a lot faster.  We didn't tell them that it was written from scratch in less than a month by a kid who had never written any networking code before.  We got the sale.

And that was just the beginning.  The project started out with me alone, but two years later it was a team of 50 with me in a leadership role.  We were the first Internet IPO.  We licensed our browser to Microsoft and it became Internet Explorer.

That conversation on April 4th ended up being a defining moment for my career.  And it happened just a few weeks after Tim caught me skiving off on the job.

What the %#$@ was Tim thinking?

The Premise:  Tim made a wise choice

I'm going to surface a lesson from this story, but you should probably read no further if you disagree with Tim's decision.

And if you do, I can't really argue with you.  I'm not going to defend my actions.  I was being irresponsible, even dishonest.  There are no excuses for behavior like that.

Maybe Tim should have fired me.  At the very least, maybe Tim should not have entrusted the development of his company's next big product to someone who lacked the discipline to stay on task.

Still, the overall results deserve some kind of voice in this argument.  Tim and his company were very successful.  Tim drives a Ferrari now.  Tim's choice worked out very well for me, but it turned out pretty well for Spyglass too.

The Lesson Learned:  Choose your manager carefully

This story may seem like it's about me, but really it's about Tim Krauskopf.

I've never asked Tim why, so I guess I don't really know.  Maybe he just believes that being obsessive to a fault about code isn't the worst character defect for a developer to have.

I spent five years at Spyglass.  The incident described above is just one of many that left me in awe of Tim's leadership skills and discernment.  I don't think I ever really figured out what makes that guy tick, but I still think of him every time I measure myself as a manager and leader.

The part that seems most astonishing to me is that he kept his emotions in check.  Didn't he feel any sort of disappointment or even betrayal?  Why didn't he overreact?  That's what most people would have done.  I probably would have.

All I really know here is this:

Your manager plays an enormous role in determining the success of your career.  Choose your manager very, very carefully.

  • Choose somebody smart. 
  • Find somebody who is not merely smart, but "emotionally smart".
  • Find somebody who is not merely smart, but wise.
  • Choose a person from whom you can learn.

Just to be clear, I am not saying you are powerless.  Your success is mostly determined by your own abilities and choices.

But one of those choices is the decision of who you are going to work with.

Don't take that choice lightly.

Update:  See my follow-up.


 

Upcoming Gigs

In July I will be giving a keynote address at GUADEC, the annual GNOME conference, being held this year in Istanbul.

In September I will be speaking again at the Business of Software conference, being held this year in Boston.

And finally, for something completely different, don't miss the Jam Session at Tech-Ed on June 3rd.  Several of us minions from SourceGear are planning to take the stage and give our rendition of Pinball Wizard.  It'll be me on acoustic guitar, our development manager Jeremy Sheeley on bass, and our product manager Paul Roub playing the Evil Mastermind Schecter PT that will be given away later that week.

And BTW, none of us will be dressed as The Evil Mastermind.  This should be obvious, as The Evil Mastermind would never do something actually cool like a song by The Who.  Rather, he would do something like a Kelly Clarkson song and mistakenly believe it was cool.  :-)


 

Three Personal Highlights

It's Friday afternoon, so I hope my readers will indulge me a bit of gloating over three recent moments of personal triumph:

  1. Playing the 12th hole at my regular course, I made a shot from about 80 yards out.  Unfortunately, it was for par.  :-(

  2. This past Saturday I walked the Indianapolis half marathon in a personal record time of 14:57 per mile.

  3. After setting up my new subwoofer, I put in the Return of the King DVD and zoomed ahead to the Minas Tirith battle scenes.  Seconds later, my younger daughter ran upstairs and cried, "Daddy, your movie is shaking the whole house!"

All three of these were moments of great personal satisfaction.  The third one was the only one to result in maniacal laughter.