Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!


Forgot your password?
Businesses Programming

Ask Slashdot: How Do You Deal With Programmers Who Have Not Stayed Current? 509

skaffen42 writes "The recent Ask Slashdot about becoming a programmer later in life got me thinking about a related question. How do you deal with programmers who have not stayed current with new technologies? In the hiring process, this is easy; you simply don't hire them. However, at most companies where I've worked, there are usually a few programmers who have been employed long enough that the skill-set they were originally hired for has become irrelevant. At the same time, they have not bothered to stay current with newer technologies. They usually have enough business knowledge that they provide some value to the company, but from a technical perspective they are a slowly-increasing liability. As an example: I work with a developer who is 10 years my senior, but still doesn't understand how to write concurrent code and cannot be trusted to use a revision control system without causing a mess that somebody else will have to clean up. On top of that, he is really resistant to the idea of code reviews; I suspect he dislikes people he considers junior to him making suggestions about how to improve his code. So, how do my fellow Slashdotters handle situations like this? How do you help somebody like this to improve their skill-sets? And, most importantly, how do you do so without stepping on anybody's feelings?"
This discussion has been archived. No new comments can be posted.

Ask Slashdot: How Do You Deal With Programmers Who Have Not Stayed Current?

Comments Filter:
  • Re:perspective (Score:5, Interesting)

    by charnov ( 183495 ) on Saturday May 11, 2013 @05:15PM (#43697425) Homepage Journal

    It's not that new if you came up in the HPC world working with something like Erlang, but I didn't see it until 15 years after my first CS class when I went back to school to learn C++ (When I started, it was C that I learned and then I ended up working in Eiffel later on). I have never seen nastier harder to track down bugs than when we shifted to a concurrent model while chasing lower latencies in GUI's... I will give it to the young guys who came in after me though; they seem to live and breath this stuff. I got out of the way and became management. I drove them crazy with forcing UML and unit tests and strong code review (they wanted to move FAST), but they are all much better coders than I ever was. I can still kick their butts designing algorithms, though. Different skills for different targets. I hope the fellow grey beard in the OP realizes the change like I did and find a different role where his skills make more sense. Good luck.

  • Really? (Score:4, Interesting)

    by Jack9 ( 11421 ) on Saturday May 11, 2013 @06:30PM (#43697887)

    > I work with a developer who is 10 years my senior, but still doesn't understand how to write concurrent code and cannot be trusted to use a revision control system without causing a mess that somebody else will have to clean up. On top of that, he is really resistant to the idea of code reviews;

    I'd get ready to leave the company for a better job since it's clear there's no accountability at your company. This situation cannot end well for one of you. Either you are pulled down/leg go or he is let go/quits. Without accountability you can't be promoted at an organization. This is because there's no criteria (I mean there are edge cases, but don't bet decades of your career on it). This is the business of software development and you don't get to make decisions about appropriate quality levels at your position, nor do you get to judge other people's value, nor can anyone without some progress gauge at a granular level.

    You indicate you use a process where code is accepted without code reviews. You work at a shitty company. You have a process where engineers don't all use revision control. You work at a shitty company. You have peers who act out politically to avoid working/accountability. You work at a shitty company. See the pattern?

    In my experience, there have been cases where we just ignore the lame duck till some accountability gets implemented and it becomes obvious, but that's not the norm. Usually some nasty argument where you're trying to rehash the issue causes a serious consequence over an irrelevant detail (made up reason) to push one of you out the door. Usually you. Start looking for a new job, bring up performance metrics in meetings, ignore him. That's all you can do. Don't try to help him, he can do that himself and has chosen not to try.

  • Re:perspective (Score:4, Interesting)

    by bfandreas ( 603438 ) on Saturday May 11, 2013 @07:12PM (#43698145)
    In 15 years I only had to write proper concurrent code once. At the core of an application. Spent a week mostly thinking about how to test it. I covered the whiteboard in my office with diagrams. All for about 200 lines of code which by now I would consider boilerplate code. Concurrent code is all about experience and defensive programming.

    Most code we write is concurrent by default since we do a lot of web applications. I tell my team to keep that in mind when creating mutable shared resources.

    I remember back in the day when client-side Java was considered a thing. You had to write concurrent code or you would lock up your render thread(the famous gray pane while the application did something). You could easily spot code written by a newbie. Who would then subsequently say that Java sucked for all the wrong reasons while missing the real bugbears.

    Do stuff sequentially when in doubt and know when you absolutely have to go concurrent. If it is complex and complicated it is also wrong by design. Never go full retard.
  • Re:Can't offer much (Score:5, Interesting)

    by fnj ( 64210 ) on Saturday May 11, 2013 @07:30PM (#43698297)

    I really don't get this POV. Businesses don't have the POWER to take your money, save for total monopolies with some product or service you can't do without - and these can't exist except at the pleasure of the government. They have to convince you to give it to them. If you let yourself be brainwashed, there is nobody else to blame.

    Now, governments CAN actually take your money. That is a completely different situation.

    None of this is to say that businesses do not engage in corrupt and evil practices just like governments - but they can't "take" your money.

  • by bmpc ( 415278 ) on Sunday May 12, 2013 @08:17AM (#43701401)

    I'd call someone current who has 5 years of all of these: Objective-C & MAC/iOS experience, C#/WPF, Android 4.1, SQL/SQLite/Oracle, C/C#/C++, Java, Python, Javascript, HTML, .NET and everything else the Microsoft has. If you don't known all of those things then you need to catch up.

    Are you joking? Or are you using a loose meaning of the word "know".

    People need to start being realistic with this "keeping up" stuff.

    Let's take a look at the stuff you listed and where they are typically used:

    1) web - Java; Python; Javascript; HTML; .NET
    2) mobile - Objective-C & iOs for iPhone; Java for Android
    3) desktop - C#/WPF; Java; Objective-C & iOS; C/C#/C++

    You just described three different development roles (although there may be some intersection of technologies).

    Let's say I'm working as a full time as a "desktop developer" in a company product where I work with a Java development stack. Do you think I should spend my free time doing web development and mobile development , in order to be considered "current"?

    Which other professions have these kinds of expectations?

The only function of economic forecasting is to make astrology look respectable. -- John Kenneth Galbraith