DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones AWS Cloud
by AWS Developer Relations
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones
AWS Cloud
by AWS Developer Relations
The Latest "Software Integration: The Intersection of APIs, Microservices, and Cloud-Based Systems" Trend Report
Get the report
  1. DZone
  2. Culture and Methodologies
  3. Career Development
  4. How Important are Productivity Tools, Really?

How Important are Productivity Tools, Really?

Dane Morgridge user avatar by
Dane Morgridge
·
Jul. 28, 10 · Interview
Like (0)
Save
Tweet
Share
7.10K Views

Join the DZone community and get the full member experience.

Join For Free
I am very much a minimalist when it comes to programming.  I love things like dependency injection and other cool techniques, although they can sometimes create a certain level of complexity to your application.  A good deal of the time the small amount of complexity is greatly outweighed by the benefits.  There are sometimes, however, where the benefit doesn't justify the added complexity.  If I am building a basic console app to do a very small task, things like dependency injection may get in the way as they may not add very much benefit.  Not saying that all small tasks may not truly benefit from dependency injection, but there are certainly cases where your application may now.  I have personally fallen in love with it and love to use it where ever possible.  That being said, I don't like adding complexity just for the sake of adding complexity.

So what does this have to do with productivity tools?  The productivity tools I am referring to are things like the Productivity Power Tools for Visual Studio 2010, ReSharper or CodeRush.  There are many examples out there, but those are 3 that I have personally used or use currently.  Just as I am a minimalist with code, I used to be a minimalist with my IDE as well.  I customized window layouts and such, but that was generally it and almost never installed any add-ins to Visual Studio at all.  Having heard other developers rave about how awesome ReSharper is, I decided to give it a shot and I have to tell you, it's like crack for a developer.  

I guess it's not totally like crack, because the addiction isn't always immediate.  The first time I used both ReSharper and CodeRush, they got in my way.  I was used to doing things my way and when either jumped in to help, it was annoying.  I have probably installed and uninstalled both several times before I had that "ah ha" moment.  If you have done much with ASP.NET MVC, you may notice that Visual Studio has great intellisense, even for web, but it pretty much dies when you are using code inside of a string.  For example, I have a code block that I need to write a value from say, view data, to a url.  Imagine the following HTML code:
<a href="/products/<%= productId %>"></a>
The productId variable contains something that you need to append to the url and would probably be the variable in a foreach loop or something in that example.  You get full intellisense as long as the <% %> code block isn't inside of a string like href="".  I had been using ReSharper for a couple of days and noticed that with it I now have intellisense inside the strings!  I can't even begin to express how awesome it was when I discovered that.  (On a side note, I tend to be one of those people who has to find things on myself and doesn't read instructions so I might have found this if I had read some documentation. I still haven't read any documentation on ReSharper either...)

Suddenly one of my biggest pain points with doing web development in Visual Studio was now gone.  It was a truly awesome day.  

When it comes to the actual tools, both ReSharper and CodeRush are great tools, but I have found that it really just comes down to personal preference.  I really can't qualify that one is "better" than the other based on anything other than just personal preference.  Both JetBrains (maker of ReSharper) and DevExpress (maker of Code Rush) are very active in supporting the developer community so my recommendation would be to take both for a spin.

I have recently discovered the Visual Studio Productivity Power Tools which give some really cool things like tabs colored by project, unifying tabs vs spaces, a new cool add reference dialog and other cool things.  I tried it on a whim one day and it seemed pretty cool, but once again didn't really seem like something I couldn't live without.  It actually caused me a bit of trouble because I didn't realize that there was a new Add Reference dialog until the day after I installed it, which just happened to be during a presentation (oops!).  During the presentation I was showing off StructureMap and needed to add a reference to it in a project and was presented with a dialog I hadn't seen before.  And I have to say that the new one is really cool, it can just throw you off when you are in the middle of a presentation and had never seen it before.  

In addition to add-in productivity tools, Visual Studio contains some awesome features, mainly the aforementioned intellisense.  Intellisense is a wonderful thing and can really help you write code faster by not having to remember full class names or at least not have to worry about typing them.  ReSharper's additions to intellisense can even further enhance this.  However, it can come with drawbacks you may not realize right away.  

Intellisense and other productivity tools can make programmers lazy.  Don't get me wrong, I'm not saying that every programmer who uses them is lazy, but it can lead to lazy development.   While they make some tasks super easy and require almost little work to do, they can also cause you to forget how to do those tasks without the productivity tools.  I have heard several developers say (and I have said this myself) that they cannot live without tools like ReSharper.   

As programmers, we must be careful to not become too dependent on those tools to the point where it actually degrades our coding ability.  A couple of months ago, I needed to do a demo for someone using Mono. To show the cross platform capability, I created a bunch of code from scratch in a terminal using Vim.  The first time I really struggled with certain parts because I was so used to Visual Studio doing them for me that I had all but forgotten how to do them myself.  It all came back pretty quick, but the longer I go without doing an exercise like that, the more basic stuff I may forget.

So to answer the question in the title, how important are productivity tools really? I would say they are and can be very important.  Anything you can do as a programmer to make it so you can get more code written faster the better off you will be.  Just make sure that you are not letting it degrade your skills at the same time.  And, if you haven't given tools like ReSharper and CodeRush a spin, I urge you to do it.  It's an addiction that you will likely want to live with forever.
Productivity

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • Keep Your Application Secrets Secret
  • 4 Best dApp Frameworks for First-Time Ethereum Developers
  • Comparing Map.of() and New HashMap() in Java
  • How Agile Architecture Spikes Are Used in Shift-Left BDD

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends: