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.

gnat
  • 21,442
  • 29
  • 112
  • 288
artjom
  • 674
  • 2
  • 7
  • 14
  • 1
    See the points from this question http://programmers.stackexchange.com/questions/20950/what-justifies-the-use-of-an-standard-editor-versus-a-ide – JoseK Mar 02 '11 at 09:46
  • 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? – TeaDrinkingGeek Mar 02 '11 at 09: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. – Martin York Mar 02 '11 at 10:19
  • 23
    "some text editor" may be much more powerful than you think. –  Mar 02 '11 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 02 '11 at 10:28
  • I found the best of both worlds. I use DevStudio with a vi plugin. – Martin York Mar 02 '11 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. – Martin York Mar 02 '11 at 10:30
  • 3
    @artjomka: Still curious how you measure productivity? – Martin York Mar 02 '11 at 10:35
  • It's not me who measure productivity(and by the way I am not even working in that company) it's the company owner who had pretty big expectation of that developer, and he don't meet them. Also that company have another developer on probation period, who is working with IDE and he (by the company owner opinion) create new functional faster – artjom Mar 02 '11 at 10:48
  • That's nice to hear that vim has all that refactoring features, but I guess vim learning curve is pretty high so for myself I ll better stay with Idea. P.S. One more question can vim show class hierarchy and find method in code ? – artjom Mar 02 '11 at 10:57
  • 1
    @artjom: [show class hierarchy:](http://www.vim.org/scripts/script.php?script_id=1518). Find method in code: built in and better than any IDE I have seen (pushes current location jumps to method allowing you to follow the code without running it amd pop back out once done) and [Intellisense :](http://insenvim.sourceforge.net/). Once you have pushed past the **VERY** steep learning curve a good editor is a programmers best friend. Once problem with IDS I have found they are only good for small to medium sized projects after that the volume of files overwhelms the IDE. – Martin York Mar 02 '11 at 16:15
  • You had said that the company owner had big expectations and that the developer didn't meet them. This sounds a bit more political than technical. Development is still an art and each artist needs to pick his/her own brush. When you start to dictate the brush, the developer is going to chafe and be less productive, this is just a given. – Arcege Mar 02 '11 at 17:24
  • @Martin York If an editor has ANTLR integrated into it and a java compiler (both of which you need to perform refactoring accurately), it is an IDE. (The clue's in the name really.) – biziclop Mar 02 '11 at 19:18
  • Emacs seems like a good compromise. – Fred Concklin Mar 02 '11 at 17:16
  • Unless you measure his productivity through some method and compare it with others (using the same method) I think it is a Dilbert like mistake to call that programmer unproductive. Because the expectations were higher he was given difficult tasks let us say. Also we need to figure out what that "some text editor" is. If it is windows notepad yes may be you can blame him, but if it is vi or emacs it might be the other way round. – Eastern Monk May 13 '11 at 09:03

13 Answers13

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.

Murph
  • 7,813
  • 1
  • 28
  • 41
  • 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. – Binary Worrier Mar 02 '11 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 02 '11 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 02 '11 at 10:38
  • 46
    +1 The problem is, "John isn't productive enough." Don't focus on the IDE as a problem. – Andres Jaan Tack Mar 02 '11 at 11:28
  • @jwenting You may to take a look at this question which backs up your claim: http://programmers.stackexchange.com/q/21987/7167 – Gary Mar 02 '11 at 13:35
  • Andres Jaan Tack hit the nail on the head. The IDE isn't the problem. – rreeverb Mar 02 '11 at 16:32
  • +1: He's not productive enough, challenge him on that, not the IDE. – Gabriel Mongeon Mar 02 '11 at 17:00
  • I'm with Andres on this one. For whatever that's worth. – PSU Mar 02 '11 at 18:44
  • 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. – Eastern Monk May 13 '11 at 09:06
  • @Akshar its about compromise from both sides - "questioning" is not the same as "outright refusal to even try" and I'll happily concede that that applies equally to management as it does to the individual - and more importantly the answer has to be taken in the context of the question. Oh... and I did say "might". – Murph May 13 '11 at 14:00
  • 1
    Also worth pointing out that a non-IDE user isn't going to suddenly become insta-more-productive when s/he starts using one for the first time. – Erik Reppen Dec 09 '13 at 19:09
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.

David
  • 2,724
  • 3
  • 17
  • 18
  • 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 02 '11 at 13:32
  • 6
    Since when did Java become low-level language? ;-) – Craige Mar 02 '11 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 02 '11 at 14:53
  • @Craige, you can remove "low-level" if you want, but you can't remove the "verbose" ;) – David Mar 02 '11 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. – David Thornley Mar 02 '11 at 17:42
  • @David Thornley : if the editor is powerful enough to allow features such as debugging (inspection, breakpoint), refactoring, code browsing, then, I guess I call it an IDE. As someone said here or somewhere else, emacs is a nice IDE for Lisp(with slime) for example. – David Mar 03 '11 at 07:42
  • -1: for "right about preferring simple text editor". Understandable, arguable, but he's clearly *not* right if his performance is low. Also, verbosity is relative. C is a language with relatively few in-built functions, but that means you end up writing more code. Java/Python inverts that (lots of pre-built, less code to write). Both mean you have to keep a lot of items in mind. – deworde Feb 05 '13 at 10:27
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.

crosenblum
  • 997
  • 4
  • 12
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.

Avatar_Squadron
  • 301
  • 1
  • 4
  • 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. – Keith Gaddis Mar 02 '11 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. – Joe Internet Mar 02 '11 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 – Avatar_Squadron Mar 02 '11 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.

Paul Butcher
  • 2,817
  • 1
  • 18
  • 18
  • 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? – Ekkehard.Horner Mar 02 '11 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 02 '11 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. – Ekkehard.Horner Mar 02 '11 at 12:32
  • @Ekkehard.Horner: How is "If John gets fired because of it" a sure way to lose money? Perhaps John could -- faced with cooperating and being more productive -- make a personal change. Perhaps this kind of stark decision will actually help John see that what's good for the company is good for him, too? – S.Lott Mar 02 '11 at 12:54
  • 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 02 '11 at 13:52
  • 1
    @pyvi: "Firing people is expensive" Perhaps. Arguing with people may be *more* expensive than replacing them. In this case, we don't know, do we? – S.Lott Mar 02 '11 at 14:04
  • 1
    John is still under probation. This is the entire point of probation periods, to give both companies and employees the opportunity for a fast exit if the hiring/joining decision turned out to be incorrect. Were he a long standing employee, my response would have been different. The overhead involved in getting rid of John is not the same as the overhead involved in getting rid of Bill. – Paul Butcher Mar 02 '11 at 15:24
  • 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 02 '11 at 15:27
  • @AviD: "this wasnt discovered"? That John is argumentative or that John refuses to use IDE's. Neither can easily be discovered during a day of interviewing. During an interview where you watch them code, they could use an IDE and then stop using it after being hired. During the day of interviews they can *sound* very agreeable, yet, during real work, not show agreeable behavior. – S.Lott Mar 02 '11 at 16:58
  • We don't know that John is argumentative. We know he has substandard performance and doesn't want to use a certain (unspecified) IDE. It's reasonable to tell him his performance is unacceptable and suggest he try the IDE; under some circumstances it may be reasonable to order him to use the IDE (which Bill apparently didn't do). The only suggestion of argumentativeness is that Bill tried to talk John into doing something John didn't want to do (possibly with good reason). – David Thornley Mar 02 '11 at 17:54
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.

biziclop
  • 3,351
  • 21
  • 22
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.

Zachary K
  • 10,433
  • 2
  • 37
  • 55
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.

Nemanja Trifunovic
  • 6,815
  • 1
  • 26
  • 34
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.

Dustin Wilhelmi
  • 816
  • 6
  • 4
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).

jwenting
  • 9,783
  • 3
  • 28
  • 45
  • 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 02 '11 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 02 '11 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 02 '11 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 02 '11 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. – Mike Dunlavey Mar 02 '11 at 17:37
  • @biziclop: No, we can't all agree on that. It's perfectly possible to have refactoring tools in editors (emacs is probably the easiest to adopt for refactoring), and there are IDEs without refactoring tools. – David Thornley Mar 02 '11 at 17:47
  • @Mike Dunlavey Since it was clearly mentioned in the question. – biziclop Mar 02 '11 at 18:50
  • @David Thornley I doubt you can do even the simplest refactoring (encapsulate/rename package for example) in emacs, and no, there are no IDEs designed to perform refactoring (which I am talking about) without refactoring tools. – biziclop Mar 02 '11 at 18:52
  • @biziclop: When I was looking for C++ refactoring tools, one of the ones I found was in elisp for emacs, and "an IDE designed to perform refactoring" is little different from "an editor designed to be extended, one of which extensions is something to perform refactoring". I doubt you've had experience with a really good programmer's editor. – David Thornley Mar 02 '11 at 21:31
  • @David Thornley I had, but if something not only maintains an AST, but can follow the language semantics, that's an IDE as far as I'm concerned. You're probably right though, the boundary between the two is blurry. – biziclop Mar 02 '11 at 21:54
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.

ChrisF
  • 38,878
  • 11
  • 125
  • 168
Siva
  • 121
  • 2
  • 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 03 '11 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).

Mike Dunlavey
  • 12,815
  • 2
  • 35
  • 58
  • 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. – David Thornley Mar 02 '11 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 02 '11 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

jokoon
  • 2,262
  • 3
  • 19
  • 27