This is me after what I would consider my best week ever despite only being 4 days because of a holiday. My current client work is doing much better after I was able to implement most of our reporting solution in a single week. I wrote 3 blog posts this week. I booked two appointments for giving presentations. I scheduled appointments at the local school for interviewing potential co-op students (pretty much interns). This might not sound like a lot, but it's more than I've ever done in a week.
The most interesting thing about this week was that it was pretty much stress-free. When I say stress, I mean the kind of stress that keeps you up and night. That kind of stress is called "distress". It's stress that causes you problems. If put under enough of this stress, you will fail. It's guaranteed. You will start losing the ability to cope, and you will slowly become more unhappy. We've all been there. And really, when most people say "stress" they are referring to distress. They don't know any other kinds.
But there is another kind! I'm not sure where I first picked this up, but there is a type of stress called "eustress". Eustress is defined as (from Wikipedia):
...Stress that is healthy, or gives one a feeling of fulfillment or other positive feelings. Eustress is a process of exploring potential gains.Sounds like something I want! Looking back on my week, it's really the kind of stress that dominated my week. Eustress is the kind of stress that comes from working hard at what you love. Sure, I was stressed. There was a lot being asked of me. But I loved every minute of my last week. Eventually, I would have to take a break or I would enter the realm of distress. But that's what weekends are for! And honestly, it happened as an accident. But I think I know how to duplicate it. Soon, you will too :)
So the first thing that kind of comes to mind is "why now?". Why is it that right at this moment I am thinking "Man, what a great week!"? Why didn't I think this before? The answer lies in that my "goal scope" (I call it that. Not a real term.) that I'm currently in. Now, let's rewind 6 months. I'm sitting down, probably winding down a project and getting ready for a new one. My goal at the time was to learn unit testing, continuous integration, and how to really architect an application. The reason? I was sick and tired of slogging through my own garbage code to write more garbage code. I had gotten the hang of client interaction and distilling requirements. Now it was time to make some headway and stop turning my days into "slog-fests" (Again, my own term. Probably not real.) and into what I imagined everyone else's day was. And I didn't fail. In fact, I think I did quite well.
But what happened in that time? In that resolution to produce better code, I inadvertently increased my goal scope. No longer was I worried about the next 4 hours of my day, I was going to start worrying about a full day at the least. Probably closer to 3 days. I had to. I couldn't succeed without it. My resolve to do better forced me to start thinking ahead a full day instead of to the end of this class file! As a result, my thinking was re-aligned. I stopped primarily worrying about little things (eg. whitespace and little style things on a one-man project) to bigger things (eg. how will my web service class file hold up when I need to add 2 methods a day?). It's not to say I no longer worried about the little things, it's just that when you start to realize that the web service decision will make more of an impact over the course of the project than the whitespace issue, you start to realize that lingering on a decision can be bad. The whitespace decision is small, and therefore requires a small of amount of time to make that decision.
Unfortunately, we can only worry about the whitespace on a small scale when we have bigger fish to fry. And those fish get much bigger! Today, whitespace becomes almost a non-thought when compared against the task of trying to bring a project in under budget or on time or, if you're really lucky, trying to do both. Now those are some issues! Worrying about whitespace suddenly becomes something that you never imagined could be so small. Yet, only 12 months ago, I found myself sitting at my desk and worrying about the whitespace like it was going to destroy the world tomorrow if I didn't make the right decision.
So I realized that as goal scope increases, my priorities start to become more realistic. If we follow this logic, we can find that learning how to worry about more aspects of a project turn us into better developers! In my developer space, a good developer isn't just someone who can write code. Pretty much anyone can do that. A good developer is someone who sees and thinks beyond just the code on the screen and immerses themselves in budget, team cohesiveness, architecture, maintainability, and the hundreds of other points that make a project a "good one". The best developer will be able to do this, and all he gets is eustress.
Words are nothing without action. Here's something to try: Find out what your bosses concerns are on this project. Is he stressing about budget? Timeline? Both?!? Make those problems your problems. You are a part of the larger picture of an organization, so figure out how to be the best part you can be. However, remember to chase what you love. Maybe you love budget. Go for it! Perhaps it's another aspect. Find an aspect about your project that gets your fired up and improve it. Next thing you know, you're the developer who knows how to fix the problems of aspect A, and that sounds an awful lot like your fun is part of your work :) Yeah, it might be stressful, but turning that distress into eustress will allow you to kill every project you touch simply by becoming the dev you want to be! Win-win-win-win