Technical ramblings
Wednesday, November 23, 2005
  Selling Out
Many years ago I was a freelance computer consultant--a programmer for hire for short-term projects. And I was quite successful; for the nine years I freelanced, I managed to buy a house in a fairly tight market.

For those who want to freelance, a few words of wisdom. First, your salary will be irregular. And I don't mean "the paycheck may show up a week or two late" irregular. I mean "you may not get paid for four months while you're looking for a new project" irregular. And that's not an exaggeration: there were several periods over the nine years where I went for several months without ever seeing a check.

So first and foremost, if you decide to consult, have at least six months stashed away somewhere. If you are currently living month to month from paycheck to paycheck, then do not go into consulting until you sort out your finances. I do not think I can stress this enough. Having a second income may also help; my parents leveraged themselves into the home building industry by my father working full time while my mother worked as an architectual designer. After a decade, her work was solid enough that my father was finally able to leave his full-time job.

Second, as my parent's example illustrates, it takes a very long time to get established. Freelance work is not something that happens overnight, though sometimes it can help to take a project with you to get started.

Third, don't expect to do freelance work and have more time left over. If you aren't working like a dog making your client happy (because, honestly, you will be hired because your client is an idiot and has a disaster that you need to solve--so he's also an idiot as to how much slack to give you before he fires you), you're working like a dog finding another client to make happy.


Well, three years ago I reached a turning point where I wanted to work on larger projects--so I took a job at Symantec so I can learn more about management. And a funny thing happened.

I found myself selling out.

Today I get paid six figures--and it's a reliable six figures. My salary is no longer a roller-coaster ride from feast one year to famine the next.

Further, I find myself working just as hard--I'm a bit of a workaholic--but rather than dealing with a client who doesn't know if I'm working enough, I'm now dealing with a boss who cannot be more estatic with my level of work. I routinely get extra bonuses (about two "A+ awards" per year) for my level of participation, along with the occassional stock option grant (which is worthless because of today's stock value, but the thought is nice) and the like. The people I work with are nice--and I've been around long enough to develop a better friendship with many of them than I would have if I breezed out of there after a few months.

And I'm starting to learn the organization there.


Yes, I've sold out. But the reality is that I'm getting paid more there than I was as a consultant, I'm working less, it's less stressful because my level of participation is well appreciated. And I couldn't be happier overall with my work situation.

I don't think I'll be going back to consulting anytime in the near future.
 
Tuesday, November 15, 2005
  Non Player Characters
So there is this "innovations" meeting--a sort of "rah rah" meeting here at Symantec--discussing how the CTO is dealing with promoting innovation. He defined innovation as creativity that actually changes the user experience. That is, it's not good just to invent a better mouse trap; you need to invent one that the user wants and will buy--or at least one which will change how the user catches mice. A better mouse trap isn't good enough; it's got to be something the user uses.

So he discusses different ways to promote innovation--and it's all the same platitudes I've heard forever at various companies: "management did this", "management did that", "the sales engineer managers got together", "the architects got together"--combined with "and we have to figure out a better way of communicating the customer facing problems down to the engineers so they can factor this in when they innovate."

It's all a top-down model. So silly me, I stuck my hand up and asked "what about bottom-up innovation and cross-pollination?" combined with "often the customer doesn't know what they really want"--which led to a rather interesting response about "how do we balance the needs to tell a consistent story" with "how do we get better insight into the expertise developed in this company."


But I think there is a bigger problem here that just struck me. Our monkey brains have a finite number of people we can actually deal with. To our monkey brains, beyond a certain number of people, and we are simply incapable of treating them as human beings.

So with a large company the fundamental problem exists to upper management that the thousands of workers cannot be conseptually seen as anything other than cogs in a very large machine. Now this wouldn't be such a problem if there wasn't the second problem--which is that in everyone's desire for upward mobility, most of us focus upwards: that is, we are more likely to see the people above us as real as we wish to join their ranks--and we see the people at the same level as us and those below us as, well, as non-player characters.

This becomes a fundamental problem. Individuals who have something positive to contribute basically are discouraged by the triple pressures of upward competition, their own non-player status in the eyes of management, and the desire for their immediate superiors to preserve their own jobs. So innovation gets squashed--unless it is top down.

It's just human nature.
 
Wednesday, November 09, 2005
  User Interface Annoyance
Okay, so here's a stupid question. How many of you hate when an application starts up or opens a new window, the focus is taken away from the current window that you may happen to be using? That is, you start up an application that takes a few seconds to start up, so you switch to another, start typing in your password (say)--then suddenly half your password is in the URL bar of a browser window?

Here's what I don't get. This is an easy thing to fix: if the user starts an application up, set a flag to indicate that it's the current frontmost application. But if the user then switches to another application, force the front window of the application being launched to just behind the current window.

Simple. Since each window has to be associated with the current application in the window manager of every windowing operating system out there, it's easy to detect if the user--after starting an application--then does something that sends events to the current focus of a currently running application. If such an event (a keyboard or mouse event) occurs, then change the current frontmost application flag to the application you just screwed around with. Then when an application wants to open a front-most window, have that window appear just behind the window the user is currently using.

Of course there should be some exceptions: an alert that pops up probably should go frontmost even if the application is not--but such notifications should be reserved for something disasterous or for a user-set alarm.

But by and large, it's a pain in the neck every time an application opens up a new window, that process grabs focus from the user. This makes the entire operation no longer a user-centric operation, but a computer centric one.

And anything that is not user centric is just fucking annoying.
 
... where our hero, embedded in the computer industry, rambles on about software development issues which catches his eye or (more likely) annoys the hell out of him...

Name:
Location: Glendale, California, United States

I'm your humble host, a resident of Southern California, an ornery conservative in a liberal land, a software developer who also likes to do woodworking and cook.

Archives
July 2005 / August 2005 / November 2005 / January 2006 / December 2006 / February 2007 /


Powered by Blogger

Subscribe to
Posts [Atom]