Archive for March, 2010

Maybe It’s All the Same – Everywhere… Sure Hope Not, Though

Thursday, March 18th, 2010

Management.jpg

I was chatting with a friend today about my current disillusionment with the management decisions that I seem to be more aware of in these past few months. To be honest, it's the clumsy, inept management that makes Dilbert a comic that everyone believes is written with their workplace in mind. And to a large extent this is the case - people are the same no matter what the workplace. There are executives, bosses, managers, and workers, and no matter what the company does, it's the interactions of these people that are remarkably similar.

So goes the theory.

But at what point does this similarity stop being a commonality, and become a difference? Specifically, if you're having a difficult time with the current management, what makes you think it'll be significantly different at a different workplace? After all, that's one of the big reasons for changing jobs, isn't it? To get to a better environment.

So I was thinking... How much of what I'm feeling about this management is just universal management dissatisfaction, and how much is truly unique to this place? Based on this, is the difference really all that bad, or is it just frustration I'm feeling in a lot of little ways, and rather than push back, my first instinct is to walk away because I don't feel it's my place in a large organization to change it. It has evolved to this point, and who am I to say it should adjust/adapt to me when the reverse is probably what every one else has done?

It's a lot of good questions, and there's no way I'll be able to find out all the answers because it's all very subjective, and you can't know what every place is like until you work there. For instance, getting here, I believed that this place would be significantly better than my last position, and in a few ways, it is. In some others, it's decidedly worse. Other areas, it's just very different. So is the move to this workplace a move up, down, or just a move?

I'm coming to the conclusion that it's just a move. But it can be a very important move. If the differences are over one or two issues, then that's not going to really change, but if there are serious disagreements over how work should be done, then maybe this you're in a workplace that's not as good a fit as another.

At my old company we came up with a saying: Some times, good people just don't fit. And it's not a statement that there are a lot of good people in the workforce, and there's a lot of good workplaces. But not every good person fits well with a good place. There's a lot more to a good fit than the goodness of the person and the place.

Are the goals compatible?

One of the things I've found most difficult to match up properly are the real goals of the place and the person. Someone may be looking to create some of the greatest works of their career. Some places may be looking to be the very best in their field. Others may be very content to work at the level they have achieved and leave the superlatives to the others. There's nothing right or wrong about one set of goals - they just are. The problem comes in when the goals are different and the friction builds.

Someone looking to create great things can be very frustrated when faced with an environment that's only interested in the next incremental change. They accept that the feeds are bad, or the data is iffy, because it's "OK", and to the person looking to do great work, "OK", is just not "OK". They are looking for great. The individual can think that the workplace is just not interested in doing the level of work they are interested in doing, and to a great extent, that's exactly it - but not because they don't want to - it could be as simple as the fact that they are very comfortable with the flow of work they have evolved to, and aren't really interested in changing. If the great work can be done while retaining the work flow they have come to depend on, then fantastic! But if not, then they'd rather keep going like they have rather than venture into territory they might not like.

Is the pace of work compatible?

This is one of the easy ones, really. Virtually every place expects folks to get in around the same time and work a certain number of hours. Additionally, they may expect a certain level of effort from a group which translates to hours based on the development cycle. In any case, there are expectations of the amount and level of effort from the people at the workplace.

It's not always fair - the executives may work less hours than the workers, or maybe more, but the expectations won't likely be spelled out in the interview process. It's not the best way to attract top talent by telling them something they may already know, or will learn within the first few weeks anyway.

And there's the problem for me - if one person is ready to put in significantly more effort than the others around him, what's likely to happen is that managers will become reliant on this person and will allow others to slack off a bit knowing that this 'engine' will pull the majority of the work anyway. Then, when they take a vacation, or need some time off it's nearly a revolt because the others got lazy and don't know what to do.

The reverse is typically weeded out by the workplace for someone hot showing up for the 'standard' hours and level of effort. Still... it's not completely fair to the person to withhold this information from them in the interview process. Yet, at the same time, how many people want to go to a place where they hear "Everyone works 55 to 60 hour weeks, and if you don't you'll be let go at your first review." Answer: not a lot.

Are the demands of the work acceptable?

Given that the duration and the pace of work are compatible, what about the other demands of the place? Are there going to be calls after-hours? Are there games, events, parties that have an implied expectation of attendance? Again, these might not be clear in the beginning, but after a few months, there may be a significant level of this type of 'work' associated with the position.

While many may say this type of commitment cannot be required of an employee, everyone in that position knows that there's a million different ways to mask the truth of the matter. Re-assignments, difficult goals, there are always ways to make it appear that there's no bias towards the person, but the talk at the water cooler is that this person didn't get this promotion or opportunity because they didn't go to the Company picnic and let the Boss win the sack race.

Everyone has a different tolerance level for politics, and while it shouldn't matter in an intelligent, mature, professional workplace, we all know that's just idealistic.

Do the rewards of the work feed your soul?

There's more to a job than the paycheck, and while that's got to be acceptable to the person and the place, there is a lot more to this than just dollars and cents. Look at all the volunteerism around you - that's got nothing to do with a paycheck, it's all about the satisfaction they receive from doing the job they are doing. It can externally motivated like power or acclaim, or it can be completely internally motivated - simply knowing they were capable of accomplishing the feats they set before themselves.

Tapping into this is hard because it presupposes that everyone knows what internally motivates them - assuming something does, which is not universally true. But for those few that have this knowledge, there can be a lot lacking in the other parts of the fit as this will allow them to ignore some other problems and still feel very good about themselves.

Looking for a Better Fit

I've done a lot of thinking about this. I'm coming to the opinion that I'm not a great fit for The Shop. Lots of little things, but all pointing to the same thing: a significant difference from the 'average' developer here. It's not bad or good - it's just different. In the long run, some times good people don't fit.

I think that's me.

MarsEdit 2.4.1 is Out

Thursday, March 18th, 2010

MarsEditIcon128.jpg

I got a tweet this morning that MarsEdit 2.4.1 was out with an interesting collection of features and fixes:

  • Support editing slug on Tumblr posts
  • Support editing the date of Squarespace posts
  • Fix issue that caused Autosaved posts to get "stuck" and recover on every launch
  • Avoid showing spell checking marks inside HTML tags
  • Improved Accessibility for VoiceOver and other assistive interfaces
  • Fix accessibility attributes of main post editor fields
  • Fix accessibility of weblog list utility buttons
  • Expose per-weblog busy indicators to accessibility
  • Quiet noisy console warnings on Snow Leopard 10.6

and while I haven't run into any of the stated problems, it's something I clearly use every single day, and I love what it's been able to allow me to do.

In all fairness, my own journaling tool wasn't bad... it was just far too early and non-standard. I was glad to move to WordPress at HostMonster and MarsEdit. It's been a fantastic release for me.

Google Chrome 5.0.356.0 (dev) is Out

Thursday, March 18th, 2010

This morning Google Chrome updates went out on all release branches, and for me that means I was updated to Chrome 5.0.356.0. I'm still hoping that they soon pass up Firefox as my secondary browser, but they haven't been able to do that - yet. I'll try to give this new release a go and see if it's gotten good enough.

Eternally optimistic... that's me.

Professional Suicide – Working with Old Visual Basic Apps

Wednesday, March 17th, 2010

NoMoreVB.jpg

Well... today I heard something I never thought I'd hear again: "You'll probably have to get into the VB Form to look at how it's working." What!?

I was talking to the original author of Hemlock - asking him for a little help with the lovely concoction he'd created. He wasn't really interested in getting his hands dirty, but he had the advice that it worked - once. His single idea was to check for double-counting. Yup, already did that. After that, he was fresh out, and his suggestion was to get into the VB Form code for that feature in the legacy app that everything's compared to.

While it's a good suggestion, it's also professional suicide.

Can you imagine the conversation when looking for my next job?

"So... what's this Hemlock project all about?"

"Well, it was a risk tool that was developed by one desk and then I took it over and it grew to be a firm-wide tool."

"Hmmm... sounds interesting. What languages did you work in?"

"Java, C#, and mrmph-mrmph."

"Sorry, I didn't get that..."

"Visual Basic"

"Thanks for coming in."

I can't believe this place is this dependent on VB at this point in time. It's like they don't care that their most essential application in the entire Firm is written on something that I stopped using for anything critical more than a decade ago. While it was once the platform for anyone on Windows needing more power than Excel and not enough time to make a VC++ app, it's now just one of many languages that fill that sector.

In fact, there are a lot better languages these days - C#, Java, any of the .Net group. And you don't need to stop there - Java on Windows is a very good platform and can access almost everything you need.

This is not about getting the most out of a good, workable solution written several years ago - everyone in the organization says they want to retire the old system - it's too hard to maintain, too many problems in the core of the system. Heck, a while back, they wanted to replace MS MQ with 29West as the messaging system for the app, but it was impossible. The developers tried, but they could not get rid of MSMQ because something broke here, or there. So they left in MSMQ and had 29West feed MSMQ. Completely whacked out.

The idea of spending any time in this codebase is just something I'm not willing to accept. There aren't a lot of professional lines I won't cross, but this is one of them. I have no desire to have that kind of conversation with my next potential employer.

Being Remembered by Fellow Commuters

Wednesday, March 17th, 2010

attitude.jpg

I just got into work after having one of the nicest commuter experiences that I've ever had. I was sitting in the train, on one of the two-person bench seats, and the train was pulling into the station. As is their custom, many people stand in the aisle - effectively blocking in those people that are sitting in the bench seats. When I was getting ready to get off the train - though it hadn't yet stopped, he looked at me and said:

"You go ahead, you've let me go when I was up there." gesturing to the upper deck seats in the car.

I was floored. He remembered not only that someone had helped him once or twice, but that it was me that had helped him.

It's something to go through a lot of your life thinking you're pretty invisible. I know sixteen years with kids makes you feel pretty invisible. But this guy remembered.

I felt very special.

Base 1.4 is Out

Tuesday, March 16th, 2010

Base.jpg

This morning I was thinking about SQLite3 and decided to check and see if Base had been upgraded since the last time I checked. It's a great little tool for SQLite3 database, and there's a lot to like there. SQLite3 is the backbone of CoreData, and it's been shown to be a great alternative to a config file or even an application's data file. SQLite3 is a single file database, and it's fast.

So I checked, and sure enough, Base 1.4 was out with a few nice improvements: CVS loading, SQL loading, and a lot of nice exporting file formats. Impressive. I'm not sure I'll use all them, but to have these in this nice, minimalistic tool is a really nice feature.

It makes me want to mess with CoreData - or just get into more Mac development. Darn, it looks like a lot more fun than what I'm doing now.

OK, I’m Finally Really Tired of Working on the Trading Floor

Tuesday, March 16th, 2010

This morning is like all other mornings in the last year, and in that, it's horrible. While I like the idea of teamwork and togetherness as much as the next person, the space I currently work in is the absolute worst space I've ever worked in. Seriously, all kidding aside. This is the bottom of the barrel for working conditions for a developer.

I like the vast majority of the people I work with - which is a real plus. I think the work is, for the most part, interesting enough, and while not really good work, it's good enough, and I can live with that. Again... most of the time.

No, this morning I'm really just sick and tired of the environment I'm working in. It's not a sometimes thing, or an occaisional problem - it's a daily, constant, reminder that my management doesn't have the first clue what it takes to be a developer delivering the kind of results that they are constantly asking for.

It'd be one thing if they didn't ask for much, and then the lower-than-average productivity of this space would be offset by the lower-than-average expectations. But that's not the way it is. Nope... I get hit daily with more things to do, and even two days is too long for major functional enhancements.

The Conditions

To give you a glimpse of what The Shop really looks like, this is the main floor of the Chicago offices. We are in the middle of a move to newer space - just one building over, but the space there is a carbon-copy of this picture. The furniture is all custom-made and at least ten years old. It's falling apart in places, and cobbled together in other places, but it works, and it hold up the sea of monitors and keyboards.

Trading Floor

and I'm in one of those long, flat desks at the bottom of the picture. Here's a different view showing me in the center flanked by my manager on the left and a teammate on the right:

My Desk

I'm sitting on a 6' long, 3' deep desk with one to the left of me and one to the right. I have three other desks facing my "row", and then behind me the same thing repeats across the entire trading floor.

I don't have any privacy. I don't even sit out of the way in some alcove where no privacy might not be so bad, as it might be quieter, but I don't get that. I'm sitting right next to one of the loudest group of traders I've ever seen. I understand that it's their job - they need to yell and talk all day long. That's what they do. But to think that I need to be next to them for some reason - well... that's where I beg to disagree. As much as they need to have the noise and the walls of monitors, I need quiet.

But I'm out in the open.

Clean and clear view of the entire office.

Not a single piece of foam or wall to stop even one bit of the noise of the traders on the floor.

I found a reference to this Joel on Software article where he discusses the keys to writing better code:

The Joel Test

  1. Do you use source control?
  2. Can you make a build in one step?
  3. Do you make daily builds?
  4. Do you have a bug database?
  5. Do you fix bugs before writing new code?
  6. Do you have an up-to-date schedule?
  7. Do you have a spec?
  8. Do programmers have quiet working conditions?
  9. Do you use the best tools money can buy?
  10. Do you have testers?
  11. Do new candidates write code during their interview?
  12. Do you do hallway usability testing?

I might expand Question 8 to read: Do programmers have the right working conditions? Because right now, I'm wearing three layers of clothes and thinking about putting on my winter coat to stay warm. Being cold, hot, uncomfortable in any way, is going to hurt productivity. But that's what I'm thinking about lately. I'm thinking about simple peace and quiet.

Giving it the Ole College Try

When I started a year ago, I had never worked on a trading floor. I had visited plenty, did little bits on the floor, but never really worked day after day on the floor. I had no idea. And primarily because I had no idea, I thought I'd give it a try. I have always liked working with the traders and I thought it might be nice.

Well... when I found out what the reality of this situation was, I was still willing to give it the ole college try. Stick with it... maybe it'll get better in the future. Maybe I'll learn to tune it out. After all, lots of other folks work in this noisy environment, why can't I?

The answer to that question was I have no idea, but I can't. This noise level means that I have to play music to tune out the distractions on the floor, but that's not really good for concentration, it's just familiar, and a little better than the constant, random noise of the floor.

What Could Have Been

In the new space, we could have moved into nice quiet space. I say could have because we're going to be down on the floor again. My manager wants to be in the thick of things. I can understand his motivation, it's understandable. But that's also because he doesn't need to have peace and quiet when he does his emails and his best gopher impression to pop up and interrupt me to ask me to do something else.

There's no solution here. I've tried to make this point time and again. I've sent links to studies, and even this morning I sent my manager the link to the article. But it's not going to help. This is how it is. If I want something different, I'm going to have to move.

Crud.

Bean 2.4.3 is Out (OK, back in February)

Monday, March 15th, 2010

Bean.jpg

I was thinking about Bean this morning and decided to see if they had updated anything recently, and indeed they had! Bean 2.4.3 was released back in February, and includes Czech localization along with various enhancements.

Nice to see it's still getting updates. Pages and TextEdit need competition on the Mac desktop and OpenOffice.org is too generic to be a good Mac app.

JollysFastVNC 1.10 is Out

Monday, March 15th, 2010

I noticed this morning that JollysFastVNC 1.10 was out, and given that I might need a VNC client to get to some Windows boxes, it's the VNC client I've decided to have on hand. It's not something I've had a lot of use with, but it looks solid, and minimalistic, and that's good enough for me.

ClickToFlash 1.6b8 is Out

Monday, March 15th, 2010

This morning I saw that ClickToFlash 1.6b8 was out with a few fixes for YouTube, so I upgraded it within the plug-in. It's very convenient. I have to say that I have really enjoyed using ClickToFlash, and don't miss all the Flash adds that used to clutter all the pages I went to. Now it's boxes, and if I want to see it, I can. But the vast majority, I don't.

Can't get any better than that.