In these current economic crises, we are sorry but we see no other alternative but to reduce our staff.
We have to lay off André.
A friend, let’s call him Bill, because his name is Bill, sent me this today. He got laid off from the company I worked for at the same time as me, both of us part of the 60 people who lost their jobs four weeks ago. I thought it very poignant that when companies cut jobs, even though they claim it’s all about the money, it’s the workers that get cut the most, not the management. This is a classic image, showing a whole team of managers just standing around, while a solitary peon is hard at work. Ironically it’s the worker that gets to lose his job, leaving behind a team of managers but nobody to do the real work.
Sadly these days few companies want to pay for experience, the kind of experience that both Bill and I have built up through our careers. They would rather employ more junior people, who haven’t learned the skills and been through the experiences that we have, which in Information Technology is critical to the understanding of what you are trying to do.
In my profession, very rarely does the user know what they want. They might think they know what they want, but you have to out think them and give them a prototype of your improved version of what they asked for, so that they can then criticise that and move the design more in the direction of what they really want. It takes a lot of experience to understand this, not something that a fresh university graduate or trainee can easily grasp. It takes years of experience working with many people in different companies to fully understand the nature of people, and to be able to create systems that work well and that also are not overly complicated.
All too often I have been given specifications for a set of computer programs that would have been horribly complicated to write, and even worse to try and use. As the design phase went on, the complexity just kept on increasing, and at the point where the users were satisfied with the specifications, I had to step back, take an overall view, do a bit of lateral thinking, and have very often come up with an amazingly simple design that is easy to program, and easy to use as well, saving the company a lot of grief in the long run. Inexperienced IT people can’t do that. It takes learning the hard way to understand what might go wrong, because invariably it will go wrong.
The other thing with programming is that it’s not enough to cater for validation rules that the user wants to be programmed in. If there is any potential for a user to key something in that is invalid – they will do at some point in time. I always assume the trained monkey rule, in that if you gave the program to a monkey, it doesn’t matter what they type on the keyboard, if it’s invalid, it should not be allowed.
Junior programmers also take shortcuts in their code. I have always tried to expand on this which helps greatly in the long run. As an example, take the validation of a product code. An inexperienced or lazy programmer might create a single error message to be output in the case that the user enters an invalid product code. Great. However, assuming you have to check for (a) product code does not exist, (b) product exists but is obsolete, (c) there is no inventory for this product, (d) this product is not stocked at the specified warehouse, (e) customer is not authorized to purchase this product, and so on. If the programmer was to output a single standard error message, how is the user to know what the problem is? I use this in addition to test the program, since I create specific error messages for each type of error. So when I test this program, I can check for each situation or combination of conditions, and by looking at the error that is generated know that the program is working, prior to handing it over to the user. So basically a little extra work makes my job easier and the user a lot happier also, with less need to come back to me because “this is a valid product and the program won’t accept it”.
Well it’s four weeks tomorrow since I lost my job, and I am still working on trying to be independent and to make a living online. Trying and struggling so far, but confident that if I plug away at it long enough, my dream of shaking off the shackles of working for someone else is getting closer. Then my job security is down to ME and ME ALONE. It’s up to me to find those income streams and to keep working at this, until I can be financially independent from the employers who want to enslave us, until it’s time to spit us out onto the scrap heap once again.