|
It's very frustrating that, while having the company's interest at heart, you feel like you have to 'fight' for doing things right. To me, this is a clear sign that it's time to move on.
I always try to do things to the best of my abilities / time-constraints / etc., and while I'm not above delivering code not 100% up to my own personal standards due to good reason(s), getting your efforts squashed every time because of people's idiocies and/or politics will drive me out of any gig very, very quickly.
This is all personal, but my 2¢ would be: do your best with what you're given, honestly. If you get shut down for stupid sh*t, leave. Others will be glad to have you on board.
|
|
|
|
|
Thanks for your insights.
Jeremy Falcon
|
|
|
|
|
The only solution I've ever found for that problem is to lead by example. It sounds very New Age-y, but it seems to be true. Implement solutions to the code quality problems in your area of responsibility, let your boss know what you've done, and why. Offer to help with the worst problem areas. The difficult part of all this is doing it without looking like a grandstander and pissing off your coworkers.
Software Zen: delete this;
|
|
|
|
|
Well said.
Jeremy Falcon
|
|
|
|
|
Thanks, Jeremy - it's the benefit of learning how not to be an asshat of a coworker .
Software Zen: delete this;
|
|
|
|
|
Yeah, I have been in a similar boat to you in the past about other people's code. Usually, a lot of code has been turned quickly out by programmers transient to the project and I'm the guy left to pick up the pieces. This used to be really frustrating until I was reminded that it is precisely because I'm the 'better' developer that I'm the one doing all the refactoring.
So, it is important for you to highlight the deficiencies in the code base but unfortunately it is there and everyone is stuck with it. You could argue for a complete re-write, but the is unlikely to happen just because you say the code is 'bad'. If it is working and/or being sold, your management won't give a fig about your problems; and, after all it is your problem so no complaining and get on with your job
In this situation there is one thing I say fairly early on and it goes along the lines of: 'this code isn't where I want it to be. All the while I'm working on the code I'll seek ways to improve it incrementally until it is. Or until I'm reassigned'. On that basis you'll have to accept the process could take years and make sure your management know this is a normal part of your day to day activities of fixing faults and CRS.
Then I will look for opportunities for refactoring, on the justification of a fault to fix or a CR. Always ensure you've got a good testing regime in place to attempt refactoring (that doesn't necessarily mean automation) and you are able to mitigate the risks of the change. e.g. rollback, incremental changes.
It is important that your management build confidence in your ability to refactor code, so pick your refactoring targets carefully to begin with so you don't mess up. (You may not know what past history your firm has had along these lines).
Sometimes refactoring is simply not appropriate and a direct rewrite would serve you better. Again choose your target carefully, but in a rewrite it will allow you to develop and test in parallel and to establish a core code base to build out, from within.
You could champion a set of standards and best practices within your group. Rather than take on the mammoth task of refactoring yourself, perhaps a change in team culture would help. Don't focus on variable naming conventions and the like. That's irrelevant. Focus on things like project structure, where library methods live, code templates snippets etc. Consider your standards in three tiers - must adhere to (e.g. things that break the build or can cause serious problems such as memory leaks), should be applied where appropriate (e.g. usually best followed, but there may be good reasons for deviating from standard) and advisory (e.g. there are various different ways of implementing IDispose depending upon the circumstances).
Finally consider ways to present your arguments in objective terms, because the 'right' way to code is incredibly subjective. Here is a list of ways to highlight the problems in the code base:
1. Static code analysis.
2. High incidence of faults in a given area; make sure your replacement doesn't generate as many faults as before!
3. Performance problems in a given area.
4. Obsolete technology.
5. Complicated interactions with other systems and between sub-systems.
6. Complicated build and installation process. If your code doesn't build out the box, requires 'installing' before you can compile it etc Streamlining build->release->test should see a measurable benefit in the faults database and project lead times.
Hope this helps.
|
|
|
|
|
Nothing to do with the previous thread with what some might say is a similar name (but it is clearly different, so I don't expect copyright problems).
Ten minutes ago, I used my winio tablet (the only winio device I have) to browse some pictures with the superb IrfanView.
I double-tapped the screen to go to full-screen mode, and looked at what I wanted to look at (wiring diagrams, not booty, unfortunately), and then...
And then What! I couldn't get out of full-screen picture-browsing mode! Tap and double-tap (click and double-click) are browse forward and backward!
The windows button only brought up the (hidden) taskbar one time out of five, but it would only accept one tap before going back behind the full-screen image, and there was bugger all there within one click to help me, because activating the @&#@^&@ on-screen keyboard was a complete waste of @&#@^&@ time!
It's got NO ESCAPE KEY, which is what you use to escape full-screen mode, and NO ALT KEY, so I couldn't even Alt-Tab out of it or use the three-finger salute!
TF I had a file manager in my Quick-Access toolbar, which I could use to browse to the weven OSK that I'd copied across (which has all the required keys, despite not being part of the "Best Windows Ever!") (Where's my wu mao?!?)
Fortunately, if you run into this problem yourself, the winio on-screen keyboard, which is as highly-professional as the rest of winio, does have a full page of emojis, so you can spend the rest of the device's life looking at them, then throw it away and buy an android tablet.
I wanna be a eunuchs developer! Pass me a bread knife!
|
|
|
|
|
|
Now .... If you had a recent system image of your Win 7 setup .... Just thinking out loud!
Get me coffee and no one gets hurt!
|
|
|
|
|
I could probably do a System Restore, but that's not the point.
MS has no right to infect my PC. It's illegal and amounts to nothing more than hacking.
If it's not broken, fix it until it is
|
|
|
|
|
I doubt that a system restore will work ... Anyway, good luck!
Get me coffee and no one gets hurt!
|
|
|
|
|
Kevin Marois wrote: It's illegal and amounts to nothing more than hacking. It's illegal for them to install software onto their own operating system?
There are only 10 types of people in the world, those who understand binary and those who don't.
|
|
|
|
|
Remember the box with the license agreement where you just clicked 'I Agree' on? I'll bet the culprit is in there.
|
|
|
|
|
Precisely.
There are only 10 types of people in the world, those who understand binary and those who don't.
|
|
|
|
|
"Agreements" do not permit illegal behaviour -- e.g. you could add "You agree to murder my boss/ex-wife/mother-in-law if I ask you to", but that doesn't make murder legal. Not only that, but it could be argued that adding illegal behaviour to a contract makes the entire contract invalid/unenforceable.
I wanna be a eunuchs developer! Pass me a bread knife!
|
|
|
|
|
Thank you captain obvious.
Where does it say it is illegal for Microsoft to auto-update their own software?
There are only 10 types of people in the world, those who understand binary and those who don't.
|
|
|
|
|
Go and collect your wu mao, wumao.
I wanna be a eunuchs developer! Pass me a bread knife!
|
|
|
|
|
As suspected. No logic, just trolling.
There are only 10 types of people in the world, those who understand binary and those who don't.
|
|
|
|
|
Go collect your wu mao.
I wanna be a eunuchs developer! Pass me a bread knife!
|
|
|
|
|
Please don't tell me that you think it's right that one should have to defend oneself against an operating system.
I wanna be a eunuchs developer! Pass me a bread knife!
|
|
|
|
|
Quote: Please don't tell me that you think it's right that one should have to defend oneself against an operating system Is it right? Of course not!
Is it necessary: Where MS is concerned: Hell yes!
Get me coffee and no one gets hurt!
|
|
|
|
|
Taken, is the point.
I wanna be a eunuchs developer! Pass me a bread knife!
|
|
|
|
|
Got hit by Windows "The 5 Eyes Edition" did you?
Legal or not, it's a disgusting "practice" on every level.
And with the injecting of "special code" for EXEs built with the latest VS versions, it's nothing short of a travesty.
It's very obvious, Windows machines are no longer recommended to be hooked up to the net - and with Intel's hidden processor, there's money to be made on Faraday cages....
Windows will die a cruel death for these sh1t stunts....
|
|
|
|
|
Quote: the injecting of "special code" for EXEs built with the latest VS versions Tell me more! Quick, I was about to switch to VS2015!
- I would love to change the world, but they won’t give me the source code.
|
|
|
|
|