8

There is a developer, let's call him John (currently on probationary period) in company(pretty small company approx. 10 persons, 3 developers, one of them works long in this company know business process around and can be consider as Team leader) who didn't want to use any IDE at all(he is using some text editor).

Application this team working on is medium size Java application with Spring Hibernate technology stack and refactoring/adding new features to launch new version of that application in near future.

John performance working without IDE on this application is lower then desirable, team leader's (lets call him Bill) assumption is this happens because John is not using IDE.

Bill try to persuade John to use IDE, but this idea meets a lot of resistance and main reason is "I want to be in total control of what I am doing, so I need to write all code by myself".

How can Bill convince John to try to use IDE? (considering the fact what Bill already protected John from company owner several complaints about John performance)

Updated: Bill decide to try and convince John one more time if that attempt will be unsuccessful then he won't try to force John to use IDE and rather look at if features promised by John are delivered in time or not.

15
  • 5
    Funny. I guess he wants to feel pain. I remember I use to code COBOL in a text editor. When I experienced my first IDE I thought I was cheating. Maybe he feels the same? Mar 2, 2011 at 9:52
  • 53
    How do you know his productivity is lower? How have you measured the productivity. Also. I find it hard to believe its a text editor (like notepad). Is it an editor like vi or emacs. These are both environments unto themselves in the hands of a skilled user. Mar 2, 2011 at 10:19
  • 23
    "some text editor" may be much more powerful than you think.
    – user1249
    Mar 2, 2011 at 10:23
  • 6
    I am curious how fast could someone using vi/emacs can do extract method, rename method, inline method, introduce local variable, move field/method, e.t.c. ?
    – artjom
    Mar 2, 2011 at 10:28
  • 6
    @artjomka: A lot quicker than you think. It can all be scripted. You think all these automated tasks were invented for only after the IDE was introduced. Mar 2, 2011 at 10:30

13 Answers 13

46

You've more or less already answered the question:

  1. He's on probation
  2. He's not productive enough

So, he needs to be made clearly aware that:

  1. He needs to be more productive or he won't survive his probation.
  2. He is liable to be more productive with a proper IDE than with a good text editor.
  3. A good IDE is not about giving up control over the code you write its about providing you with tools to enable you to produce working code faster regardless of whether you choose to use the code generation and templating facilities that may be available within the IDE.

Lack of willingness to adapt to his environment might also be a concern.

11
  • 25
    "Lack of willingness to adapt to his environment might also be a concern". This would be a red flag for me too, he wouldn't last probationary period here on this alone. Mar 2, 2011 at 10:23
  • 9
    problem is that most IDEs preferred by companies are bad ones, in that they're chosen solely on the basis of cost (meaning, free...). That usually means Netbeans or JDeveloper, or some flavour of Eclipse. The first two are disastrous, the last often is especially in larger teams as coordinating things like settings and plugins is hell with Eclipse.
    – jwenting
    Mar 2, 2011 at 10:24
  • 4
    @jwenting I don't know how large you mean but I've yet to see a team that's so big Eclipse won't cut it. Settings and plugins should of course be standardised, which is easy.
    – biziclop
    Mar 2, 2011 at 10:38
  • 46
    +1 The problem is, "John isn't productive enough." Don't focus on the IDE as a problem. Mar 2, 2011 at 11:28
  • 1
    "Lack of willingness to adapt to his environment might also be a concern" -- IMO most of the times management enforces dumb rules which the normal herd mentality people dont mind following where as individuals with critical thinking will question it. Management dont like people who question their choices so they might raise red flags claiming Jhon is not cooperative. May 13, 2011 at 9:06
22

Bill should tell John that he's right about preferring simple text editor, but unfortunately, with language + frameworks such as Java + Hibernate + Spring, he needs to use an IDE if he wants to be efficient.

I am a bit like John. I don't like using IDEs.
When I code in ruby/python/bash/lisp, I don't use any IDE.

But when I'm dealing with such a low level / verbose language as Java and frameworks that make your code very difficult to browse without help, I use the IDE. That's also true if I don't know the language / framework very well.

  • The more abstraction / patterns / frameworks you use, the more you need an IDE capable of helping you with navigating through your code.
  • The more low level / verbose / unknown to you a language is, the more you need an IDE capable of helping you with generating / finding the code you need.

Tell him that if he wants to be efficient with tools you use, he has to use an IDE. Bill should also pair-program with John to show him how efficient he can be with the IDE.

7
  • 2
    ++ for pair programming - just having an IDE plonked in front of you is useless without someone showing you the handy keystrokes to get stuff done
    – Gary
    Mar 2, 2011 at 13:32
  • 6
    Since when did Java become low-level language? ;-)
    – Craige
    Mar 2, 2011 at 14:18
  • 5
    @Craige: 'levelness' is relative. Compared to modern dynamic languages, Java is a low-level language with high-level libraries.
    – Javier
    Mar 2, 2011 at 14:53
  • @Craige, you can remove "low-level" if you want, but you can't remove the "verbose" ;)
    – David
    Mar 2, 2011 at 15:03
  • Except that, with a sufficiently powerful editor, you may be wrong, and he may be more productive with his editor than he would be in the IDE. Insisting on points of belief (e.g., a random IDE is more productive than vi or emacs) is only going to make the problem worse, because the unproductive developer will see that you're making a fuss over the wrong things. Mar 2, 2011 at 17:42
12

I think pushing an IDE, is a bad idea. I think having a list of tools that people can use, and than let him choose what he uses, is a more respectful solution.

Then focus on the real issue performance and productivity, give real statistics of how certain projects have taken too much time.

Do not at all let the focus be what tool he uses to code, just let him find his own solution, as long as the goal is better productivity.

I have come into many companies, 90% don't care, as long as they don't have to pay for any tools, 10% care, and demand they use their tools.

If you make the IDE the real focus of your discussion, your being totally disrespectful of him and his methods.

Instead of focusing on the real key issue the productivity, quality and performance.

I myself, have been using a text-editor for over 6-7 years, and there's nothing wrong with my performance.

An IDE can help, but it has to be the programmer's choice to use it, as long as it doesn't affect performance.

I personally hate IDE's will never use em, the more people push them onto me, the more I feel disrespected. I have no problem with what tool people use, but it's like a religion and evangelism, they feel the need that everyone else has to think/do everything the way they do.

And that is a very unprofessional approach to what the real issue, his productivity.

If he deliver's quality work, in his methods, who cares what tools he uses? As long as it's error-free, quality work, and timely.

11

I don't know that we've confirmed the IDE is John's problem. I think Bill should work with John for a bit and observe him: What is decreasing his productivity. If he spends hours formatting his code and trying to move things around or looking up functions... the sorts of things an IDE provides for you, then you should show him how much faster he can find the functions he wants and format his code with the IDE. If this is the frustration, I'm sure once he sees you auto-format a block or quickly find some obscure function, he'll jump through the roof in glee.

If however, the efficiency is because he's surfing google, or having trouble formulating his ideas into coding structures, an IDE will not help him. In that case you need to crack down on his discipline, or help him learn to diagram his ideas into a program flow so he can more efficiently attack the problem

EDIT: My rep is too low to comment, so i have to post here. I disagree with the people that say "let him get fired, then he'll learn." For some people this works; losing their job shocks them and they really wake up and shape up. Others will spiral into a self-destructive spiral that usually ends in therapy or welfare. Bill clearly cares about John or he wouldn't be asking how to help him, so I think the comments and answers about just letting him get fired are definitely not what Bill is looking for.

3
  • 1
    I agree. The case hasn't been proven that John is less productive because he's not using an IDE. Moving to an unfamiliar environment will most likely make him even LESS productive, and frustrated to boot. Focus on his performance. Make him pair program with someone using an IDE (or pair with him in a text editor, maybe you'll learn something too.) Find the root cause of the lack of productivity, don't just jump to the conclusion that his toolchain is at fault. Mar 2, 2011 at 16:58
  • 3
    It's also entirely possible that the employer has unrealistic expectations for John, and that his performance is well within reason. Mar 2, 2011 at 19:03
  • With only 3 developers, if the other two are of the Premium fuel high output caliber, that's entirely possible as well Mar 2, 2011 at 22:52
8

Failure is a great teacher. Bill can stop protecting John and let him stand by his own decisions. If John gets fired because of it, hopefully that will make him a better employee for the next company that hires him.

10
  • 3
    Failure may be a great teacher, but surely is a bad business strategy - why should this company pay for the education of the next company's employees? Mar 2, 2011 at 10:30
  • 5
    @Ekkehard.Horner: How is it a bad business strategy to be rid of someone who is (a) less productive and (b) uncooperative?
    – S.Lott
    Mar 2, 2011 at 11:00
  • 2
    @S.Lott: artjomka's questions implies that John can be made productive (gain for the company); Paul Butcher's proposal to do nothing but allowing John to continue until fired is a sure way to loose money. Mar 2, 2011 at 12:32
  • 4
    @S. Lott: Because training people (John) costs money. Because finding new people costs money. Because training a new person to do his job takes costs money. Firing people is expensive.
    – pyvi
    Mar 2, 2011 at 13:52
  • 2
    I think Bill should go one step further, and fire John himself. Don't wait around for it happen by itself... Also, I'm curious how this wasnt discovered during interviews?
    – AviD
    Mar 2, 2011 at 15:27
6

You can try to convince him that if he understands the IDE and what it does, he remains in total control.

This is the carrot.

The stick is that he's on probation.

6

I have to say I was using and IDE (aptana for javascript), and I hated it, it was slow and did strange things with formatting. I switched to gvim with a lot of command line tools and am much happier.

of course I'm the kind of guy who will write code generators in elisp for fun.

4

I have hard time believing John's performance has anything to do with the editor he is using. At my workplace pretty much everybody uses a different code editor (Visual Studio, Source Insight, vim, SlickEdit...) and there is no visible correlation between the editor/IDE and work performance.

4

If there is a company standard IDE, then just tell him flat out "This IDE is the company standard, USE IT".

If there is not a company standard IDE, and the desire for him to use an IDE is solely for the sake of increasing performance, then it is:

  1. The wrong assumption to make that choice of development environment will be much of a factor in performance
  2. The wrong approach to tell him to use an IDE

If you really want him to use an IDE, I think the best approach is to tell him that his performance is not up to par, then show him how the use of an IDE can help improve that performance. Showing by example is a much better motivator in my opinion.

That being said, I think that the assumptions are wrong here. Most decent developers can be productive in pretty much any development environment. If he is not performing up to expectations, then maybe the root cause is the developer, not the IDE.

3

If Bill, despite his position as team leader, can't get John to use an IDE when Bill wants everyone to use it, there's something wrong with the company in that the team leader doesn't have enough authority.

And no, depending on the job given to a person, that person can be just as productive without an IDE as with one, depending on the tools in use, the person's experience with those tools, and his overall competence (and the overall environment, if John has to pull each source from an application server, load it into his IDE, edit it, upload it again, etc. etc. he's much quicker just editing directly on the application server using say VI (assuming he knows that editor well).

10
  • 4
    Any kind of refactoring is slower (not to mention error-proneness) by several orders of magnitude in a plain text editor than an IDE designed to perform refactoring.
    – biziclop
    Mar 2, 2011 at 11:09
  • 3
    @biziclop An IDE is just a collection of tools. There are no reason why a collection of tools should be more potent than the tools on their own. Refactoring tools exists outside of an IDE also. Knowing tools makes you productive, if you get to chose your own, you are more likely to be productive than getting some tools shoved down you throat.
    – daramarak
    Mar 2, 2011 at 14:28
  • 1
    @daramarak I think we can all safely agree that a text editor isn't a refactoring tool, while an IDE is.
    – biziclop
    Mar 2, 2011 at 14:34
  • 3
    @biziclop sure a simple texteditor alone are no refactoring tool. My point is that a simple texteditor is not an obstacle for refactoring. It leaves you free to choose the tools you like.
    – daramarak
    Mar 2, 2011 at 14:46
  • @biziclop: Since when is refactoring (and getting help doing it) the main thing in productivity? I admit it really helps when I want to rename something, about once a month, but my productivity isn't due to that. Mar 2, 2011 at 17:37
2

Not using IDE is very good because he will learn a lot. But it should not be on the cost of the project. He should use it when he thinks he could finish the job without affecting the timeline.

I would suggest that he does both, so that he can learn fast and at the same time dont get into issues.

After all you need bread to survive then only you can think about becoming a body builder.

1
  • Trying to learn an IDE effectively is an exercise in frustration as well, and takes a lot of time and effort. He may well be SLOWER for several weeks using an IDE than he is now using a text editor (depending on his core competence with the language he's writing), and not any faster for several weeks after that (if ever).
    – jwenting
    Mar 3, 2011 at 10:00
0

I think the main value of any IDE is not that it's an editor, but that it's a debugger. There are some who don't get the concept of a debugger. They debug with print statements.

If other features are what supposedly makes IDEs more productive, like intellisense or version control hookup, I could find myself agreeing with John, for various reasons we could debate.

But debugging with print statements I find hard to grok (though I used to do it).

2
  • 1
    There are stand-alone debuggers that work very well for at least some purposes. I don't know enough about Java tools to say if that's the case here. Mar 2, 2011 at 17:46
  • there are some really famous developers who debug stuff with printf. Even if it's a little cranky, why bother one to convince him to use something else ?
    – jokoon
    Mar 2, 2011 at 17:55
0

Listen, there are people using stuff, there are other people using other stuff. I like both IDE and text editors, they are just 2 different kinds of application, but in the end, the task done is absolutely the same.

It's just Oranges and Apples, end of the line, if you want to fire him arguing "he use a text editor" or else "he's too slow, BECAUSE he uses a text editor", go on, but do you really have to conspire for some strategy on how you can convince him ?

You know, freedom is not about "only the fittest shall prevail", it's about "Doing what I want".

It's not because you live in a democracy that you should impose the practice of the majority. It nearly looks like a persecution of some sort

Not the answer you're looking for? Browse other questions tagged or ask your own question.