Wednesday, December 19, 2012

Trust = Group Execution

It is impossible to grow your business if you are not surrounded by people who you trust.  Particularly, you need to trust people to do what they say they are going to do.

Software developers often erode trust by not meeting deadlines, not delivering what they say they are going to do, and not being where they say they are going to be.  They also lose trust by not answering their phone, not being responsive, and by not communicating clearly when issues are being worked on and resolved.

These problems can be resolved by breaking up very large projects into several smaller ones.  Instead of delivering something major in six months, we should deliver ten to twelve small projects every couple of weeks for six months.  At the end of six months, we'll still have the same amount deployed, but we will gain some benefits:

1)  We will increase trust through constant delivery.

2)  We will be more accurate with deadlines, because small things are easier to predict than very large things.

3)  We will gamble less with company resources, because if we fail, we will fail on a smaller two week project, and not a large six-month project.

4)  Constant delivery creates a culture of constant communication, which also builds trust.

Business people also need to earn trust.  They need to speak clearly, answer questions quickly, respond to emails and voicemails, and generally be equally communicative.  In addition, they need to set clear expectations, and take responsibility when changing requirements delays shipping.  Ideally, they would promise not to change requirements for two weeks, in order to facilitate a frequent shipping cycle.

If trust builds, great things can happen, and the business can grow and be more profitable than ever before.  Everyone can use software as a competitive advantage, but only if these two sets of people have complete trust in each other.

Thursday, November 15, 2012

The Importance of Shipping Software

I play piano.  Well, not really, but I like to practice a lot.  Alone, I think I play rather well, but when I try to play in front of someone, it’s like I’m brand new and fumbling over every key.

The more people I’m in front of, the more I fumble.  It’s a funny thing how an audience heightens every mistake.

I also golf.  Well, more like hack.  But I am a better golfer than I am a piano player.  At the range, I can hit flawless shot after flawless shot.  If I immediately go to the course, all that talent I found at the range immediately evaporates.  The fact that I’m not as good as I think I am is a harsh reality.

Golfing on a course and playing piano in front of others does two key things for me.  One, it shows me where I’m struggling, because every mistake is amplified.  Two, it shows me where my actual weaknesses are, instead of my assumed weaknesses.  The more eyes on something, the more reality is impossible to avoid.  

Dealing with reality, instead of fantasy, is the central reason why developers must ship working software as often as possible.  The more they do that, the more they will enjoy it, the better they will get at it, and the more value they will provide to your users, customers, and employees.

Monday, October 15, 2012

Valve Employee Handbook

Another stellar example of phenomenal corporate culture:


Here is Valve's Employee handbook.  It is VERY interesting reading:

Saturday, September 15, 2012

My Fair Lady: A Parable in Agile

In the George Bernard Shaw play, Pygmalion, Henry Higgins and Colonel Pickering remake a poor, cockney flower girl (Eliza Doolittle) into an upper-class lady, and prepare to present her at a grand ball.  If this sounds familiar to you, the movie My Fair Lady was based on this play.

As I watched the play, I realized that Higgins and Pickering are agilists.  They would strategize on their product (Doolittle) and then release her at small events leading up to the ball.  As she would enter to mingle with guests, Higgins and Pickering would just watch the interactions.  They would never interfere.  Sometimes they would want to applaud, sometimes cringe, but they would never guide, cover-up, or cajole.

Afterwards, they would discuss what they learned.  They always discovered blind spots.  What they thought would be problems, weren’t, and they uncovered problems they didn’t know they had.  They would polish the rough edges and try again.

After a lot of effort and time, release day came.  The ball was a smashing success.  Watching Higgins and Pickering celebrate their success reminded me of how successful software teams feel when their product goes live.  They are thrilled at success, but glad it’s over.

Higgins called the whole process a “joyful strain.”  

The play ends differently than the movie.  In the movie, it looks as though as Higgins and Doolittle discover a fondness for each other and might begin a romance.  In the play, Doolittle leaves to marry another man.  I think the play is better.  If Higgins is successful in his endeaver to create an independent, educated woman, then of course she would leave her creator and make her own way in the world.  She would stand on her own.   As a software developer, our products stand on their own.  We don’t get to dictate how they are used or why they are important to people.  Like Doolittle, they are free to live their own life.

Wednesday, August 8, 2012

Leap Motion

This is a really cool motion tracking tool.  At $70 a pop, I think this might save the PC:

Take a few minutes and watch this video.

http://leapmotion.com/


Paving My Computer - Love NiNite

I had to install all of my tools on my desktop and a new laptop. I did it in this order:
Windows Update (900MB of updates)
Visual Studio 2010 (I removed the SQL Server 2008 Express instance from the custom screen.)
VS 2010 SP1
Web Platform Installer (to get MVC and all the other stuff)
SQL Server 2012 Developer Edition
Resharper
Telerik

And then I used NiNite to install a TON OF SOFTWARE in about 5 minutes. It installed:
Skype
Hulu
WinDirStat
VLC
VNC
DropBox
Evernote
Tortoise
WinMerge
7Zip
Chrome
FireFox
NotePad++
 Eclipse

 Anyway, NiNite is freakin’ cool. Hope you find it as useful as I did.

http://www.ninite.com

Monday, July 16, 2012

Nerd Question of the Day #4

Who introduced REST to the world and what does REST stand for?

[SHOW]

Friday, July 13, 2012

Nerd Question of the Day #3

What is a Portable Class Library (new in .NET 4.5)?

[SHOW]

Tuesday, July 10, 2012

Nerd Question of the Day #1

In SQL Azure, how many physical servers handle a single logical database? What are their roles?

[SHOW]

Monday, April 2, 2012

Why I Don't Use Facebook


Found this in this thread on Reddit:

Reddit Comments

MVP Again!

I've been re-awarded for the coming year. Thank you Microsoft!

Visual Studio Shortcut Keys I Like

F8 - Goes to Next Error on the error list after compiling.

I'll add to this list as I go. Some of them might be Resharper shortcuts.

Monday, March 5, 2012

Quote on Leadership

"The great leader speaks little. He never speaks carelessly. He works without self-interest and leaves no trace. When all is finished, the people say, “We did it ourselves.”

-Chinese philosopher, Lao-tzu

Quote on Manager Failure Rate

"We've found that 40 percent of executives hired at the senior level are pushed out, fail or quit within 18 months. It’s expensive in terms of lost revenue. It’s expensive in terms of the individual’s hiring. It’s damaging to morale."

-Kevin Kelly, CEO of executive search firm Heidrick & Struggles, discussing the firm's internal study of 20,000 searches.