Tuesday, August 31, 2004  

I was heading up to Connecticut for an afternoon meeting so I scheduled a morning meeting at Grand Central Station. As we drank our coffee and talked business, 18 year old "kids" (military of course) walked around carrying semi-automatic weapons. Police were in full force at all the train stops from the West Village to Grand Central. Officers performed random sweeps on the trains including the one I took up to CT. Definitely not a typical day in the office.

On a related note, I had time to kill between my meeting at Grand Central and the train ride up to CT. I decided to check my e-mail so I walked out of the station in search of a Starbucks. To no surprise there was a large Starbucks just a block and a half away. I have often joked about Starbucks being on every corner but today it paid off. And it paid Starbucks as well as I order an ice coffee and signed up with T-Mobile for a day pass. Gotta love the convenience provided by Starbucks.


posted by Kirby Turner | August 31 07:52 PM | comments (6)


Monday, August 30, 2004  

I recently wrote the article below but have not published it yet. I am working on an article section on the White Peak Software web site but I haven't completed the software change yet. So instead of waiting longer, I decided I would post a draft of the article here on the blog.


Road to Independence (Part 1: How I Got Here)
Kirby Turner
White Peak Software Inc

July 2, 2004

Introduction

Earlier this week I told my employer that I resign from my position so that I may pursue a career as an independent consultant. This has been a long time in the making. It is both an exciting and scary move for me.

Although it has been done before, I thought it would be fun to share my experience as I journey down the road to independence. This article is the first in a series I plan to publish where I share the good, the bad, and the ugly of going and being an independent consultant and running my own software company.

Disclaimer: This first article is more about my history and less about lessons learned. Future articles in this series will be more practical for the individual considering a move towards independent consulting.

How Did I Get Here

The first computer I ever played with was a Sinclair 1000. It was my father's and I was immediately fascinated with it. A few years later my high school was selected as a pilot school for hosting a computer class. Note this was in the early 1980's. The class focused on the history of computers for the first half of the school year. I was bored and sometimes disruptive in class. Needless to say I did not make a good grade nor did I leave a good impression on the teacher who was considering kicking me out of the class before the start of the second semester.

During the second half of the school year the class focused on programming in BASIC. My boredom quickly left and I completed all of the class assignments for the second semester within the first few weeks. From that point on I helped other classmates learn how to program. It was my first experience as a mentor.

An advance computer class focusing on PASCAL programming was offered the following year, my senior year, taught by the same teacher. Before teaching these classes, the teacher taught math. While teaching she returned to school to studying for her master's degree in Computer Science. Once again I finished the class assignments early in the school year so the teacher gave me assignments based on her own college assignments to keep me busy.

She resigned from her teaching position at the end of the first semester, but she agreed to continue teaching the advanced computer class through the end of the school year. She left teaching to start her own computer consulting company and I was her first employee. I was still in high school getting paid to write software for customers of the teacher who was considering kicking me out of class a year earlier.

Over the years since that time I have spent most of my career as a computer consultant writing software for different clients. I have also worked for a few ISV which is where I got exposure to commercial software development. I went independent in 1999 as a sole proprietor but that lasted only a year. I learned I wasn't ready for the responsibilities of being an independent and I didn't have the skills I felt were needed to grow a business. It was back to regular employment for me.

Working Smarter Not Harder

It was during the next four years that I learned about running a business and how to engage other businesses. It was also during this time that I became increasingly more frustrated with my career. Although successful during these years, I saw things happening that I did not agree with. And I was constantly telling myself and those around me that if we used this or that approach we could improve and do better. We could work smarter, not harder.

The idea of working smarter not harder became a top principal held by me and one that started guiding my career towards independence. It gave me a new way of thinking about my career and how it fits into my life. I was tired of giving up my life to work harder. I was tired of working long hours, 60, 80, and sometimes 100+ hours per week. Working smarter was my only option.

There was another motivating factor for working smarter. While I was learning more about business over the last 4 years, I was also an exempted employee which meant I did not get paid overtime. The real kicker though was that if I worked 60 hours during a single week for a customer that customer would be billed for 60 hours even though I was getting paid for only 40 hours. For me, working smarter was also about not giving my time away for free to someone who is profiting from that time.

Life Goals

Working smarter gave me a new way of thinking about my career and how it fits into my life. I had learned the importance of life outside of work and I no longer wanted to be a workaholic. Working smarter allows me to be more productive than working harder while at the same time keeping reasonable hours. As a result I have been able to enjoy more out of life with this new balance between professional and personal life. But I wanted more.

Last year I looked around and asked: Is this what I want to do with my life? Do I want to continue working for others, helping my employer make more money while I make the same amount I was making 4 years ago? The obvious answer was no.

I enjoy creating software and helping customers meet business objectives through the implementation of software solutions, but I also want to spend more time with my wife and family. I want to spend more time on the wintry slopes snowboarding, and I want to spend more time pursuing career goals and interest that I otherwise have not been able to pursue while employed by others. Yes, there still is a bit of the workaholic in me but remember computers are just as much a hobby for me as they are a career.

I remembered my time as sole proprietor, which was one of the highlights in my career. It only made sense for me to return to that career life but this time leverage the business skills I had acquired. Thus began the concept of White Peak Software Inc.

posted by Kirby Turner | August 30 05:02 PM | comments (2)
 

Last day for the All For One season pass at cheap, cheap prices.

posted by Kirby Turner | August 30 10:17 AM | comments (0)
 

Boris has a blog on his travels through the Far East.

posted by Kirby Turner | August 30 09:10 AM | comments (0)


Friday, August 20, 2004  

Brian Noyes gave a nice talk on ClickOnce Deployment using .NET 2.0 at last night's NYC .NET Developers Group meeting. ClickOnce is the combination of the best ideas from web deployment, No Touch deployment, and Microsoft Updater Block. Visual Studio 2005 makes ClickOnce a snap and requires little to no coding. VS2005 allows you to set all the configuration needed for ClickOnce through project settings and publish the deployment package out to a server. No need to write your own manifest files! And it is part of the .NET runtime so you do not have to make changes to your application. As a matter of fact, you can deploy applications built on .NET 1.1 through ClickOnce.

posted by Kirby Turner | August 20 09:02 AM | comments (0)


Thursday, August 19, 2004  

Joel Spolsky of Joel on Software fame has published a new book called "Joel on Software: And on Diverse and Occasionally Related Matters That Will Prove of Interest to Software Developers, Designers, and Managers, and to Those Who, Whether by Good Fortune or Ill Luck, Work with Them in Some Capacity." That's some title. According to Joel's e-mail, the book consist of 45 "timeless" articles from his site. Not much new content but sometimes a book is preferred over a web page.

posted by Kirby Turner | August 19 11:14 AM | comments (0)


Wednesday, August 18, 2004  

After running into numerous problems I gave myself admin rights to my local machine. I had too many problems trying to install and run various applications and I don't have the time to trouble the problems tonight. I will try again to run as a minimum privileged user when I have more time to trouble shoot problems.

posted by Kirby Turner | August 18 08:01 PM | comments (0)
 

Living life as a minimum privileged user can be rough. It seems almost every program I use requires administration rights to the machine for installation. Once I have my new virtual machine setup and configured this will not be as much of a pain as it is today. A helpful way to make life easier is to use Remote Desktop and connect back to your machine using an administrator account. I keep this running as I do my installs and luckily only one application required a re-boot.

posted by Kirby Turner | August 18 05:46 PM | comments (0)


Tuesday, August 17, 2004  

After a 3 hour struggle I finally got Roxio Easy CD & DVD Creator 6 installed on my laptop. Here's the story.

I run my laptop under a minimum privileged user account. I go to install Roxio but it requires administrative rights to the machine for installation. Okay, given the nature of the software I am okay with signing in as administrator for this install. And that's where the problems started.

Roxio 5 was already installed on my laptop so the install process asked to un-install it for me. I tell it yes, the old software is removed, and the machine reboots. I ran the installer under an administrator account from my primary user account which as I said has minimum privileges. After the reboot, I signed in with my primary user account to finish the install but the install did not run. I manually re-ran the install but it told me I needed to re-boot my machine to finish the install. After doing this a couple of times, I realized that the install process was not going to restart unless I sign in as an administrator even though I started the process using a Run As the administrator. Sigh...I sign out and back in this time as the administrator. The install process runs and completes.

With the software in place, I plug in my new Plextor PX-708UF into a USB2.0 port on my laptop. The OS recognizes the device, does it magic, and I now have access to the device. I launch the Roxio Creator Classic software to write out some virtual machines to DVD. Roxio sees the device but it does not know how to interact with the device. It doesn't know what formats are supported by the device and it doesn't recognize the media in the drive. I re-boot. No luck. I sign in as administrator and still no luck. I tried a combination of things and still no luck. Finally I decide to re-install the Roxio software.

Being a bit wiser this time around, I left the Plextor device turned on while I installed the Roxio software under the administrator account. Ah, the missing piece reveals itself. This time around the Roxio software detects the Plextor device and immediately downloaded additional driver tables to support the device. Note, I had to remain in the administrator account for this to happen. Finally all the pieces are in place and I am burning to DVD and CD without a problem.

Lesson learned: When installing Roxio software, 1) have the device installed and turned on before installing the software, 2) install using a user account that has administration rights, 3) continue using the administrator account until the software installation is complete and you have verified that everything is working correctly. Follow these steps and you will be able to use the Roxio software to burn DVD and CD in minimum privileged user accounts.

posted by Kirby Turner | August 17 12:35 PM | comments (1)


Wednesday, August 11, 2004  

Yesterday I attended the Oracle Developer Day. This hands on workshop covered Service Oriented Architecture (SOA) and how you would implement SOA solutions using Oracle tools. The morning sessions talked about SOA and how it fits into the application architecture. The architectural concepts presented here also apply to .NET solutions. It was refreshing to see that whether you use .NET or Java the same good architecture can be applied to either platform.

We spend the rest of the day hands on implementing a multi-tier application using JDeveloper. JDeveloper has a similar look as Visual Studio.NET but some of the features were not as intuitive. The tool that impressed me the most was Toplink. This tool integrates with JDeveloper and allows the developer to map an object structure to a relational model.

Toplink is ideal for building the persistent layer of a solution and the developer does not have to write code. You define a class structure of getters and setters, map the properties to the appropriate fields in the database, and viola...Toplink generates a persistent layer that will retrieve data from your database.

JDeveloper provides a lot of assistance for implementing end-to-end solutions built on top of SOA. But as easy as it was, I could not help wondering how often the tools are used for real world development of enterprise solutions. The lab sample was a simple application but can more complex solutions be implemented without needing to write a lot of code? I will need more time to explore the set of tools Oracle to see.

posted by Kirby Turner | August 11 07:43 AM | comments (2)


Monday, August 02, 2004  

Sorry but I have to rant for a minute. I have been working with a team lately that doesn't get unit testing. In 4 months, this team has been unable to have all 200+ unit tests run successfully. This to me is an indication that 1) the team does not understand unit testing and its importance, or 2) the team just does not care. My initial thought is the team does not care, but after today I am starting to think the team just does not understand unit testing.

Today a programmer committed code changes to CVS with a comment stating that the class failed unit testing with a stack overflow problem. The programmer apparently cared enough to run the unit tests prior to committing the code but didn't take the time to fix the code, which by the way would have only taken a minute. Instead of fixing the code he commented in the log message that the class failed unit testing.

What kills me is the programmer cared enough to run the unit test against his code prior to committing to the source repository and yet didn't care enough to fix the problem. Did the programmer think the test was falsely reporting an error against his assumed-to-be perfect code? It is as if the programmer does not realize that the unit test is trying to help him determine problems in his code. "Yeah, the unit test failed against my code but I know my code is correct so I'm going to commit anyway." I don't get it.

posted by Kirby Turner | August 2 11:43 PM | comments (1)


Sunday, August 01, 2004  

In setting up my new laptop, I decided to go with VMware to host various guest operating systems for my development, collaboration, etc. For the most part this is working out well but there are still glitches. For example, to share the My Document folder with multiple guest OS I created a share in the host OS. Each guest OS maps the My Documents folder to the UNC \\.host\Shared Folders\kirbyt\documents. The problem I have experienced with this configuration has nothing to do with me authoring documents, etc. Instead I have encounter two cases where installers have failed.

The .NET Framework 1.1 installer and the Adobe Reader 6.0 apparently need access to the My Documents folder during the installation process. However, both fail because of the UNC reference to the actual folder. My temporary work around to date has been to re-map the My Documents folder to a temporary directory on the local hard drive within the guest OS, prefer the install, and re-map the My Documents folder back to the original UNC location.

I wonder what these two installers want with the My Documents folder during installations and I wonder why their not smart enough to recognize the UNC reference.

posted by Kirby Turner | August 1 10:24 AM | comments (0)
Copyright © 1999-2008 Kirby Turner.
Site software written by White Peak Software Inc, a provider of custom software and software development coaching.