Sunday, 20 March 2005

Make Meaning

There really is only one question you should ask yourself before starting any new venture:

Do I want to make meaning?

Meaning is not about money, power, or prestige. It's not even about creating a fun place to work. Among the meanings of "meaning" are to

  • Make the world a better place.
  • Increase the quality of life.
  • Right a terrible wrong.
  • Prevent the end of something good.

Goals such as these are a tremendous advantage as you travel down the difficult path ahead. If you answer this question in the negative, you may still be successful, but it will be harder to become so because making meaning is the most powerful motivator there is.

It's taken me twenty yeas to come to this understanding. [Guy Kawasaki - ]

For six months I've tried to answer that question. I've thought about the times I was happiest in my life. I realize that I am happiest when I am teaching and inspiring people to do something they consider impossible. That is my purpose in life.

What should I teach? I've thought about teaching technology, but that bores me to tears. One of the few good teachers I've had was my high school chemistry/physics teacher Mr. Seela. He won Iowa Teacher of the Year for 2004 and he deserved it. Mr. Seela was one of the few people who never gave up on me in high school. No matter what I did, he kept trying to reach me. I've thought about following in his footsteps and teaching high school science. But the pay sucks. And the system sucks. Mr. Seela deserves to make 10 times what he makes but most of my other teachers should not be allowed within 100 yards of the nearest classroom.

When I was younger I dreamed of being a software developer, a Navy SEAL, or a Navy fighter pilot. At one point I planned to become all three - a real life MacGyver if you will. Eventually I realized one of my dreams. I became a software developer. I should be happy right?

Last year I realized that writing code to make someone else more profitable, by making banks more profitable, isn't that fulfilling. That's when I decided to go into business for myself. I thought that if I chose the products I worked on, I could make meaning with the products I created. But the idea of writing code in my spare time doesn't appeal to me anymore. I want new challenges. More importantly, I want to spend more time working with people than I do working with machines.

Then I remembered one of the other passions from my youth - flying. I've thought about becoming a flight instructor in the past, but like many teaching professions, the pay sucks. But I see ways to change that. And I want to change it. I want to change the way the flight training industry works. I want to find a way to make flight instructor the premium position in the aviation industry. I also want to find a way to reach kids that are like I was in school. I know that Mr. Seela could've reached me by teaching me to fly. That would have been the motivation I needed to live up to my potential in school. I know that there are kids out there like me, who need something to focus their attention. I know that through flight instruction, I can change the world. And who doesn't want to change the world?

So thanks David Seela. Thanks Guy Kawasaki. Thanks Robert Scoble. Thanks Steve Pavlina. Thanks Dave Winer. Thanks Adam Curry. Thanks Eric Sink. Thanks Jon Udell. Thanks Seth Godin. Thanks Jack Canfield. Thanks Harvey Mckay. Thanks Duane "Dog" Chapman. You have all inspired me to change the world.

03/20/2005 11:16:06 (Central Standard Time, UTC-06:00)  #    Trackback

 Monday, 30 June 2003

Satyr: User Personas Added

I added a User Personas document to the Satyr workspace. It describes several hypothetical Satyr users. The goals and needs of theses personas will guide the design and development of Satyr.

I will also use these personas in the other documentation. This should improve the readability since instead of referring to "the user selects" or "the project administrator adds" I'll be able to say "Lisa selects" or "Susan adds".

Post a message to the User Personas thread if you have any questions, concerns, or suggestions.

06/30/2003 19:58:02 (Central Standard Time, UTC-06:00)  #    Trackback

 Friday, 27 June 2003

Satyr: User Stories Added

I've added some User Stories to the Satyr Workspace. I'll add more as I get them done. In the mean time I'd love to hear your thoughts. Each User Story has a thread in the Satyr Message Board. Please post any questions or comments there.

As the stories settle down I'll add a page for each one on the yet to be create Satyr web site. Until then they'll be available primarily through the Satyr Message Board.

06/27/2003 22:29:56 (Central Standard Time, UTC-06:00)  #    Trackback

Satyr: What's in a Name?

"Satyrs were male creatures who inhabited woodlands and forests in Greek mythology...the satyrs as a group were passionately fond of females - especially nymphs..." []

Today nymph refers to the immature stage of insects with incomplete metamorphosis. Since Satyr - the application - is designed to help you catch bugs before they have a chance to multiply I thought the name fit perfectly.

Hmmm...Clearly I spent too much time thinking about this ;-)

06/27/2003 10:14:00 (Central Standard Time, UTC-06:00)  #    Trackback

Satyr: Why Open Source?

Satyr is licensed under the Academic Free License because I want you to be able to use the code if you choose to. But, and this is important, you won't have to change the code to customize Satyr. If I do my job right you'll be able to add functionality and data to Satyr using a combination of simple configuration changes, dynamic code compilation, and compiled add-ins. I'll have more to say about extensibility in the future so stay tuned.

06/27/2003 00:49:39 (Central Standard Time, UTC-06:00)  #    Trackback

 Thursday, 26 June 2003

Satyr: Why Bug Tracking?

I started a bug tracking project because every development team needs a good bug tracking application. Since I'd like to sell two things - myself and .NET smart clients - creating an application that development teams use every day seemed like a natural fit.

Besides, I agree with Joseph Jones, nobody has gotten bug tracking right yet - primarily because every development team wants something different. I also agree with Joel Spolsky. You shouldn't make your bug tracking too complex. But a lot of teams build their own bug tracking application because they want the option to add features. Those are the teams I created Satyr for. I'd like to give them a solid foundation to build on.

However any team that chooses Satyr to save money is deluding themselves. Building your own bug tracking application - even if it is based on a solid foundation - will not be cheaper than buying a professionally developed and supported solution. Before you decide to build your own make sure you understand the tradeoffs.

06/26/2003 23:21:39 (Central Standard Time, UTC-06:00)  #    Trackback

Satyr: My Motivation

I started the Satyr project for a lot of reasons. Some of them are documented below.

  • To Learn
    • What does it take to create, deploy, and maintain a real world smart client application?
    • I hope to discover the strengths and weaknesses of the various P&P application blocks.
    • Is the 20+ MB framework really a roadblock for compelling applications.
    • I'm curious about the kinds of interoperability problems I will face doing Xml/WSDL design first.
    • What are the costs and benefits of choosing Xml purity over serialization simplicity?
    • What is the right balance for TDD in a real world application?
    • What is the best way to deploy HttpHandlers and HttpModules?
  • To Experiment
    • There are many ways to add extensibility hooks to an application and I'd like to try a few ideas that are rattling around my head.
    • How can I provide simple Slash-Dot APIs[1] over well specified, extensible, and easy to validate Xml documents using the tools available today? How will tomorrow's tools - X# and Yukon - make this easier?
    • What is the pragmatic balance between Xml and Relational models? What affect will Yukon and other Xml aware databases have on that balance?
  • To Sell
    • Satyr will be a living resume.
    • Demonstrate the power of smart clients, extensible Xml, and web services to development teams. Many developers would love to develop smart client applications. Many users prefer smart client applications when they have to use an application frequently to manage non trivial data. Decision makers aren't convinced though because they haven't seen a successful smart client application that solves the deployment nightmares that drove them to the "all web apps, all the time" mentality.
  • To Teach
    • With any luck one or two other people might learn something from Satyr.
  • To provide a useful foundation that others can build on
    • I have no desire to compete with the big boys. I'll never be able to provide the same level of support and I'll make that very clear from the beginning. I would like to provide a clean foundation that others can build on though.


06/26/2003 22:21:42 (Central Standard Time, UTC-06:00)  #    Trackback

Satyr: My New Project

What is Satyr?

Satyr is a bug tracking application. Satyr borrows heavily from the ideas Joel Spolsky describes in his Painless Bug Tracking article.

Satyr defines an extensible bug tracking data model. Satyr also defines an interoperable API for managing the bug tracking data.

The Satyr server is built on ASP.NET and SQL Server. The Satyr client is an extensible .NET smart client.

If you would like to get involved join me at Satyr's GotDotNet workspace.

06/26/2003 22:02:43 (Central Standard Time, UTC-06:00)  #    Trackback