Archive for June 2009

And Now, A Rant…

June 30, 2009

One thing that’s been bothering me about my downsizing…OK, there’s plenty more than one thing, but this is bothering me right now.  Working in IT, it’s expected that you can be on call ALL THE TIME – evenings, middle of the night, holidays and you have to go in and fix things completely uncompensated in either money or time. 

When I asked my manager about comp time for the time that I drove in on a weekend to bring things up after an extended power outage, I got told “that’s part of being a professional”.  And the day after I stayed almost an hour and a half late to fix a printer that would mess up production, I was chided because on the same day, I arrived 5 minutes late.  The company got 1 hour,  25 minutes extra time from me that day, but the five minutes was a problem.

And what did I get for all of this extra effort?  I was about the first salaried person to be downsized.

Here is my call to arms to my fellow IT workers: 

NO MORE UNCOMPENSATED WORK!

Part of being an IT Professional means making changes when they have the least effect on systems and the users.  This necessitates after hour/weekend work.  I accept and agree.  HOWEVER, that is not card blanche for the company to steal that time for you without compensating you with either money or time.

Professionals – doctors, lawyers, accountants – all charge for their time.  They are compensated when they work.  Why should IT workers be any different?  Employers have successfully used the whole “salary exempt” classification to weasle more work out of workers without compensating them for it.  It’s time for us to just say no to this game.  If we are told we have to do the work on non working hours, we get either time or money in return.  Plain and simple.  And we have to be given the ability to use that time!

I did it out of a misplaced sense of loyalty and professional pride…and it got me an early ticket to the unemployment line.  I’ll never get back the time I didn’t spend with my wife and son when I had to go in on the weekend to restart systems or see my son go to school because I got back home at 4 AM because of a problem and actually wanted a few hours sleep before I returned.

I think every person in IT should adopt the mantra of the movie “Network” :

“We’re mad as hell, and we’re not going to take it anymore!”

And Then There Were None…

June 28, 2009

On Wednesday, I got a nasty surprise at my day job.  I went to check my mailbox when my boss asked me if I had a few minutes.  I walk with him to the conference where the HR person is sitting.  I’m thinking we’re talking about training because I had been fighting like gangbusters to get the training I need to do my job.  But that’s not what this talk is about.  I was selected for the Involuntary Separation as part of an ongoing effort of corporate. They politely explained everything to me, led me back to my office where I packed up my stuff and was walked out of the building.  One of my close friends at work had also been the lucky recipient of an Involuntary Separation so we commiserated over coffee.

I have no idea what they were thinking.  There is now no IT at the plant and an ERP and a main system that runs most of production that need support – and no one to support it.  The ERP system was supported locally since Corporate runs SAP and the other system was a Visual Basic system built over 13 years.  And no there’s no one.

I have run the gambit of emotions – anger, shock, depression, relief (today I seem to be centering on depression).  I know that this too shall pass, but it doesn’t make it any easier while I’m going through it.  Mostly, it  makes me feel like wasted four years of my life at a place that obviously didn’t think much of me if they can get rid of IT so cavalierly.  It’s not like my company is losing money – it’s probably a case of not making “enough” money.  Truthfully, I don’t see how they are going to save money and support the business because they’ll have to pay contractors to do it all.

It makes me mad for all of the middle of the night trips I made to get systems up so that production could continue, the working on Christmas holiday so that payroll could get processed and financial closing could complete on time – all obviously meant nothing in the end.  It’s an object lesson to me about trusting any corporation – all they seem to want is to suck out your knowledge and time and when you become inconvenient, you are jettisoned.  And this isn’t a “if we don’t cut people, we declare bankruptcy” kind of decision – this is a “we’re not making enough money” decision.  That I can only hope hurts them in the long run…not that I’m vindictive or anything…

So after having a pity party for myself, I’m redoubling my efforts on my business in hopes of finishing my product this summer and starting the search again.  The last time, it took me over a year before I found this position and the economy was better.  I don’t like my odds this time…

As someone said to me recently, God doesn’t give you anything you can’t handle – sometimes, I wish God didn’t have so much faith in me.

Death of the Single Developer?

June 16, 2009

I was reading the following article in InformationWeek and I was struck by the following quote:

 “The cliché of the solitary coder is dead.”

The article goes on to talk about a number of Corporate IT application development groups that have done some pretty phenomenal things for their companies. 

This is a subject near and dear to my heart as I am the IT department at my day job and I am the only developer for my business.  I can categorically say that in my day job, it is certainly not by my choice. 

Is It Possible to Deliver Great Results By Yourself?

I don’t know – I think it depends on the developer.  I can say that in my twenty plus years of IT, the amount of stufff you need to know has grown tremendously.  For the applications that I typically develop (your based Create Report Update Delete – CRUD applications – and yes some of them are just that), here’s a short list of what you need to know:

  1. Database/Table Design
  2. Object Oriented Design
  3. User Interface Design
  4. Requirements Gathering
  5. Application Development tool
  6. Testing
  7. Implementation/Installation Packaging

Notice I didn’t even get into the application development tool of choice or platform – Web vs. Windows.  This is a pretty steep learning curve for anyone.  A person can become a master in any single topic I listed and still not know everything.  I find it ironic that while a development tool like Visual Studio .NET can make you more productive because many of the things you might want to do are part of the .NET framework, it is so huge that it seems like an endless task to figure out how to do what you want.

Is It Desirable?

I don’t know;  I have mixed feelings about that.  As a developer, I love owning the application and being able to point at it and say “I built that.”  That’s on the good days when everything is running as it should.  On the days that there seem to be more new bugs than lines of code in the system, you want to hide in a cave, lest the users arrive with pitchforks and torches…

But the practical reasons that it is not a good idea are:

  • All the knowledge of the application is embedded in one person’s head.  I don’t care how well it’s documented, there’s stuff that someone will want to know quickly that is very difficult to extract from a source code listing.
  • There is no second eye for design choices.  It is that person’s design, warts and all.  While I don’t recommend design by committee, having other resources to assist in the design phase will certainly create a better product.
  • The pressure to get it done can override a developer’s natural (or unnatural) tendencies to follow good development practices.  Sara Chipp wrote an excellent description of this phenomena here

Is It Really The Death of the Single Developer?

In a word, no.  For one very simple reason: COST.  Many small and medium size companies (even if they are part of a bigger corporate parent) can’t justify having a team of programmers.  These companies always need someone to develop something that works exactly the way the business works.  As much as the big software vendors like to throw everyone in the same functionality pool for their applications, truth be told, each business is unique.  It has a unique structure, culture, and institutional history.  All that stuff becomes the DNA of their business processes.  And as a developer it’s your responsibility to turn that DNA into something – hopefully not a genetic mutant hell-bent on world domination…

Can a single developer do that?  The answer is…it depends.  If the company realizes all of the things that a developer can bring to the table and is willing to invest in that developer in terms of training and decent tools to do his/her work, it might just work.  The developer does have to be linked into the business and know what’s happening.  He/she has to be sensitive to the business climate, really understand what it is the business wants from the developer, and have his/her pulse on the work going on out on the floor.  Likewise, the business needs to listen to the developer when it comes to what’s needed to accomplish a project in terms of time, money, resources (not necessarily other developers – users too!), and respect the developer’s technical decisions and expertise.  If the developer says “If we don’t start to rewrite this critical business from Visual Basic 6 to a .Net platform now so that it will run when we migrate to Vista/Windows 7, we are going to be dead in the water”, you might want to listen to him/her, instead of (figuratively) patting him/her on the head and saying “That’s nice. When’s the next release?”.  If you find a company like that, please let me know…

However, in many small shops, the developer is also the Server Admin, Network Admin, PC Hardware and Software Support, and Printer Repair person.  Now take that list from above and then add everything you need to know to support THIS list of duties and I fear that the majority of people’s heads would explode at the amount of knowledge needed.  And end result?  I think it’s safe to say that the company gets exactly what they paid for – a jack of all trades, master of none.

Conclusion

 I still think it’s possible for a single developer to succeed.  While the single developer has many hurdles to clear that aren’t found in a development team, there are two things that the single developer and the development team both need to succeed – a clear commitment from the business to support the development team and excellent communication between the team/single developer and the business.  If I ever can find a company like that, I’ll let you know!