The past few weeks have been pretty tough. I have been travelling along side having many things to do at home. The result is that I am pretty tired. I would not say burned out because, despite my obvious working too many hours, I am still enjoying programming and thinking of interesting things to do with our product. With that said, you can't work 12 hours a day for three weeks without getting a bit tired. Having to spend a good portion of time on my one holiday weekend was also rather frustrating, but hopefully all my hard work will let me retire very early and I can buy a big RV and just travel.
In other news... With the push for services in the company it looks like there will be a few organizational changes to help offer more help to those working in services (like myself). In some ways I am bit leary of this sort of change, but I do know that there needs to be changes. I think I am just a bit of a control freak in a weird way at times, so I am working hard not to jump to conclusions or have a negative attitude for no reason. The good side of all this is that if there is something that isn't working or has real problems, I am totally free to talk to decision makers about the issue and mostly likely get things changed.
On a more general note, I have been seeing some important aspects of being a consultant. I read an article about being a tester from Joel Spolsky a while ago and one point he made is that finding a good testers is an ongoing process because they will invariably get sick of it. I think this is similar with consulting. A consultant needs to love coding and technology. Ideas need to flow freely and dynamically in order to solve problems and generate new possibilities for customers. The other side of this is that a consultant needs to be able to communicate complex technologies to customers. There are two reasons for this. The first is to help them to understand some tool or process they will be performing. The second is more subtle and involves communicating potential solutions to the customer. This second piece is very important because it pushes the customer to use his/her imagination to solve problems. Imagination, besides being an amazing exercise in creativity and plain old fun, is what helps to bring in the big bucks.
So, moving back to the testing article, I think that outside the programming side of being a consultant, this envoking of the imagination is something that is hard to find. What's more, no consultant that loves to code and is excited about technology will want to do it all the time. In fact an overload of "imagination envoking" could burn out a consultant faster than massive amounts of Javascript! The point here is that as we look to the future of services, if we can find a good way to keep the customer imagination pumping, then we can solve interesting problems and make the big bucks. This means keeping the people in the game fresh for getting folks thinking.