photo by Stephane Mahe, Reuters
Over the years and through several jobs, I have observed the demands of the job rarely challenge my technical skill, nor do they require use of all or even many parts of the .NET framework. For example, I often encounter areas where LINQ to Objects is very useful, but have never employed LINQ to XML in my workplace.
Of course, I can find places to implement great things like lambda expressions, parallel, and WCF message queuing, but they just don't fit into the project, as it is in maintenance mode, or few if any other programmers on the team understand the technology well enough for me to reliably introduce it.
The Pet ProjectPet projects are small projects typically produced on personal time. If you are lucky, you work for a company like Google and 3M, that both schedule time for personal research and development -- pet projects. If your company doesn't allow this, as for 20 minutes every Friday to do so. Things like Sticky Notes were invented this way, and have changed the world -- tell your boss you're going to change the world with your 20 minutes, and I'm sure they'll think about it... after the laughter subsides.
A proper pet project features:
- A clear objective, as with any other project
- Simple objective, so you can finish it in a reasonable time frame
- Challenge -- the purpose is to exercise your skill in areas you don't often use
- Utility -- the product should be useful to you in your personal and/or professional life
ExampleI recently moved source control content from Team Foundation Server 2008 to 2010. I decided to compress a copy of the 2008 source code into a .ZIP file. I immediately noticed the root directory reported a size of 4GB -- extremely large for source code!
I wanted a utility that visually represents the size of directories and files in a pie chart, to quickly drill down to the offending directory. I decided to build a tool to do so.
I want it quick, so no extra treats are going to be involved. I wanted my tool to do only two things:
- Display directory contents in a pie chart, by size
- Drill down into sub directories, by double-clicking the pie chart wedge
I am challenged by the fact I have many options for creating a pie chart in WPF, and have only done so once, several years ago.
I can keep this utility in my tool box, for future use. Others may be interested in the application, too.
Project Pay-OffAs of writing this post, my current, personal-time pet project is a Windows Phone 7 (WP7) application. I had a need for something, and decided to create a (rather simple) application to fill that need. I will submit my application to the WP7 Marketplace, as a free download, so others may benefit from my needs and solution.
However, I have many great ideas of how to expand the product, and then submit it to the WP7 Marketplace, which will sell for a low price. the new features are things I don;t know how to do (and won't discuss here), so I can leverage my future pet project for income.