I would have too. Anyone who thinks it's a good idea to charge ten times the cash and do a quarter of the work deserves to starve. Unions can protect you from a lot of bad things but your own greed, laziness, and stupidity are not among them.
Careful what you wish for: someone somewhere can do your job cheaper too.
Most methods have "void" parameters and return "void". Everything goes via global variables.
Methods naming does not use camelCase or NAMESPACE prefix.
Somewhere, my CS professor just had a simultaneous heart attack/stroke.
Yeah, C doesn't have methods, it has functions. Argh!
And did you ever try running Quake on a 486 with no 3D chip?
Back at uni I ran Quake 1 and Quake 2 on Windows NT4 machines without 3D hardware acceleration, for many, many hours as part of a Quake clan. There was nothing wrong with Quake's performance on standard machines without 3D cards in those days.
I ran D3D an awful lot too, because it was great fun in multiplayer.
Actually it really doesn't if the consumer feels they get their money's worth with the price of certain steam games compared against the more limited utility. The cost isn't "hidden" - most players know full well that they are purchasing a potentially time-limited access to a game. That time limit is in many cases beyond the actual time the player will continue to play the game, so price / utility wise it's a net benefit to that particular consumer.
It sucks for the hardcore old game players that realize Civilization is as fun today as it was years ago, and that most of these "new" games will never get such an extended lifespan, but there's only a subset of games, played by a subset of gamers, where this will matter.
Lost a 'friend', but gained a cautionary tale; I think I came out ahead. (Yes, Jeff; this story is about you.)
I realize it blows making a detailed quote only to have your customer use that as a blueprint to do the work themselves (or sending the quote on to a cheaper 3rd party as input, yes, I've been there too) instead of paying you.
However:
- That's just part of the financial risk you take on sending out free quotes that are good enough to get you jobs.
- The customer or their subcontractor will probably fail to implement the project cheaper than your original quote. In fact, they'll probably fail completely and come back to you with their tails between their legs a while later for you to fix the mess the contractor left behind, now at twice the price.
- If they succeed in the implementation with your quote it's a sign that the job wasn't actually that hard, and your added value as a consultant might be less than you estimated (for that particular project).
I don't see it's worth losing a friend over, it's "strongly worded letter" material at worst.
ftfy. and truth be told we all do prototyping, but we (the good ones at least) step back after the prototype is done and think long and hard about throwing all the code away in favor of doing it the right way.
Only to then get a big fat "NO" from management because "it already works fine".
I suspect that with the mindset of a government contractor they told a bunch of different places sort of what they wanted, but not where it had to be or what it was going to plug into. Measurements, plugs, protocol standards, bolt holes, shape - they all matter - and "on a plane" doesn't answer most of the questions.
Yes - everything matters - for a completely new system more than you will ever get right on paper without actually putting the whole thing together in the first place. Like the article says: many of the problems you will encounter during development are impossible to anticipate.
Thanks, we are trying to follow some of your suggestions already. We already mandated code reviews, but now we are going to reduce the size of the group who can approve that the code is good to go.
What specific knowledge would make you give more specific feedback? I'll list something here:
1) We recently moved enterprise github and use pull requests for code review. We have setup jenkins for continuous build. I have setup sonar on jenkins for static code analysis and unit test coverage, but no one uses that right now (except me, to lament:-( ). That jenkins will soon deploy to nexus, so building our application becomes easy from anywhere.
2) We currently release as we finish the change, but are going to move to once a week release train model in less than a month.
3) We have QA and Pilot (1% release) checks before release rolls out 100%.
Note that it is very difficult to set policies which doesn't have loopholes. Our goal is to do this without severely limiting freedom - evoking the feeling that we don't trust them doesn't look like a good idea.
That reads like the toolkit version of "buzzword bingo" - indiscriminately throwing everything and the kitchen sink at a problem and hoping it'll solve itself. It could also be "methodology-du-jour". None of it guarantees you're solving your actual problem. "We've mandated code reviews" - sure - but are they actually finding useful issues and improving "software quality" (as ephemeral as that is to define)?
If a release gets through QA, can you sleep soundly at night knowing it got past the most bastardly testers the universe has ever known?
If you can't answer "yes" to those questions, do you still think those tools improved your quality? Do you still think adding yet more tools would improve the situation?
You say you are worried about "loopholes", and are worried about trust. If you're worried, I would bet that there is already a hostile, potentially toxic development environment, and it might be that environment causing the (perceived) lack of "software quality". If people are looking for and exploiting loopholes in the rules, that's because they think the rules are stupid and not helping them to do their job. More rules / tools / buzzword bingo will make that problem *worse*, not better.
You'd do well to talk to everyone first to figure out:
a) If they actually think their own code is bad. You might be surprised and find they hate the code they write, BUT
b) If they do, ask them why they can't write better code in the current circumstances.
Like others have said, if the devs do NOT believe their code is bad things get difficult, but for your own sake, make DAMN SURE that the problem is not you before going any further!
It can be fun to throw some simple stuff in there to break up the bigger stuff.
A.K.A. the simple pleasures of life. Sometimes it's good to feel good about something simple -- the equivalent of hanging a picture on the wall. People who don't dig this, I'm afraid, are unsocial.
Cool - I thought I was the only one:). People around me think I'm weird because I like to sometimes get down and dirty and do some of the monkey-work inside the code, even though I'm (in age / experience, not talent) the "most senior" developer. I don't find those jobs shitty, they are a refreshing easy activity that gets real results quickly, and that's just really nice sometimes.
Yep. I've done lots of programmer hiring and I can tell you that one of the worst employees I ever dealt with got a near perfect on a C test, finishing 45 questions in about 6 minutes. Some of the questions required coding. The guy was a terrible programmer, but he really knew the language. I think he missed 1 question and that was because the person who wrote the test had accidentally introduced a typo that made the "correct" answer wrong.
The way you just described it makes it sounds an awful lot like you were doing "language trivia" question which are well-known to be beyond totally useless, and not related to the timed coding test as implied in the question. So please, stop considering yourself a good interviewer now, and read up on what works.
I'd say if you need to spend time looking up how to do a basic loop in a language you're supposed to know, perhaps coding isn't a profession you should be in. I hear McDonald's is hiring.
And yet I've weeded out at least one candidate seriously applying for an *advanced* programming job by asking for exactly that. Ironically, I've seen that very person around here, so I know they were hired anyway by another company nearby. I hope they didn't hire them for their advanced development skills.
*THEY* , the politician , have a lot to explain. not the company using it.
Capitalism is not a free ride for abdicating all sense of morality to the government. Nobody is forcing the companies to be creative in their tax avoidance either. "It's okay 'cause it's legal" is a moral cop-out and a dangerous argument, because then you imply that everything which is law is okay, so if the US would pass a law requiring unfairly high corporate taxation if you sold any product there, it would HAVE to also be okay with the same people, and it clearly is NOT.
Who would benefit?
Everyone who doesn't have Java installed gets a good laugh out of it, for starters.
Even if that food had never been grown, the plant or alga that grew in its place would have eventually decayed, emitting the same CO2.
It might even decay at the bottom of an ocean over millions of years and turn into oil and gas!
You know you're getting old when someone says "that was twenty years ago", and you still think of the eighties.
I would have too. Anyone who thinks it's a good idea to charge ten times the cash and do a quarter of the work deserves to starve. Unions can protect you from a lot of bad things but your own greed, laziness, and stupidity are not among them.
Careful what you wish for: someone somewhere can do your job cheaper too.
What the heck is a "watering hole attack"?
I'm not quite sure, I was half expecting a Hurd of GNUs in a drinking frenzy.
Most methods have "void" parameters and return "void". Everything goes via global variables. Methods naming does not use camelCase or NAMESPACE prefix.
Somewhere, my CS professor just had a simultaneous heart attack/stroke.
Yeah, C doesn't have methods, it has functions. Argh!
And did you ever try running Quake on a 486 with no 3D chip?
Back at uni I ran Quake 1 and Quake 2 on Windows NT4 machines without 3D hardware acceleration, for many, many hours as part of a Quake clan. There was nothing wrong with Quake's performance on standard machines without 3D cards in those days.
I ran D3D an awful lot too, because it was great fun in multiplayer.
It's only a model, and just a fleshwound. Now, where did you get those coconuts?
Steam games are so cheap, does it really matter?
Yes, it matters.
Actually it really doesn't if the consumer feels they get their money's worth with the price of certain steam games compared against the more limited utility. The cost isn't "hidden" - most players know full well that they are purchasing a potentially time-limited access to a game. That time limit is in many cases beyond the actual time the player will continue to play the game, so price / utility wise it's a net benefit to that particular consumer.
It sucks for the hardcore old game players that realize Civilization is as fun today as it was years ago, and that most of these "new" games will never get such an extended lifespan, but there's only a subset of games, played by a subset of gamers, where this will matter.
Yes.
Indeed, I'm not a physicist.
Consider a spherical heavy metal fan..
Only if he's in a vacuum.
Metalheads operate in a social vacuum.
A big fat "whoosh", considering the OP's username is "fantomas" ;-)
It also explains Mathcore.
I think we should just make them all throbbers/spinners/whatever you want to call them, and ignore the people who complain. /rantoff :D
My solution is even less work: do nothing, and ignore the people who complain ;-)
Wrong. The chance of winning the lottery is 50/50. You either win it, or you don't, one out of two possibilities.
And then you have a password that you won't readily remember, because you haven't seen the word "turgid" since the SAT.
Inconceivable!
Lost a 'friend', but gained a cautionary tale; I think I came out ahead. (Yes, Jeff; this story is about you.)
I realize it blows making a detailed quote only to have your customer use that as a blueprint to do the work themselves (or sending the quote on to a cheaper 3rd party as input, yes, I've been there too) instead of paying you. However:
I don't see it's worth losing a friend over, it's "strongly worded letter" material at worst.
ftfy. and truth be told we all do prototyping, but we (the good ones at least) step back after the prototype is done and think long and hard about throwing all the code away in favor of doing it the right way.
Only to then get a big fat "NO" from management because "it already works fine".
I suspect that with the mindset of a government contractor they told a bunch of different places sort of what they wanted, but not where it had to be or what it was going to plug into. Measurements, plugs, protocol standards, bolt holes, shape - they all matter - and "on a plane" doesn't answer most of the questions.
Yes - everything matters - for a completely new system more than you will ever get right on paper without actually putting the whole thing together in the first place. Like the article says: many of the problems you will encounter during development are impossible to anticipate.
Thanks, we are trying to follow some of your suggestions already. We already mandated code reviews, but now we are going to reduce the size of the group who can approve that the code is good to go.
What specific knowledge would make you give more specific feedback? I'll list something here:
1) We recently moved enterprise github and use pull requests for code review. We have setup jenkins for continuous build. I have setup sonar on jenkins for static code analysis and unit test coverage, but no one uses that right now (except me, to lament :-( ). That jenkins will soon deploy to nexus, so building our application becomes easy from anywhere.
2) We currently release as we finish the change, but are going to move to once a week release train model in less than a month.
3) We have QA and Pilot (1% release) checks before release rolls out 100%.
Note that it is very difficult to set policies which doesn't have loopholes. Our goal is to do this without severely limiting freedom - evoking the feeling that we don't trust them doesn't look like a good idea.
That reads like the toolkit version of "buzzword bingo" - indiscriminately throwing everything and the kitchen sink at a problem and hoping it'll solve itself. It could also be "methodology-du-jour". None of it guarantees you're solving your actual problem. "We've mandated code reviews" - sure - but are they actually finding useful issues and improving "software quality" (as ephemeral as that is to define)?
If a release gets through QA, can you sleep soundly at night knowing it got past the most bastardly testers the universe has ever known?
If you can't answer "yes" to those questions, do you still think those tools improved your quality? Do you still think adding yet more tools would improve the situation?
You say you are worried about "loopholes", and are worried about trust. If you're worried, I would bet that there is already a hostile, potentially toxic development environment, and it might be that environment causing the (perceived) lack of "software quality". If people are looking for and exploiting loopholes in the rules, that's because they think the rules are stupid and not helping them to do their job. More rules / tools / buzzword bingo will make that problem *worse*, not better.
You'd do well to talk to everyone first to figure out:
a) If they actually think their own code is bad. You might be surprised and find they hate the code they write, BUT
b) If they do, ask them why they can't write better code in the current circumstances.
Like others have said, if the devs do NOT believe their code is bad things get difficult, but for your own sake, make DAMN SURE that the problem is not you before going any further!
It can be fun to throw some simple stuff in there to break up the bigger stuff.
A.K.A. the simple pleasures of life. Sometimes it's good to feel good about something simple -- the equivalent of hanging a picture on the wall. People who don't dig this, I'm afraid, are unsocial.
Cool - I thought I was the only one :). People around me think I'm weird because I like to sometimes get down and dirty and do some of the monkey-work inside the code, even though I'm (in age / experience, not talent) the "most senior" developer. I don't find those jobs shitty, they are a refreshing easy activity that gets real results quickly, and that's just really nice sometimes.
Yep. I've done lots of programmer hiring and I can tell you that one of the worst employees I ever dealt with got a near perfect on a C test, finishing 45 questions in about 6 minutes. Some of the questions required coding. The guy was a terrible programmer, but he really knew the language. I think he missed 1 question and that was because the person who wrote the test had accidentally introduced a typo that made the "correct" answer wrong.
The way you just described it makes it sounds an awful lot like you were doing "language trivia" question which are well-known to be beyond totally useless, and not related to the timed coding test as implied in the question. So please, stop considering yourself a good interviewer now, and read up on what works.
I'd say if you need to spend time looking up how to do a basic loop in a language you're supposed to know, perhaps coding isn't a profession you should be in. I hear McDonald's is hiring.
And yet I've weeded out at least one candidate seriously applying for an *advanced* programming job by asking for exactly that. Ironically, I've seen that very person around here, so I know they were hired anyway by another company nearby. I hope they didn't hire them for their advanced development skills.
*THEY* , the politician , have a lot to explain. not the company using it.
Capitalism is not a free ride for abdicating all sense of morality to the government. Nobody is forcing the companies to be creative in their tax avoidance either. "It's okay 'cause it's legal" is a moral cop-out and a dangerous argument, because then you imply that everything which is law is okay, so if the US would pass a law requiring unfairly high corporate taxation if you sold any product there, it would HAVE to also be okay with the same people, and it clearly is NOT.