Top 10 Tools That Have Changed the Way I Work

In the modern software development world we rely on lots of different tools to help us with our jobs. In this post I thought I would list the tools which I rely on each day and couldn’t live without. Each and every one of these tools forms a large part of my daily productivity.
The tools I want to cover are:

    • Visual Studio 2013
    • Resharper
    • NCrunch
    • NDepend
    • Mind Genius
    • Enterprise Architect
    • Balsamiq
    • Notepad++
    • Paint.NET
    • DropBox

I would really like to hear from people in the comments about the tools that you rely on. Mainly as I am always on the lookout for new tools, but it is always good to see what other people like to use as I am sure you are all a very diverse bunch.

Visual Studio 2013

I have been using Microsoft’s Visual Studio in various versions since Visual Studio 5 back in the 1990’s. Visual Studio has come on leaps and bounds since those early days of C/C++ coding. Microsoft has recently released Visual Studio 2013 and this is definitely their best version of the tool-set yet.

Visual Studio 2013

Visual Studio 2013

I mainly use the .NET development tools and flit around between Winforms, MVC and WCF projects. Visual Studio 2013 comes with lots of enhancements to the IDE including code preview scroll bars, Code Lenses, Peek Definition, Sign into Visual Studio and the new group by class in the test explorer. I think for as long as I am ever writing code I will be using Visual Studio, so it will be interesting to see where Microsoft takes it next.

Resharper

As well as using Visual Studio I also use a number of 3rd party extensions to help me with my day to day software development. The first tool I rely on is Resharper by JetBrains. This is a code productivity tools that helps you enforce coding standards, offers advanced refactoring tools and has advanced code searching and navigation. This is a very feature rich tool and I only really scratch the surface of what’s available.

JetBrains Resharper Code Productivity Tool

JetBrains Resharper Code Productivity Tool

A more complete list of features in Resharper include, Code Analysis, Navigation and Search, Coding Assistance, Refactoring’s, Code Generation, Code Templates, Code Cleanup, Unit Testing, Internationalization, ASP.NET and MVC Tools, XAML Editing Tools. Nant and MSBuild Script Editing.

Resharper isn’t the only tool like this, probably the other big contender in Visual Studio productivity tools is CodeRush from DevExpress. I have used this tool and it is pretty good, especially at guiding less experienced developers, but I have always preferred Resharper as a tool. It isn’t particularly expensive either.

NCrunch

Another tool that I have come to rely on is NCrunch. NCrunch is a continuous testing tool that will continually run your unit tests as you are working. This is really useful as it enables you to get instant feedback as to whether you have broken any test as you change/refactor code. You can configure the tools to run in multiple different background threads depending on the speed of your machine, but I have really found it quite un-obtrusive.

NCrunch Test Runner

NCrunch Test Runner

I have already written a short review of NCrunch where I go into a little more depth on the tools features, but I would definitely find Visual Studio odd to use without having this in place as I have grown used to having it there.

NDepend

The last Visual Studio based tool I want to include in this list is NDepend. NDepend is a tool that allows you to measure code quality using lots of different metrics and charts. When you first use NDepend it can be very intimidating as it will tell you in lots of different ways why your code isn’t up to scratch, even if you have been using Resharper and fixing all the style warnings, and also using Static Code analysis. I have already written a review of NDepend on this blog which goes through a lot of the main features.

NDepend Static Code Analyses

NDepend Static Code Analyses

There is a danger with this tool that you could spend far too much time analyzing code and end up with analysis paralysis. It is important to configure the tool to suit your needs as all the metrics may not be relevant to your scenario. Once you have mastered the tool though it is very valuable indeed and definitely worth the price. NDepend also has a powerful scripting system build in called CQLinq. This allows you to write Linq queries over your code base. This allows you to define your own quality metrics or tweak the ones that already exist.

To get the most out of this tool you need to invest a lot of time to it up front. As a development leader I wouldn’t give everyone access to this tool. I would keep it to senior/lead developers only and use it as a tool for guiding code reviews.

You can also get build server licenses which allows you to run defined sets of rules against your code base on a build in much the same way as you can do with Microsoft’s own static code analysis.

Mind Genius

I love mind mapping as a productivity tool. Mind mapping is a diagram used to visually outline information. A mind map is often created around a single word or text, placed in the center  to which associated ideas, words and concepts are added. Major categories radiate from a central node, and lesser categories are sub-branches of larger branches. Categories can represent words, ideas, tasks, or other items related to a central key word or idea.

MindGenuis Mind Mapping and Project Management Tool

MindGenuis Mind Mapping and Project Management Tool

There are many different mind mapping tools you can use, but the one that I have settled on is Mind Genius. I use Mind Genius for task planning, document planning, and most importantly planning posts for this blog.

What I also love about this tool is that you can use it for basic project management. Nodes on a map can be turned into tasks with priorities where you can associate time lines and how complete they are. Mind Genius will then plot all of this on a standard project Gantt chart.

If you are using a mind map to plan a document, once you export the map to a Microsoft Word file, the branches on the mind map form headings in the document. I have used this technique many times to plan complex documents and it really helps to break down the task. I generally write most of the document in Mind Genius as on each leaf of a branch you can open up a note window, so you can just add your content in there. Then when you export to a word document you have all the content exported in the correct place.

Enterprise Architect

For my day job I am a development leader and architect. I quite often have to draw complex architectural diagrams and I favor using the UML modelling language for this. I tried using Microsoft Visio to draw these diagrams but I just couldn’t get on with it, so I started using Enterprise Architect by Sparx software.

Enterprise Architect UML Diagramming Tool

Enterprise Architect UML Diagramming Tool

Enterprise Architect is a very deep tool that will even let you do code generation from your diagrams, but I never use this feature. I just use it for creating diagrams for documents and this blog. I mainly use Activity Diagrams, Use Case Diagrams, Class/Object diagrams and Sequence Diagrams. You can also get extension packs for different modelling languages like BPMN and the TOGAF architectural templates. It is a bit of a fiddly tool to get to grips with, but once you have got used to its quirks it is a very flexible. It comes in different editions (Desktop Edition, Professional Edition, and Ultimate Edition) which vary in price from inexpensive ($135) to quite expensive ($849). I use the Desktop Edition as this covers more than what I need it for.

Balsamiq

If I am doing any user interface work I like to use Balsamiq to design the screen layouts. There are many different tools for designing user experiences, but I favour Balsamiq as it is very easy to use, and I really like the pencil sketch style that it uses, especially if I am using Balsamiq sketches on this blog as they are quite visually striking.

Balsamiq User Experience Design Tool

Balsamiq User Experience Design Tool

Using this tool you can link screens together to create what look like paper prototypes of your screen flow. This is a great way to get early screen mock ups in front of your customers to get their early feedback.

Notepad++

You can’t beat a good text editor. There are many editors out there and people tend to get very passionate about what editor they use. This can go from the extreme ultra geeky VI editors through to slightly less frightening EMacs through to a good old user interface based editors. My personal favorite is Notepad++. This tool is free and it is very powerful. I tend to use it mostly for chopping through logs files as it handles large files very well and has good searching and sorting capabilities.

Notepad++ Free Text Editor

Notepad++ Free Text Editor

Notepad++ also has different syntax highlighting templates for different languages, so if you don’t like using huge development environments like Visual Studio, Eclipse, NetBeans etc then you can use an editor like this for writing code.

Paint.NET

Quite often when writing software you need to create images/icons etc so having a decent drawing package is essential. For this type of work programs like Photoshop CS or Elements seems a little overkill. You can use a program like Gimp, but again that is a very feature rich and quite a complicated piece of software to use.

Paint.NET : Free and Powerful Image Editing Program

Paint.NET : Free and Powerful Image Editing Program

Paint.Net. Paint.NET is free image and photo editing software for PCs that run Windows. It features an intuitive and innovative user interface with support for layers, unlimited undo, special effects, and a wide variety of useful and powerful tools. This package is free to download and is very easy and intuitive to use.

DropBox

The final tool I want to discuss in this roundup is Dropbox. Dropbox is a cloud based storage solution that lets you store files in the cloud and synchronize them between multiple machines. Dropbox has a web interface (shown below) and a plugin that you can install on your computer where you map it to a folder, and anything in that folder is automatically uploaded and synced in the cloud.

Dropbox : Online Cloud Storage

Dropbox : Online Cloud Storage

Once you sign up to Dropbox you get 2 GB of free storage and you can pay extra for extended plans. I am still using the free version as I just use it for document syncing between machines and not as an online backup facility. In fact the main thing I use it for is storing my company accounts and drafts of blog posts so I can access them from anywhere.

Conclusion

I hope you found this list interesting. These are 10 of the tools that make my working life easier. There are many other tools, but these are my top 10. It would be great if you could leave a comment on this post saying what your favorite tools are as it is always interesting seeing what other people use in their day to day lives. Plus I like trying out new pieces of software all the time.

Participate with Coding in the Trenches on Facebook

Participate with Coding in the Trenches on Facebook by Click the button above.

4 thoughts on “Top 10 Tools That Have Changed the Way I Work

  1. Chris Ramirez

    Miss vs 2012 (my current job is using vs2010). Can’t do without re-sharper. like Balsamic and notepadd++ although my first choice is always emacs for adhoc editing.
    Have not used ncrunch, though I hear good things… like ndepend, but as you said, it can be quite overwhelming at the begining.

    My other favorite tools are:
    snoop for wpf spying.
    cygwin (as you can probably tell, I developed in unix at one time)… can’t beat it for viewing log files
    Crucible for code reviews (I wish Atalassian would get its act together and fix all the performance issues…)

    Microsoft OneNote -> keeps all my notes nicely organized (used to do in on paper) but I have found this to be quite good.

    Reply
  2. Adam Cadman

    Just found this post looking for the difference between Resharper and NDepend. Thanks for that.

    I use UltraEdit as a text editor. Notepad++ is free, and I install it on servers for ad-hoc edits, but UE wins hands down the rest of the time.

    For taking and sharing notes, OneNote is good (especially for creating and storing screenshots) but Evernote is better and it has Android (and probably iPhone) versions too so it’s easy to access your notes everywhere and to share them with others.

    I’ve just started using WcfStorm for testing WCF interfaces. It’s much more functional than the default WcfTestClient and remembers any config changes between reboots!

    If you use PowerShell at all, then PowerShelPlus from Idera (https://www.idera.com/productssolutions/freetools/powershellplus) is a really good free Powershell IDE. Idera also make some really useful tools for managing SQL Server databases.

    Reply
  3. Jon Hocking

    One caveat to Dropbox, and that’s dependant on usage, I concur.

    My situation was one of typically too many dropbox computers. One at work, one on my main server at home and one on my laptop. All happily synching for many many moons.

    Then, during a coding session in the office, the main server at home lost the drive that Dropbox content was stored on. Something I didn’t spot, until I went to save my project to be told the location didn’t exist (I know, bad practice, saving visual studio projects directly to a dropbox folder) – investigation into this revealed most dropbox content had been deleted from the local machine – but not by me.

    Further investigation reveals a potentially disastrous mode of operation as far as Dropbox is concerned. The drive being lost on the server, triggered a deletion request on Dropbox – it assumed that as the 50,000 + files were no longer on the computer, I must have deleted them, so it percolated this across the account – deleting them from my work PC.

    Luckily, I hadn’t turned on my laptop for a week, so could recover most of the files…

    Could have been resolved by dropbox prompting (“you are about to delete 50000 files are you sure??”).

    This has prompted me to stop using dropbox for anything other than items I can afford to lose.

    Your mileage may vary – I assume my setup is amongst the more unusual out there…

    Reply

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s