• (disco)

    What kind of syntax highlighter puts this in bold but not class?

  • (disco)
    side **e**ffects
  • (disco)

    No

  • (disco)

    And 42

  • (disco)

    http://lacuadramagazine.com/wp-content/uploads/sangeh-monkey-forest-101.jpg

  • (disco)

    Reminds me of our QA teams. They build a system to replace one that semi-works. They spec it out and everything, but the implementation strays far away from that because the users (automation teams) can't work with the infrastructure they have. The end result is the same garbage the old system had. Repeat every 2 years, spending millions in the process. Same "architects" each time as well.

  • (disco) in reply to Nprz

    At least they build it in something new and shiny right? I mean, this year it's NodeJS!

  • (disco) in reply to Eldelshell

    Well, not really. Each time they build the system it is in perl. I suggested they use python as the developers are more familiar with that (unit tests are in python) and there are api bindings for that. But they said their automation teams and "architects" are more familiar with perl. So for 6-years of building and rebuilding and rebuilding, it is always in perl. They had to write their own bindings as we stopped supporting perl 4 years ago.

    Even a couple years back we added ruby bindings (e.g. new and shiny), but they don't bite.

  • (disco)

    Re-writing an existing complex working system from scratch, designed by architects that don't write code? Sounds like a bulletproof plan - I can scarcely understand how those code monkeys managed to screw this one up...

  • (disco)

    This is development these days guys. It will never change. Live with it.

  • (disco) in reply to Justin
    Justin:
    Re-writing an existing complex working system from scratch, designed by architects that don't write code? Sounds like a bulletproof plan - I can scarcely understand how those code monkeys managed to screw this one up...
    The story doesn't say that, so this might be just a pet-peeve of yours.
  • (disco)

    So a job was out-sourced off shore and they didn't do a good job, but the off shore team didn't care, and neither did the management? Sounds like standard procedure.

    Code-monkeys are great for monkey work, the problem is trusting them with anything more complex than that. If the integrity of the architecture is that critical, don't outsource it in the first place.

  • (disco)

    http://en.wikipedia.org/wiki/Betteridge%27s_law_of_headlines

  • (disco)

    "If you don't have time to do it right, when will you have time to fix it?"

  • (disco)

    I've been trying unsuccessfully for years to understand this phenomenon. Why do managers pay architects and senior developers six-figure salaries and yet completely ignore their input in favor of an unskilled third party with no skin in the game?

    Is it a status symbol thing? Other companies have architects and senior devs so we will too?

  • (disco) in reply to Smitty
    Smitty:
    Why do managers pay architects and senior developers six-figure salaries and yet completely ignore their input in favor of an unskilled third party with no skin in the game?

    They chose their employees, but they also chose the offshore monkeys, so they have competing justifications.

  • (disco) in reply to powerlord
    powerlord:
    Betteridge's law of headlines

    Betteridge's law of headlines is an adage that states: "Any headline which ends in a question mark can be answered by the word no." It is named after Ian Betteridge, a British technology journalist, although the general concept is much older. The observation has also been called "Davis' law" or just the "journalistic principle". In the field of particle physics, the concept, referring to the titles of research papers, has been referred to as Hinchliffe's Rule since before 1988.[ Betteridge expl...

    Actually, due to the somewhat mangled writing today, the answer in this case is going to be "yes". ;)

  • (disco) in reply to levesque
    levesque:
    Actually, due to the somewhat mangled writing today, the answer in this case is going to be "yes". ;)
    Even now, I keep reading the title as "Will Managers Ever Learn?"
  • (disco) in reply to Smitty
    Smitty:
    Why do managers pay architects and senior developers six-figure salaries and yet completely ignore their input in favor of an unskilled third party with no skin in the game?

    That's due to the inherently superior efficiency of private enterprise.

  • (disco) in reply to flabdablet
    flabdablet:
    That's due to the inherently superior efficiency of private enterprise.

    [image]

  • (disco)

    I am doing something similar now, except all of the devs are "experienced" and mostly in-house but new to the project. So I gave them an example set of modules with a pattern to follow.

    Some mistakes were still made, but since they followed the pattern, and the new code solves a fairly simple problem, the mistakes are generally easy to fix.

    But sometimes they follow the pattern too closely and don't use their own "experience" to know when to modify the pattern for a given situation. I can't create a pattern that takes into account every situation, I expect someone who is experienced to know when to make their own decisions and not just blindly follow the pattern to the letter.

    Oh well, better than nothing I guess.

  • (disco) in reply to Smitty

    Why pay anyone a six figure salary for their expertise in a given domain, then ignore their advice?

    Because they are the "manager" and even if you are paid six figures, in their mind you are still just a glorified code monkey.

    It's the old "I don't pay you to think" attitude, until such time comes when someone needs to be blamed, and then it's "why didn't you think of this?"

    They do not recognize or they don't acknowledge that our profession is just that, a profession, one where you need to hire professionals who do a professional job.

    Such is life in the real world - but it is exasperating.

  • (disco)

    I had something similiar happen to me at my last job. I said that either the problems would be fixed, or I wouldn't support the system. One of the best decisions that I ever made.

  • (disco) in reply to flabdablet
    flabdablet:
    > Smitty: Why do managers pay architects and senior developers six-figure salaries and yet completely ignore their input in favor of an unskilled third party with no skin in the game?

    That's due to the inherently superior efficiency of private enterprise.

    I think it's actually more due to one or more anti-patterns that big corporations have in common with big governments:

    • The day-to-day decisions are made by and for middle management.
    • People who make decisions are mostly unconnected to the implementation, and more importantly the consequences, of those decisions.
  • (disco) in reply to Developer_Dude
    Developer_Dude:
    But sometimes they follow the pattern too closely and don't use their own "experience" to know when to modify the pattern for a given situation. I can't create a pattern that takes into account every situation, I expect someone who is experienced to know when to make their own decisions and not just blindly follow the pattern to the letter.

    A lot of developers, even very senior ones, misunderstand patterns and think they are templates.

    A template is, plain and simple, a fill-in-the-blanks chunk of code. It's useful for making things look identical, fit code standards, and so on. In a case such as you're describing, it can be extremely useful.

    A pattern is a set of rules, guideline, algorithms, etc (perhaps even some templates) that fit a certain situation and solve a certain problem. Patterns grew out of people writing repetitive code to solve similar problems and trying to codify the concepts of what they were doing so that the solutions could easily be conveyed to others.

    A pattern is something to apply when the shoe fits, not a shoe to cram on whether the foot needs it or not. By definition, it can't take into account every situation - if the situation is different, then it fits either a different pattern, a combination of patterns, or no pattern at all.

    A pattern can't be "modified", per se. You might realize a new pattern out of a set of problems with similar solutions, and it might be a variation of an existing pattern if the problems you're solving are related to existing problems. Or you might come up with a new pattern to solve the same set of problems another pattern (or patterns) solves.

    In any case, if I step off my soapbox and turn off the pedantic dickweedery, you seem to have recognized a pattern in your system and described it to your developers along with a template or templates that they can apply when they need it. Their error seems to be that they don't understand what patterns and templates really are and how and when to apply them correctly. It might be that clarifying the definitions a bit, along with your expectations, might solve your problem.

    That, at least, is a pattern I've seen be successful with some experienced developers ;-)

  • (disco) in reply to Developer_Dude
    Developer_Dude:
    Because they are the "manager" and even if you are paid six figures, in their mind you are still just a glorified code monkey.

    ...

    Such is life in the real world - but it is exasperating.

    Incredibly so. I have run into managers who stated this outright: any developer can code anything, so you are all interchangeable.

    Never mind that just like in any profession, we all have our specialties and will be far more effective if put into positions that make use of them.

    Sigh.

    Thankfully, I'm at currently a company that gets it right.

  • (disco) in reply to RobFreundlich

    Because we don't have enough car analogies.

    Templates are like car parts. The oil filter really only goes in one place.

    Patterns are like tools for the car. It's up to the mechanic to know how to use them, and which ones to use.

  • (disco) in reply to RobFreundlich
    RobFreundlich:
    any developer can code anything, so you are all interchangeable

    I've had that conversation too. My rejoinder was that developers are much like managers in this regard.

  • (disco) in reply to chubertdev

    Patterns are knowing that you can wedge the fries between you and the seat belt buckle and the box of McNuggests will fit in front of the gear selected.

  • (disco) in reply to Nprz
    Nprz:
    They build a system to replace one that semi-works. They spec it out and everything, but the implementation strays far away from that because the users (automation teams) can't work with the infrastructure they have.The end result is the same garbage the old system had.Repeat every 2 years, spending millions in the process. Same "architects" each time as well.

    Reminds me of the definition of insanity.

  • (disco)

    I heard they get these in a packet, and they dump some of the powder in the packet into water, wait a day or so and, presto, lots of code monkeys.

    So I was wondering if we could find out where the packets come from and eliminate the source?

  • (disco) in reply to redwizard
    redwizard:
    Reminds me of the definition of insanity.

    I keep looking at that quote, and it's always the same every time.

  • (disco) in reply to flabdablet
    flabdablet:
    I've had that conversation too. My rejoinder was that developers are much like managers in this regard.

    Beautiful! I'll have to remember that if I ever need an exit interview parting shot.

  • (disco)

    Recently cut a telephone interview short, when I heard "will inherit an offshore code base".

  • (disco)

    One thing I learned some years ago is that most of this problems could have been solved with code reviews. In every project I'm involved I stand on this more than on testing. Don't get me wrong, testing is very important and helps, but I've found code reviews to be much more useful. Disregarding any code reviews from the beginning of the project is a clear indication of managers that have no idea of what they are doing.

  • (disco) in reply to chubertdev
    chubertdev:
    I had something similiar happen to me at my last job. I said that either the problems would be fixed, or I wouldn't support the system. One of the best decisions that I ever made.

    Ditto for the system I mentioned earlier. The bosses kept saying we had to, "unity" and all that. But when I saw the crap they were designing, and it would take 5-10 files and 1000 lines of code for a simple "ping" test while mine code be less than 100 in a standalone file for a real functional test I knew how to keep my sanity.

    Needless to say, I finished up all my automation before they even hit their alpha of designs. A year after that and people were still waiting for it to finish, so they could convert all their old tests over. To imagine that they were going to subject our partners to that crud gave me shivers.

  • (disco)
    The article:
    Arty works on a team maintaining a legacy application that can best be described as a birds nest of code. It is a massive collection of global variables and a few tens of thousands of routines that would independently modify the data. Decapsulation was the overriding design pattern of choice. Of course, changing the value of some variable invariably has all sorts of unpredictable side affects.
    When I first read this, I could only think: ".. I didn't know SSDS had a maintenance team."
  • (disco) in reply to lucas
    lucas:
    Recently cut a telephone interview short, when I heard "will inherit an offshore code base".

    Reminds me... Back in UK, I ended up with what looked like an offshore codebase. The backend was mostly sensible, but the frontend was a horrible WebForms abomination - I can't really pinpoint much now, but there were at least three types of "model" classes on the frontend only (the view, the backing class, and the backing-backing class for some stuff), and there wasn't a bit of consistency as to what goes where. And that was just one of the problems.

    Few months later, back in Poland, I talk to my PM...

    "So, what did you do back there?"

    "Oh, I was working on $website... Horrible stuff, I tried to fix it up, but after all it took me less time to just rewrite the frontend completely".

    "$website? Hm, I think I was a lead dev on that..."

  • (disco) in reply to Maciejasjmj

    With more writer's magic, this might be a good front end page article. Karma is a bitch would be the title.

  • (disco) in reply to Eldelshell
    Eldelshell:
    front end article

    As opposed to a back end article, to read which you need to connect to TDWTF database?

  • (disco) in reply to Eldelshell
    Eldelshell:
    One thing I learned some years ago is that most of this problems could have been solved with code reviews
    As long as the reviewer doesn't say things like "replace this if/else with ?:".
    Maciejasjmj:
    As opposed to a back end article, to read which you need to connect to TDWTF database?
    TDWTF has such a horrible security that you can read the backend article merely by viewing the source.
  • (disco)

    Feel free to change this comment.

  • (disco) in reply to chubertdev
    chubertdev:
    I had something similiar happen to me at my last job. I said that either the problems would be fixed, or I wouldn't support the system. One of the best decisions that I ever made.

    Hmmmm, now we have a new help desk system, will we see the pattern repeat? ;)

  • (disco) in reply to lucas
    lucas:
    Recently cut a telephone interview short, when I heard "will inherit an offshore code base".

    Good call. I have yet to see offshore code that does not look like something that has been decompiled.

  • (disco) in reply to Smitty
    Smitty:
    Why do managers pay architects and senior developers six-figure salaries and yet completely ignore their input in favor of an unskilled third party with no skin in the game?

    It's really very simple: Managers are usually rewarded for completing a project on schedule, regardless of the long-term consequences of said project. Their short-term bias is driven in large part by their boss's short-term bias, which goes all the way up to the CEO who's most focused on quarterly reports.

    In this case, the architects asked for a change that appeared to delay the initial project completion date. The factors the architects were using to argue, namely long-term maintenance, code quality, bugginess, and sheer stupidity were completely irrelevant to that goal, and thus ignored. And because there clearly existed an in-house tech team, the manager had already staked a large chunk of budget (i.e. political capital) on getting this thing done on time, and the only argument the architects could have made that would have made any difference were "It will slow them down, but they're too inexperienced to realize that."

  • (disco) in reply to Polygeekery

    The thing is that I knew I would spent all my time trying to polish a turd before I had even turned up for my first day of work. Why let yourself in for that.

  • (disco)

    Arty, I've had similar and worse experiences. I've realized that the software engineering process/model is there for a reason.

    If an artist wants to produce a great piece of art, he might need the right ingredients: a canvas, a palette, silence, emotion and motivation. If you take away his palette and ask him to work with a single color for the time being, he can start off hoping to get back his palette. If, after some time, you still don't give him his palette, he could try to come to you for each color one at a time. This will cause great frustration to him and will eventually affect his work.

    I think it's similar here in software. The software engineering process/model is like the necessary ingredients for great software. By hiring an offshore team, they are breaking the model. Who is the single point of contact manager for them? Why are so many on-site architects reviewing their work? Why are they not a team by themselves? This is the folly that managers create in the name of cheap offshore resources. It's not the code monkey's fault. It's more so the management's.

  • (disco) in reply to rookie3

    Creativity can be stimulated by restrictions such as a lack of variety of colours. As long as the spec doesn't say "Paint me something red!" and then all the paint is blue.

  • (disco) in reply to another_sam

    done!

    [image]
  • (disco) in reply to accalia

    "We'd like you draw 7 red lines at right angles to each other, and 2 of them have to be drawn with green ink."

Leave a comment on “Will Managers Never Learn?”

Log In or post as a guest

Replying to comment #:

« Return to Article