My Ideal Job

Posted August 7, 2009 by developnorth
Categories: Career, Software Development

This started out as a completely different post – one about spending the last month (plus) in Unemployment Nation, but it occurred to me that I should be focused on what I want to do.  I decided that I’ve done enough wasting enough mental energy on my previous job and the way I was discarded…I mean let go. 

Since I’m now looking, I’ve been think about my ideal job.  I’m imaging a place called Utopia Software Company.  Here are some of the elements of Utopia Software Company:

IT/Development  Work is Either THE Product of the Company or an Integral Part of the Company’s Products – In my previous IT jobs, IT was always viewed as, either a necessary evil or a black hole where money was poured with nothing coming out.  When the inevitable tough times would come, IT would be the first on the block.  In my first job, I watched IT get chopped in third. Recently, my IT department of three employees was reduced to one contractor.  The companies I worked for had lots of intelligent people working for them.  Companies where technology (not necessary computer/electronic) are key. You would think that if they could give IT at least some of the resources it needed that there would be a big return for the business.  But what IT got was usually the shaft.

Also, IT had little or no clout within the organization.  Trying to get things done that were needed for the IT organization to work better was damn near impossible.  No one wants to hear that we need a new air conditioning unit for the computer/server room or that we need this or that tool to do our job more efficiently.  And when trying to get the attention of management, if it had to do with IT, forget about it.  As friend of mine said, “You can’t spell shIT without IT!”.

That’s why I want to be part of an organization that either makes software or view software development and the systems as a key part of their business.  IT would not be considered a second rate department, but critical to the success of the company.  I would like to feel valued and supported.

An organization that ACTIVELY supports learning – One of my biggest frustrations with my corporate IT career has been the lack of opportunity for learning, particularly for classes.  I’ve been part of two corporations who SAY they value learning, but I have not seen it pan out.  I have rarely been able to take training I need just to be able to do my job, let alone learn any new skills.  It’s a good thing I can pick things up quickly, because that has been the way I’ve had to learn almost everything.  I did have one good manager who really let me take a number of courses to improve my skills – that was nearly 13 years ago.  I’ve had almost zip since. 

I want to be part of an organization that really encourages learning and gives people the time and resources needed to learn and continue to learn.  Allowing people to take web classes while trying to continue to do support work doesn’t cut it.  If I’m supposed to be learning something, I want to be learning it and concentrating on that. Not trying to learn a new database technology while supporting applications, correcting data entry errors, and fixing printers.

Pay and Compensation

I’ve worked for two companies whose view of pay and compensation couldn’t have been more different.  One paid people in proportion to their performance – the percentage of your raise was clearly tied to your performance that year.  The other company SAID they believed in performance based compensation. But if you worked your ass off or just did what was needed, you might get the same 3.5 %.  The one company expected alot out of you, but actually gave you something back.  Most managers at that company would give you time off if you had to do night or weekend support.  The other company wanted you to work even more than the former, but you were lucky to receive a pittance of an increase and no time off if you had to give up nights, weekends, or even holidays for support.

I want to work for a company that rewards their employees for a job well done with meaningful increases.  If the company expects a great deal of their employees, the employees should expect a great deal in return.  And night, weekend, and holiday support work should be compensated by either time or money. 

Room to Grow

In both my corporate jobs, there really was no place else for me to go.  In my first job, the only way up was into management and at the time, I wasn’t willing to make the sacrifices (move away from my family) to make that happen…I’m still not ready to make that sacrifice.  In my last job, there was, at least on paper, more technical levels for me to pursue, but I knew that no one would want to have someone of that level working in the plant…apparently they didn’t even want to have someone of my level working at the plant…but I digress…

I want a job where there is a technical and management ladder.  I was a pseudo manager for a while (all of the responsibility, none of the power), and I’m not sure I was real great at it then.  I’ve learned a lot since then (particularly what NOT to do) and think I have a better mindset for being a manager, but I still like technical things.  I’m not sure I’m ready to go into management, so I’d like a position where I could advance either technically or managerially.

In Search of Utopia Software Company…

Am I asking too much?  Does this company even exist?  In Central New York (state)?  That’s the kind of company that I would like to build some day, but for now, I’d like to just see on functioning in the wild.  My horror stories of Corporate IT are mild compared to many I have heard with psychotic management and cutthroat politics – I’ve been spared that.  But wouldn’t it be nice to work for Utopia Software Company or at least in the IT department for Utopia where dreams can come true?

And Now, A Rant…

Posted June 30, 2009 by developnorth
Categories: Miscellaneous, Rant

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…

Posted June 28, 2009 by developnorth
Categories: Miscellaneous, Morale, Rant

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?

Posted June 16, 2009 by developnorth
Categories: Single Developer, Software Development

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!

I Fought The Law…

Posted May 4, 2009 by developnorth
Categories: Morale, Uncategorized

Well, I did it. I talked to my manager today about how unhappy I am in my job, particularly about the lack of training. Before I tell you how it went, a boring digression: 

One thing I neglected to mention in my previous post is the gradual erosion of IT resources since I joined almost five years ago.  Towards the end of my first year, my manager (who also did IT project work ) left the company…and they didn’t rehire anyone to fill the role in IT.  I’m sure the headcount where somewhere, but I don’t know for sure.  Then, three years ago, my co-worker was outsourced to another company.  He’s now responsible for the PC’s, servers, and network (for which he was already the primary support person) and I inherited about 40 % of his job (and got rid of precious little).  So I now have the work of two people.    Then, to top it off, I have now been asked to answer any PC related questions if someone calls/pages me instead of calling the Help Desk (that we pay for with each PC).

Not getting my training and hearing that someone else was approved for elective training made me blow my stack last Friday.  Fortunately, I didn’t talk to my boss because I was VERY angry.  So after committing myself to do it in the blog last night, I had the discussion with my manager today.  I let him know I was very upset about what I found out on Friday and said that as a result, I felt like what I do must not be valued and that I felt set up for failure (I had said this to him over a year and a half ago).  He dismissed how I felt, but miraculously, the money has been approved.  I don’t have the actual training yet because I’m having problems getting hold of the vendor (curse you companies that refuse to put phone numbers on your websites!  People still need to TALK sometimes!), but it’s going to happen.

I feel a little better because it’s off my chest and I’m finally getting the training.  But a part of me knows that nothing else is going to happen and I’m still going to feel unvalued and set up for failure.  I was thinking today that if I was a manager and one of my reports came to my office and said what I said, I would be floored and try to move heaven and earth to get to the bottom of what’s happening.  I’m making a vow that if I ever am successful enough to have my own company (because I’m sure not getting  a promotion here), that I would listen to my employees and at least consider how they feel.  If someone is that unhappy, something is seriously dysfunctional…which is a good description for how things are.  I’m sure this will come back to haunt me in my performance review, but I had a very small win today.

Sometimes, that’s all you can expect…

When The Going Gets Tough…

Posted May 4, 2009 by developnorth
Categories: Uncategorized

As I have mentioned before, I have a full time day job. I’m the IT person for a manufacturing plant. I’m not responsible for the PC’s, servers, and network, but everything else is my responsibility. Part of that includes our ERP system…not SAP. It’s a smallish ERP system made for our industry type and it’s built on the Progress database engine. I know SQL and Progress is most definitely NOT SQL in it’s native setup.

Since I got assigned responsibility for this application two years ago, I have been asking for training in Progress. There are no books you can read (at least I can’t find any), your only choice is a training class or a web class. Either way, you have to pay.

Last year, I wasn’t allowed to go because I was working on a critical project..so critical, it was cancelled a month later. When the next Progress courses were offered, I couldn’t go because of a travel freeze – although others continued to go. I asked about getting the web classes since that wouldn’t require travel and…nothing happened.

So I ask AGAIN, this time for web only. I get the OK, but there doesn’t seem to be any money now. However, someone else in my group (non IT) talked to the Plant Manager and will be going for not one, but two ELECTIVE classes.

So what do you do?
a) Pretend you don’t know and don’t make any waves. The economy is bad – you want to keep your job.

b) Layout your feelings and try to understand the seeming illogic behind it.

c) Rant and rave and make a big stink.

I’m planning to try to to avoid C)  – although I have to tell you that on Friday, I might very well have done that. I avoided my manager because I was afraid that if I said anything, I might regret it.

Tomorrow though I have to address this. It feels to me like IT has no value whatsoever to the organization based on what has happened in terms of resources and assignments. This just seemed to confirm that to me. I’m going to stand up for myself and tell them how I feel. I’m not sure it’s going to do any good (and if pass performance holds true, this will come up in a negative way in my performance review), but to quote R.E.O. Speedwagon, “I can’t fight this feeling any longer”.

Look, I knew that IT would never be REALLY important to the manufacturing plant, but I figured wouldn’t be least important. I don’t know how this is going to play out, but I’ll keep you posted. Wish me luck when I talk to my manager on Monday…

Crisis of Confidence and Motivation

Posted March 25, 2009 by developnorth
Categories: Morale, Single Developer, Software Development

“You fall for reality,
You’re bruised and defeated,
Then you learn to fall in love with yourself.
That’s motivation”

“That’s Motivation” – David Bowie, from the movie “Absolute Beginners”

It’s been one of those weeks where I feel I’m tottering between brilliance and stupidity.  This is one of the hardest parts of being a solitary developer.  One minute I’m feeling great because I’ve done something I didn’t think I could do, the next, I can’t figure out something that I should easily figure out.

Although I’ve been developing for 13 years now, I’m old enough that I missed out on object oriented development in college and I’m now trying to play catch up.  In my own development project, I’m working on a basic Windows application talking to a database.  It should be straight forward, but I seem to be complicating it for myself.  And I find myself constantly rethinking what I’m doing  – should I use the basic DataConnectors or should I look at making it object oriented?  Should I be doing Object Relational Modeling?  Should I use Access, SQL Server Compact, or Sqlite for the back end database?  All the while I feel like I’m spinning my wheels and redoing work I’ve already done.  Or spend a lot of time on something and scrap it and take a different approach.

This is one of those times when I desperately wish I had an other developer as a reality check and guidance.  So when faced what seems like an endless task, how do I get enough gumption to get going on my development work?

Here’s how I do it:

1) Blog about my troubles– If I get my troubles and feelings down in actual words, they stop rattling around in my head and distracting me like shiny little toys.  Also, feedback from the blog might also point me.

2) Step back and break what I need to do down into tiny tasks – My biggest problem with this step is having enough continual time to look at what I need to just build a to-do list that I can whittle down to nothing.

3) Let it simmer and come up with “brilliant ideas” in the shower and the drive to work – I sometimes comes up with my best ideas here.

4) Just keep swimming – Dori’s mantra from Finding Nemo is a good plan.  You got to keep moving because stopping can be death, especially in development.  Keep moving.  Keep trying something, anything.  Eventually you will figure out what works for you.

So I’m going to make some definitive choices (at least for now) and break this project down into bite sized chunks.  I think I’m overcomplicating things and I really should just evolve back to the KISS (Keep It Simple Stupid) method.

Wish me luck!

“I’ve nothing much to offer,
there’s nothing much to take,
I’m an absolute beginner,
but I’m absolutely sane.”

“Absolute Beginners” – David Bowie, from the movie “Absolute Beginners”