Goal Driven Relevant Decision Making
I had a real epiphany today. I suddenly realized that I am so busy doing work at work, I don’t have time for growth. I find that there is no room for judgment or creativity on my part. I am told what to do, how to do it, and the order to do it in. And the priorities may change from one day to the next. I am not allowed to provide input or innovation. It’s almost mechanical. The only thing I really get to decide is determining how long it’s going to take, but even that gets negotiated. To make matters worse, I get thrown the task of fixing other coders bugs. I feel like an extension of someone else. Like I am there to be the clone of someone who feels they need another body. They decide what needs to get done, how they want it done, whether or not it sounds too difficult, and how to implement: design, function, and format. In a word, micromanaged. Didn’t that go out of style with the 90′s?
How did I come to that realization? It has taken some time to realize, but it hit me full force today when I couldn’t even think outside the box for a simple reordering algorithm. I was given the opportunity for a brief moment and I froze! I have allowed myself to get to this point. It’s not from lack of effort however. I always put forth ideas, best practices, and user interaction improvements. The problem is, someone else has control and I always get overridden. I don’t even know if my ideas get passed on to the powers that be. I am not included in any discussion, asked what I think, or allowed to propose designs or functionality. Again, I am told what to do, every step of the way.
I find that I enjoy writing code on my terms. Meaning, I like to be given a set of problems, business rules, requirements, or manual processes that need automation and then being turned loose to come back with a proposal. We can then take the proposal and discuss any relevant feedback and start the process. I say relevant because currently most of the feedback I get is, “because I think this is better.” Really?
I have spent a long time in the IT industry. Since 1997 to be exact. I don’t claim to know everything and I at times can be sloppy if I am not careful. Quality is always at the top of my priorities as someone I respect has taught me. But one thing I am really good at and that is logic. I can think down paths that others don’t think about. Most times I can see the beginning from the end. I will try to demonstrate.
We are working on a project. On Feb 3th, I see something in the project that is a concern. I raise the concern. As I recall from the follow-up phone call (from over a month ago), the instruction given is “It won’t matter.” Fast forward to March 28th. A bug gets filed saying it is an issue. When I raise the concern again, I get asked for proof of the follow-up phone call. Really?
To prove to myself I am not fabricating these topics mentally, I did some footwork over the past week to test the waters. I sent an email to push back on the user interaction design of a checkbox in a form. This checkbox can be used for two separate things. It can be used to archive a process or to roll back the process. I proposed a more straightforward solution. One that will reduce the usage of the checkbox to a single function, thus not requiring the user to have to think about what they are selecting and how it will affect each button. The response I got back was, “It sounds too complicated. Besides, the business has already signed off on it.”
To make my case further, I had a discussion today about a bug filed on the project we are working on. It turns out that on one of the forms, if you submit a file that is too large, the form will go blank. This is how it works in the current production environment as well. So I fixed the code. I did some further examination and there is another form that does the same thing. So I file a ticket on that and raised the issue. However, that set of code was written in a way where the file upload is tightly integrated multiple times within each of the processes. So in order to fix it would take a little more effort. The response I got was to push it to a future project. Both scenarios were exactly the same. One was bumped and one had to be fixed. When I asked how we determine what gets fixed and what gets bumped to a future project, I was told, “Well, I decide that.”
I don’t have a problem with someone making decisions. But to say a bug is of high priority when the same bug exists in another piece of code is not high priority sounds horrifyingly capricious. I lose respect for individuals who cannot qualify the decision making process based on things that are relevant to the overall goal, i.e. quality, performance, usability. The basic reasoning I was given for decisions made in this project were based on time available to hit a specified release date and complexity of the code. Neither of which aim for the over all goal of quality. In fact, they will do more harm to quality than good. This was proven today when two bugs issue found today. One getting fixed and one not. These types of decisions can send mixed messages to a team. Maybe that is why I am always confused about what we are working on. I cannot see any logic or patterns to the decisions that are made. This veils my clarity. Did I mention I am very logical?
In conclusion, what does this all mean to me? What exactly am I trying to say? Maybe I am just going through the motions at work. At least that is what I feel like. I am afforded very little creativity and it is stifling. Maybe that’s why I spend off hours writing my own coding projects. Am I dissatisfied with my employment? No. I enjoy the people I work with and the work I do. But I do need to think of a way to try to change the environment. Specifically HOW we work. It will be difficult, but I need to approach it carefully. I am the David against the Goliath. I may or may not succeed. But something has got to change. I need to feel more like a contributor and less like a robot to really enjoy my job. Do you have any suggestions on how I can assert myself without getting myself fired?
5 Comments
Chuck Burgess on March 29th, 2011
Iyba, at first read, your comments seem fatalistic. But as I reread what you are saying, I really appreciate your perspective. You may be right. You have keen insight. The conundrum I face is that the company is very results driven and we succeed very well as an organization. So I cannot say failure will happen.
My main concern is what you mention in point 1; that my skills will drop. That is what I have already experienced to a small degree. I try to focus on things that will keep me sharp, but it is challenging in an environment like this. That is why I spend time after hours working; so I don’t lose my edge.
lyba on March 29th, 2011
fatalistic from the perspective “your work is your life”, if you consider other areas of life this may just be an inconvenience you have managed to deal with
you may actually balance this inconvenience by other means, and is not as troublesome as you think it is
lyba on March 29th, 2011
forgot to mention:
by saying skills will drop I also meant that your skills will not raise to your potential as you will not be exposed to the environment that stimulates you for the raise…
still, it’s just a matter of priorities, raising skills may not be as critical at this moment if you consider other areas of life…
enjoy, and I recommend the book – will give you good insight into this
Chuck Burgess on March 29th, 2011
I will surely check it out. Thanks!















>
lyba on March 29th, 2011
in exchange for a filter code few comments:
- read Peopleware: Productive Projects and Teams it will tell you that some programming organisations are 10 times worse then the best, if yours is like that your skills will drop (for reasons explained above and others)
- if your salary depends on the time spend at work and you have other means to care for the skills why do you care? Ignore poor management practices while you’re there, enjoy the time elsewhere, switch to organisation that is raising not falling when you have the opportunity – it’s a small shift of your mind/perspective to adjust to situation, being an observer of the fall is a kind of enjoyment anyway
- I’m not sure how big is your organisation but it’s very unlikely you will change anything, don’t waste four years to find this out, shifting an environment from the perspective of a programmer is a lost battle – shift your mind, but do not fall with the environment, dedicate an effort to finding a better place