Well, I have been working with an IT giant since about three years and almost all that duration I have worked with my current boss. Our company has a sort of written constitution of code of conduct and ethics to create a productive and respectful work environment, however there are several awkward situations were there is a kind of standoff between me and my boss on technical issues and I just don�t know how to solve these differences.
Like, I think my boss is basically a c++ guy and has very little respect for things like design patters, he probably thinks its unnecessary bureaucracy � I think he gives excessive importance to performance, mostly performance is his excuse for breaking all good design rules�and things like that. I was just wondering if any one of you guys has had this kind problem and how they went about solving it or if any company has a proper process for solving these kinds of issues.
That�s about it, Thanks.
"Let the one among you who has never sinned throw the first stone.." -A Hero
Rebellion sometimes works. If you can get enough people together who think like you do it may be possible to just go your own way, ignoring him until you have a new de-facto process and present that to HIS boss (with the proof that it's superior to the current one). That will of course potentially turn him into an enemy, so you need to be willing to face that situation and win out (meaning, get him replaced). More frequently (especially if the rest of the team is of the same mind as that boss), defection is the only option open to you. Either find another place in the company or find another company.
Yes, unless you can prove to him that there are better solutions, and it should be relatively easy with him being a C guy, but the problem might be is that he might not be open minded, and if that is the case, I really suggest running away. Just tell him that "Java is not C"
You want him to think like you but you don't seem to be able to think like him even though from this one post I can see you've already overlooked something.
In the old school of software engineering, performance was everything. When I say old school, we're only talking about ten years ago, probably less than that even. It's easy to forget that software design is a rapidly evolving process.
Performance is important. What you have to do is demonstrate what the trade-off is. If your code is not optimized for speed, what was the trade-off? Is it easier to maintain, does it scale better (which really is just another performance metric), will it be easier to extend, etc. If he doesn't understand the benefit, why would he get on board with it?
Look at it from his point of view. If he wanted you to do something and you couldn't see the benefit and it went against what you think is good design, would you be willing to do it?
This is especially importance since he is the boss. If one of my team members told me that I needed to do something different than I am used to doing I would need more information than just "It's better".
you prob are not going to like this but here is my 2 cents. if you have not figured him out in 3 years you aint gonna do it in the next couple of days. do you like the money you getting right now working for him? if so roll with it if not get out, if not for the money nor the glory [promotions] no reason to work there.
Joined: Feb 14, 2005
Rebellion: I actually get stubborn sometimes but I don�t really enjoy that, things start getting personal then � it becomes a sort of ego battle. and HIS boss has even less understanding of Java ... he probably thinks that java = c++ + String class
Prove your solution: this is the biggest problem, can you prove anyone that its wrong to call a business logic (which is usually called by an ejb) right from the controller servlet � I think the benefits of good design are not that tangible, how do you prove that its wrong to create an instance of a concrete sub class in its very own super calls (by the way am I wrong with this one?)
Performance: if someone uses arrays all the time in the code since it�s less costly than a collection then you need a pole to bang your head!! That sort of performance is what I am talking about. annoying c++ hacks, annoying c++ namings get_Long(), get_My_Name()
Iv been working with him all these days because i thought I was getting much more serious work than someone with my experience would get, just my perception. And yes, quitting or moving to other team is an option � I am considering it. [ November 05, 2006: Message edited by: john wesley ]