Top Things That Annoy Programmers
kevinwilliampang.com
kevinwilliampang.com
Am I the only person on earth that rails against this? I trade my time for money, but I am no-one's "subordinate". To me, a manager is someone who makes sure I can get my work done and checks on the overall progress.
I guess I'm asking for a mighty downvoting but I really want to know if others think its okay and why its okay to be a subordinate (especially when the superordinates are so often less than impressive human beings).
That's because you can't get away from human nature. Most people can't lead. They need someone telling them what to do and keeping them on-track. The ones that do become managers, presidents, ceos, or run their own company.
These are two separate skills - the ability to lead others, and the ability to work productively without being led.
I'm not convinced either claim is true to be honest - it's probably more true to say that most people have never had the opportunity to even try to develop these skills.
One skill leads to another. If you can show upper management that you have the ability to work without being led, you can eventually become a manager.
"I'm not convinced either claim is true to be honest - it's probably more true to say that most people have never had the opportunity to even try to develop these skills."
People that want to lead, will find a way to lead (either starting their own organization, joining an existing one, or worker their way up through management at a company). If you aren't given the opportunity, it means you aren't interested in becoming a leader (or just aren't trying). Leadership isn't just handed to you.
How often does a business/company allow you to work without being led or managed? If that's the case, the company is very small (and you are the manager of yourself because nobody else knows what is going on). The next logical step to this is to hire more people under you.
Most companies aren't going to give you a management role. You need to prove you have the skills in some way.
However, to answer your question: if someone can determine whether you get to keep your job, whether you like it or not you are that person's subordinate.
Inferior denotes one's class in society, subordinate denotes one's position in an organization.
It's interesting how two different perspectives on what is largely the same arrangement can yield such different answers.
By organization, if someone can fire you, you are their subordinate. By productivity, the "subordinate" is not necessarily subordinate at all. The working relationship may be much more than of peers, where the pair of them manage to both get things done, and keep people informed of what is going on. It might even be that the subordinate in the traditional sense is anything but in the tangible sense.
What sucks is that the traditional organizational arrangement has a very difficult time representing this. It mandates a strict hierarchical arrangement of staff, even if the staff themselves does not view themselves as hierarchical.
Because, in this arrangement, one person is usually granted the ability to terminate the employment of the other, there is necessarily an adversarial component to their relationship. Even if they work as peers, one has to report to a chain-of-command about the other.
For people and teams who don't need this sort of arrangement, having it imposed absolutely sucks. But, because it so entrenched in corporate tradition, it emerges anyway.
I rail against it as well.
There are people who don't need it, but those who don't need or want this arrangement get it anyway, regardless of the detriment it causes. I get the sense this happens simply because of the perspective that it must necessarily happen, because people have all these preconceived notions about management and subordination that they have a hard time letting go.
I think we'd lose the adversarial perspective if we lost the notions, and that would be a good thing.
Trying to get my head around this. What does "keeping one's job" even mean? isn't there still a mutual contract, and both parties can break out of it? So the boss can act on behalf of the company, and you can't. But presumably you can still quit the job on your own decision. Does that make the boss your subordinate?
It seems the boss has more leverage, as the worst you can do to him is quit, whereas he can fire you. But both parties can hurt each other.
I hope I'll never have to enter such an environment again.
No, but I suppose it might imply that you could be your own subordinate. Since the boss can fire you, but you can't fire your boss, you have a subordinate relationship.
To me, a manager is someone who makes sure I can get my work done and checks on the overall progress.
And what work is that? For most people their manager sets project goals and direction.
Sadly, I've dealt with management that was more interested in protecting themselves than the people they "managed."
You're not subordinate to anyone regarding your life as a whole. If you're not a fan of your boss, you can quit and then he won't have authority over you anymore.
A typical conversation would involve them saying something along the lines of:
"I just need you to do this (insert non-trivial task) for me. It's really easy, it should only take you about five minutes."
I have the somewhat mixed fortune to be currently living with my parents (hmmmm) - which has it's advantages but, man, the interruptions. I have to go to a coffee shop or my girlfriends at weekends just to be able to do an hours coding in peace :D
Just sayin'.
Unless you really only have one page that never needs to change (and when has that ever happened?), programming is going to beat coding every time. And it's more fun!
A lot of the repetitive stuff that professional programmers do could be automated. Writing code to automate the problem and then having the problem itself solved automatically tends to be both more efficient and more interesting than tediously coding up the naive solution many times. However, it also requires actual thought and understanding, where an entry-level drone copying and pasting from a web page can follow the tedious, repetitive approach. This is one reason why good programmers are much more productive than bad ones, and it's one of the reasons good programmers tend to dislike working with bad (naively written, non-automated) code.
You can find creative interest in anything. I always end up learning and enjoying some part of a project thrown in my lap.
One thing that annoys me are arbitrary deadlines. I once had a "manager" tell me that to help me out in working faster, he's going to put a deadline on the project.
Of course that's why the project was late! It's because I had no deadline. It's not because it needed 10 programmers and I was the only one working on it. Needless to say, I didn't work there for long.
10. Requests that begin with, "All you have to do is...".
9. Deadlines fabricated by others.
8. Single character variable names.
7. Being spoonfed requirements on a need-to-know basis.
6. SQL Selects within iterations.
5. Requests that describe how, but not what.
4. Variable names that don't describe what they are.
3. Meetings without beer.
2. Dropping everything for the emergency du jour.
1. Top 10 Lists that infer that all programmers think alike.for (int i=0; i<items.length; i++) { //do something small with items[i] }
However, I should confess that I usually write it as ii:
for (int ii = 0; ii < items.length; ii++) ...I personally find the doubling awkward, and with modern editors I use semantic searching much more than raw text scans so the benefit of doubling is marginal, but there is at least one sensible reason you might choose to do it.
As I said before, it's probably not as useful with modern IDEs that have semantic search capabilities, but there is a genuine reason some people prefer the "ii" style.
(I'm not a huge fan of point-free, I'm just being facetious ;)
Huh? My worst managers have programmers trying to break into management while keeping their hand in programming by telling me how I should structure my programs. My best managers were non-programmers who had deep understanding of the development process and thus would get out of the way while did my thing.