A Toolset for a Productive New Year (2013 Edition)

Another year is here and it’s time to get serious about the tools I use to get my job and life done. I try every few months to “downsize” what I use; but I am coming closer to the realization that I don’t have to be “minimal” to be effective.

I simply need to make sure that each tool in my toolset has a use and that I use it. That’s all.

Last year, the 2012 Edition did pretty well here at DevBurner, so hopefully this will provide some more fodder for you tool hungry fools. :D

Here we go.

Paperless and Automation

I love, love, love David Sparks newish eBook about going paperless. I am finally finding the correct workflow with:

  • ScanSnap S1500 an amazing, duplex, you-need-this-now-so-don’t-wait scanner.
  • JotNot Pro on iPad and iPhone for mobile scanning.
  • Evernote and Skitch for keeping track of notes, screenshots, etc.
  • GoodReader on iPhone and iPad. This is the way I manage files on my iOS devices. It has a little feature overload, but it really does do everything I could ever want.
  • Hazel. I don’t know why I didn’t buy this sooner. Hazel basically automates all kinds of actions on the contents of a folder. My paperless system wouldn’t be as efficient without it. I’m barely cracking the service with this app and will be writing about it more and more this year.
  • Launch Center Pro for iOS is a great little app that makes certain tasks on your iPhone much faster and found under one roof.

Productivity tools and systems

I found out this year that I’m flaky when it comes to productivity and “GTD” applications. While writing for Lifehack, I tried so many different todo and project management apps and thought that the new shiny one with the new shiny features was going to somehow improve my productivity. It didn’t. So, I’m going back to my rocks in 2013; using these systems and apps as support mechanisms above anything else.

Development Tools

At my full time job I’m a developer about 75% of the time. So, I have to make sure that I have tools that I can use to get my job done faster and easier.

  • Visual Studio 2012. Programming on Windows? Well, then you will need this. Actually, I really like Visual Studio. Also, with the new addition of LightSwitch to the VS family of tools, I have found that I can get a ton more done for my end users.
  • Kendo UI for all the newer web apps I’m creating. It’s a great JavaScript framework and helps me not have to lean so much on a gazillion different libraries.
  • Knockout.js for using the MVVM pattern for web UIs. Knockout is a great tool to use to build single page applications with JavaScript and HTML.
  • [Bootstrap] is a front-end framework made open source by the peeps over at Twitter. It’s a great way to get a web app up and running and looking good at the same time. It can be (and should be) used as a framework and then customized.
  • Sublime Text 2. From a huge IDE to a nice, fast, fun editor. What I love about Sublime Text 2 is that it’s fun to use and works on Windows, Mac, and Linux.
  • Git for version control.
  • Ruby on Rails for my personal web development and projects.

Writing and reading tools

I’m going to be doing some more writing here and in other places across the web this year. It’s important to have some trusty writing tools so I can get an idea down as soon as I have it. Also, I read quite a bit so having a good workflow for that is essential as well.

  • Instapaper. The best way to save articles for later and read them without any distractions. Works perfectly on my iPhone and iPad.
  • Reeder. I tried to get away from Google Reader this year, but I just kept coming back. Reeder is the best and most fun way to read RSS feeds on my Mac, iPhone, and iPad.
  • Byword for Mac and iOS. I’m writing this post in Byword now. It supports Markdown and not a lot of features. I love it for writing things between 100 and 5000 words.
  • Scrivener for long form (greater than 10k words) writing. I’m going to write a book this year. Scrivener will be my companion in that journey.
  • Drafts for iPhone and iPad. I love this app because it’s fast and I can send my text almost anywhere I want to. It’s replaced all text editors on my iPhone homescreen. I just start with Drafts and go from there.
  • Day One for Mac, iPhone, and iPad is an amazing journaling application. It’s made me want to journal for a whole year now. I will continue with it.

That’s it

That’s a lot of tooling. But I know for sure it’s not everything. There are so many little utilities and workflows that I use throughout my day that I’d bore you (and possibly myself) with all of the details. These are the heavy hitters and as the year progresses I will talk about them and others in depth.

Whatever tools you choose, remember there are just tools to get a job done. The job is more important than the tools used to do it. Hopefully there is something on this list that can help you in 2013 get more important work done.

BaBSE 9: Know Your Tools

Being a good software developer means that you can create software solutions that help solve problems quickly. Being a software developer doesn’t mean that you know every little nook a cranny of a language or every design pattern on earth (although, this can help and is something I personally need to concentrate on), but it does mean that you know how to use tools to create solutions for people effectively.

There is a whole market (free and paid) for development tools that help developers get stuff done in their work lives. And of course, there is a multi-billion dollar app and software market that has been around for decades. These are all tools that help people create and get their jobs done. But is it really only about the tools that you use to develop or to get things done?

You are only as good as your tools

This idea of only being as good as the tools you use to make things is pretty right on. This can be a fine line though. Some people think that you need a super-mega tool to get things done (for instance a full blown SAP implementation for Enterprise Resource Planning) opposed to something that has just the right amount of features you need (where I work, this is an ERP system called JobBOSS).

I think that rather than saying that how good the tools you use dictate how good you are at programming, planning, writing, etc. it should be more along the lines of:

You are only as good as the tools you know

This notion says that it doesn’t matter exactly what tools you use to get things done, but that it’s more important that you know the tools inside in out. So, whether you are using a full blown IDE or a simple text editor to develop, it doesn’t really matter as long as you know the tool and can still develop solutions quickly and effectively.

While developing on Windows I use Visual Studio because it’s pretty much the only tool that I need (and can use) to make Windows and ASP.NET apps. There is a ton to learn about Visual Studio itself, but once you get past all the knobs and switches you can be incredibly fast and productive with it.

It doesn’t stop here

Being only as good as the tools you know isn’t just about software development; it works with productivity, writing, reporting applications, document creation software, etc., so this can apply to anyone that deals with any type of toolset in their work and life. As you get further and further into developing software and solutions you will find that it isn’t about the tools that you use, it’s about knowing what you need to get the job done and then finding and learning tools that support that. So, maybe it’s time to stop looking for tools to make you better, get better and then find and learn tools that support you.

Simplify. Then Simplify Some More.

Stuff is complicated. The more and more technology that we use in our lives that is supposed to “simplify” things, the more and more things end up complicated. That’s why, rather than using tools that have all of the dongles and doodads, we may want to use something simple to uncomplicate certain aspects of our lives.

Too much

The other day I was looking into buying some new laptops and desktops for the company that I work for. We are a Windows shop, so the only company that I would possibly consider is Lenovo (mostly because I think that they make some pretty quality stuff). As I was going through all of the choices I thought, “just tell me what to buy here. I don’t want to choose.” I wanted it to be simpler. Instead, I got too much.

Apple is pretty good at this, rather than selling “entry-level”, “mid-level”, “enterprise-level” (whatever that means), etc. they just sell the best stuff they can. That’s it. They don’t complicate things for people (much) more than they already are. More companies, whether it be services or physical products, need to pare down their offerings. In fact, we need to do this ourselves when it comes to the tools that we use to get things done.

Doodads

I’m a confessed OmniFocus geek. I love how powerful the tool is, how I can access it on my Mac, iPad, and iPhone, and how I can bend my OmniFocus database in any way I want. That’s a blessing and a curse. I have been through the ringer with “tweaking” my OmniFocus setup.

“What contexts define me as a person?”

That’s a terrible question, but one that I have asked when I have wanted to tweak my system instead of use it and work. I also have an ever-growing Perspectives list that is out of control.

I don’t have anything against perspectives and contexts in OmniFocus or awesome features in an application in general, but doodads work both ways. I can use them to get work done or I can use them to complicate my life even more and struggle to get anything accomplished other than tweaking a tool.

Simplify for the sake of sanity

I’m a big believer in that you need tools and processes that are just complicated enough to get a job done. I’m definitely not a minimalist (as you can see from my toolset for 2012 here), but I do believe in simplifying a process or tool to the point that it does exactly what you need to get some work done. This not only lets you get your work done in the most efficient ways possible, it give you some of your sanity back. When I see myself with three different task and project managers opened, 5 different text editors, and a handful of other applications in my reach, it may be time to step back, look at what I need to accomplish, and pick the tools that are just good enough to let myself get things done.

Five steps to take when technology isn’t simplifying things anymore

Here is a 4 step process I follow when I’m complicated the hell out of something that doesn’t need to be so complicated.

  1. What are you trying to do? It’s funny when I’m knee-deep into an outline in an OmniFocus project and I forgot even what I was trying to do. Nine times out of ten, you don’t need to be complicated things more than they already are. Remember what you are trying to accomplish.
  2. Why are you trying to do? Another good question to ask when you are complicated things. Is what you are trying to do even worth it to you? Is it even something you need to do? If not, why complicate something that you don’t want or need to do. Just don’t do it.
  3. If you are bogging yourself down in bits, use paper. I’m a big fan of good paper and a nice pen. When you are so bogged down and “in the weeds” with a problem, pull yourself out of technology and allow yourself to use paper for a bit. You will be surprised at how much clearer things will get. This guy likes that too.
  4. What’s your next action?I told you I was a GTD geek. But seriously, if you don’t know what the next physical thing you have to do to solve a problem, no text editor, mind mapping software, in depth taxonomy structure, or piece of code is going to tell you. You have to define this.

How This Technologist Complicates GTD

I’m a GTD kind of guy. But, I got “into” GTD for the complete wrong reasons. I like pens and paper, paperclips, new notebooks, bags, toys, and shit. I like processes and systems and the idea of productivity and efficiency. I re-listened to one of my favorite MoM episodes The Awkward Journey To GTD and began to think of my own journey (that is far, far from over).

Here is my short account.

The problem

I re-started college in 2007 after a 4 year “break” where I needed to “find myself” and quickly found that working a little more than part time, commuting 2 hours a day to school (in the northwest Pennsylvania snow belt) and managing a full time course load seemed like too much.

Being into pens and paper, new notebooks, and toys and shit, I started searching for something that could help me get over the dread of having too much work and not enough time to do it. I stumbled onto Merlin Mann, Cal Newport, Leo Babauta, Lifehack, Lifehacker, and other lifehackery types of things.

The beginning of the solution and my fiddliness

Being into all of the toys and systems and shit that surround GTD I fell down the rabbit hole of creating the most awesome Hipster PDA while following this insane workflow (don’t read it!), using it until I switched to Blackberry and Outlook tasks, moving to tools like Remember the Milk, going back to paper with DIY Planner, getting a Mac and switching to OmniFocus, getting pissed that I couldn’t use OmniFocus on a Windows machine at work and school and writing up my workflow on how to use Toodledo for GTD, using just my iPad and iPhone with OmniFocus, move to Things to try out their wicked fast and wicked late cloud sync, and now back to OmniFocus. If you want to see my toolset for this year, you can see it here.

It was a journey to say the least. I got a lot done in that time like graduating from college, got married, got two puppies, a kitty, and a fish, wrote in my spare time for an Android site and now for Lifehack, made some good friends, went from a software engineer to IT manager of a company. But, all this fiddliness is still with me and leading me down the same rabbit holes that I don’t want to go down anymore.

Complicating the simple

GTD is a really simple process; we just tend to complicate it and clog ourselves up with tools and processes. I do this with everything though.

There is something else I learned about software development over the last few months that I can apply to my GTD process (and my life process). Developing software isn’t the reason you develop software; you do it to solve problems. So, if I can solve a problem with a simple, technical solution, that’s what I need to aim for.

GTD is a simple solution for a complex problem. No need to complicate it any more with added processes, analyzation of what contexts to use, how to best organize your projects, etc. We techie types lovvvee to complicate the simple and use new shiny toys and shit.

There is also no need to follow GTD to a “T” and implement every last detail that David Allen suggests. And that is coming from a guy with a GTD Notetaker Wallet and a schedule weekly review on his calendar ;)

Moving on

When I have figured out the best way to organize a complicated process like retiring two servers from an active Active Directory environment with 80+ users but can’t seem to “remember” to pay my cable bill, I’m not GTDing correctly. The overcomplicating of GTD over the years has slowly eroded my belief in it working for me 100% of the time. I have a hard time trusting my system when I don’t believe it works. But, the reality that I have come to is this: GTD doesn’t make my life complicated; I make my life complicated by complicating GTD.

If you can relate to this, it’s time to step back, utilize your current tools and processes, get out of your own way, and simply get things done.

BaBSE 5: Learn to Learn

Becoming a Better Software Engineer (BaBSE) is a series that I started at the beginning of the year. Every Friday I will write about something I’ve learned in the technology field (and mostly likely in the field of life). This helps further my skills as well as any other fledgling technologist or software developer that wants to learn. So, let’s get on with it, shall we?

There are two things that will always stay the same when it comes to software development (and anything in the technology industry in general) are:

  1. Things will always change.
  2. If you don’t accept the change and keep up with it, you will be left in the dust.

When you know these two things about technology it makes thing a heck of a lot easier, that is, if you are willing and able to learn quickly and efficiently. It also doesn’t hurt to actually love to learn new things.

Know your learning style

Some people need to learn new things by doing them while others can learn just by reading something or someone telling them how to do something. It’s important for you to know which learning style works the best for you because as a software developer you are going to be doing a lot learning quickly.

For me, I learn best with a mixture of tutorials, books, and hands on work. I find that I get a vague understanding of something by reading and then solidify it with doing physical work. Over the past year I have learned almost everything technology related this way and it’s worked well.

You better love to learn

One of the main reasons that I got into information technology and development was because I loved learning new things. This field encourages me to keep learning new and better ways to do something because information is always changing.

One thing that you should know about the technology industry is that if you don’t actually love to learn, the chances of you doing well and actually liking what you do are pretty slim. Like I said before, you have to be able to learn because this industry is constantly changing; if you can’t stand to change or learn something new, you are at a major disadvantage and will most likely end up bitter about your job.

No, it really doesn’t ever end

It’s funny when I start this though, “well, now that I got learning ‘x’ out of the way it’s going to be easier to do…”. That feeling lasts for about an hour until I realize that learning ‘x’ has opened me up to an entirely other set of things to learn as well as all the exceptions. Learning about software development doesn’t really ever end.

There were always be a new version of something, a new framework to try, new operating systems and languages to learn; always something. Being able to know your learning style and loving to learn will make this easier.

Learn to learn more than tech

The number one reason that this site isn’t totally about programming and technology is that alone does not make you a good technologist. Being good at anything doesn’t involve only that one thing; talent builds off of and around other expertise. When I wrote about becoming a technologist, I made the claim that there are 7 things that you will have to be good at to be a good technologist. Programming is just one of them.

Just as being a good human is made up of a bunch of stuff, so is being good at anything else. Learning how to communicate effectively (so many tech people can’t), understanding entrepreneurship and business, as well as learning about becoming and staying productive, will benefit you greatly as a software engineer.

So, rather than get out of school, learn for a couple of years about a job that you took and calling it “good”, we as technologists have to keep learning everyday to stay ahead of the curve and to make our jobs more enjoyable and productive.

5 Questions to Ask Before Adopting New Technologies and Tools

As technologists and geeks we love shiny new toys. Anything that is small, fast, sleek, and new we have to know what it is and what it could possibly do for our lives. Coming from a productivity standpoint, we would like to think that anything new and brilliant could help us gain in our overall efficiency and effectiveness. The reality of it is that most tools and new technologies, although neat and fun to use, tend to make us less productive in the long run.

This is mostly due to us fiddling around with tools that don’t necessarily fit our workflow and trying to force ourselves or the tools to help us work. This is a fool’s errand and one that we as technologists should try to avoid. There is a “right tool for the job”, and once we find that tool, we should spend our time working and using it rather than working to try to use something else. Before we change some technology item in our toolset, let’s ask ourselves these questions to ensure that we are doing it for the right reasons.

  1. Is my current technology being used to its full potential?
    If we use a piece of technology to get some sort of work done and we are considering a different one to do some of the same work, we should evaluate our current tool and see if we are using it to its full potential. Maybe there is a feature or workaround that we haven’t explored yet with the current tool that we can add to our workflow to save us time and “changing costs” of switching to a new one.
  2. Do I need something new to fill a void in my toolset?
    After we make sure that our current tools are being used to their potential, it’s possible that we may need a new tool or technology because there is a void in our toolset. If a new tool does something that we don’ currently have covered in our workflow, then it may be worth considering adopting. This is only because we currently don’t use or have any tool that is like it.
  3. Do I really need another tool for “X”?
    How many text editors does a man need? We should take a look at how many tools we already use for a current task. If we are using more then one, it’s highly unlikely that we need another tool.

    “But I have different moods and need different tools for my different moods…” Well, well, aren’t you an artist? Having more tools to do one thing often leads to using no tools to do no things. Try to stick with a few and end it there.

  4. How much work do I have on my plate?

    Adopting a new technology can take a bunch of time and experience to get productive and effective with it. If you are on a massive deadline to program something or want to get your book done, then switching your IDE or text editor may not be the best thing to do at the moment. We should take a look at how much work with deadlines is in front of us and adopt new technologies based on the time we have.

  5. What are other’s saying?
    Take a look at what other early adopters are saying about certain technologies and tools. They can give us some insight and help us get over some of the hurdles of taking on new technologies by ourselves. The key to this is that we shouldn’t search out what everyone is saying about something. That’s not productive.

    We can see what some of the people we trust online are saying and go from there. Word of mouth only word of mouth; it can’t replace our actual usage of a tool.

We should be using our technologies effectively, not effectively looking for new technologies to solve problems that are already solved. There is nothing wrong with trying out new things. To do that we could set up a weekly time where we try out new stuff, but we have to make sure that our technology changes aren’t interfering with our real work.

How I Plan Projects

Planning a project is a creative and intuitive endeavor. It requires that you have way more ideas than you will ever use and that you aren’t hard on yourself for coming up with something that could be perceived as “stupid”. You have to be able to “give yourself a break” and become an idea generating machine to ensure that you are planning for everything you need to get done in your project.

You then need to be able to organize the information into tasks in an intelligent way.

I follow a loose “Natural Planning Model” offered by Mr. David Allen. Here’s how it goes.

Creating the vision

The reason that you have a project in the first place is because there is more than one task to complete between point A and point B. That is, your current state is not the state that you wish it were in. You have things to do.

You can’t know where a project is supposed to end up without knowing of what done looks like. That’s why I make my project something highly doable. I then envision what it would look like when the project is done and what the definition success would be.

For example, for an upcoming project of getting new all-season tires for my car, the project title would be:

“Install new all-season tires on the Solara”

and my vision of success would look something like:

“Ensure that my new tires are installed on my car and that my winter tires are put away securely until next winter.”

I store the project title as a new project in OmniFocus and the vision of success as the project’s note.

Creating the mind map

This is where your creative side comes into play. Mindmapping is an excellent way to let your ideas flow naturally and gives you the ability to account for everything related to a project. I personally use MindNode Pro for my Mac. I copy the title of the project from OmniFocus and make that the base node of the MindMap as well as what the mindmap will be saved as.

I think start adding nodes for anything I can think of that is related to the project. I don’t worry about order or context at this time. Just whatever comes to mind like:

  • Order tires on TireRack
  • Look at the tire recommendations form Efficise and decide which to purchase
  • Make sure that you have plastic bags to store winter tires in
  • Make an appointment with Monro

You get the idea.

Creating the outline

After I have a ton of ideas and potential actions I start to group them by “sub-project” in the mindmap. I then transfer them to the OmniFocus project by exporting the MindNode file to OPML, opening in OmniOutliner Pro and then dragging tasks from OmniOutlinter to OmniFocus (this workflow needs a little work still).

After moving them to OmniFocus I then decide which tasks are parallel and which have to be cone in order. I give them a context in good GTD fashion and possibly start dates and due dates for time sensitive tasks and project milestones.

Acting

Once my project is outlined then my overarching OmniFocus system provides me with the tasks that I need to see at the right times. If there are important tasks in the project then I see them show up in my “core” perspective through the day. If they aren’t important for that day, I will then see them in my available tasks in the certain context that I work in when I move to the “less important” tasks of the day.

I then do the tasks. Rocket science. I know.

Adjustments

It’s inevitable that you will have to change some things in your project as it moves forward. That’s where my weekly (sometimes bi-weekly) reviews come in. If I see something fishy in my project during my review, like a stalled task, complete tasks, hidden tasks (damn you, OmniFocus!), or anything else, I take care of it during the review.

And that’s it. I try to spend way more time “doing” then “planning”. That’s important.

Face Your Fear of Failure With Technology and Start Building

It’s easy to get into a non-productive, fear-induced rut, especially when it comes to creating something with the infinite amount of technology we have today. We start to think that the tools we have aren’t the right ones to get the job done, the processes we have in place aren’t efficient and “setup correctly”, and the idea we have isn’t quite right.

I have been throwing some ideas around about a new piece of software that I want to create for the web, iOS, and Android for some time now. But, I tell myself I just don’t have enough knowledge to make it happen. What it really comes down to is me not having enough guts to create something and be OK with it if it is a failure (which it probably will be; at first).

Rather than being afraid that you don’t know enough, or that you possibly couldn’t create what you wanted to create, I’ve found some guidelines that have helped me break through the fear of failure and start building.

You know enough to get started

I constantly convince myself that I need one more tutorial for a certain framework or programming language before I can get started on projects. I tell myself I don’t know enough yet to make a good application that people will want to use. The problem is that I always think that I need one more tutorial to make my ideas turn into usable apps. There is nothing further from the truth.

The problem that many developers and creative people have is they think that they don’t have enough information to complete what they want to create. The truth of the matter is that you may not have all the information that you need to complete your creative endeavor, but you sure as hell have enough to get started. So, get started and the pieces will fall into place.

Pick a technology and stick with it

A good technologist knows how to use a toolset to solve problems. The problem with that is picking the toolset. I have been going back and forth on what technology to choose for the application I want to develop. Should I go with Ruby on Rails, something that I’m not extremely familiar with, but familiar enough with, or should I stick with what I know now?

Unless using a different technology is part of the app being successful or you really want to try a new technology with a new project, then stick with what you know. This reduces the barrier to get started.

You will probably fail, so do it now

My biggest fear is that I will make something and no one will use it (except for me of course). But, it’s really the beginning of the last sentence that is the problem.

“My biggest fear is that I will make something…”

Anything after that is just part of the problem. I’m afraid they will hate it, I’m afraid it won’t look right, I’m afraid of everything about it.

The reason that we have this fear of failure is that something in the past is giving us false evidence today that our worst fears will be imagined. I’m here to tell you (and myself) that you will probably fail, at least at first. So, instead of being fearful of failing, at least create what you can, fail, then iterate. You will be better and stronger for it in the long run.

Besides, technology is so awesome now that you can write a book, create a new app or game, or movie with hardly any cost other than your time. You aren’t losing anything when you fail; you are gaining the incite of what will and won’t work.

Everything will fall into place, as long as you let it

So, rather than fear that you don’t know enough, aren’t tech savvy enough, or will fail miserably, simply move forward and figure it out as you go. You don’t need a crazy GANTT chart or in-depth requirements document to start creating something. You don’t need expensive tools and special processes to make things happen. What you need is some standard technologist skills, time, and the lack of fear of failure.

Now, instead of searching for one more article, trying to find out how to lose the fear and create things, just go create things.

A Toolset for a Productive New Year (2012 Edition)

As we enter 2012, it’s a good time to take stock in the tools that you will be using to get things done this year. I’ve learned a lot about my workflow this year. I’ve also killed a lot of productivity tools that I have wanted to work in my life but just couldn’t get them to. Here is how I’m putting my systems in check, especially as I start a new position with a different company and continue my onslaught of the productivity space with Mr. Vardy.

Going paperless

I’m making a concerted effort this year to get as much paper out of my life as possible (you know, except for my luxerious Moleskines). Really, I just want to get rid of my filing cabinet and get rid of paper billing as much as possible.

The tools to do it?

Productivity tools and systems

I tried and failed this year to find a tool that was cross-platform (iOS, Mac, Windows, possibly Web) that stood up to OmniFocus. There is no such tool. Seriously, stop looking. So, I basically bit the bullet and started using OmniFocus more on my iPad and treating anytime I used Windows as a context. This helped out a lot. I’ve got a long list of tools for this section, but they all play a vital part.

  • OmniFocus for Mac, iPhone, and iPad. My GTD, project planning, life managing, mega-tool.
  • Evernote. Good for keeping track of things other than long form writing.
  • iThoughts HD. The best for mindmapping and starting off my project planning on iPad.
  • MindNode Pro. The most valuable mindmapping app for Mac.
  • Fantastical. I love how you can enter new appointments with natural language. It’s also great because I don’t have a super complex calendar (yet).
  • Google Calendar
  • Microsoft Office. It’s the best on Windows and not too shabby on Mac. I only use it for the heavy lifting though.
  • Moleskine Cahier. Can’t be paperless all the time.
  • Livescribe Pen system. Great for meetings and making sure I don’t notes that I took on paper.

Development tools

I’m a developer and soon to be IT Manager. I have to make sure that I have tools that fit my needs and help me be productive while programming for Windows and web.

  • Visual Studio. You want to program on Windows? Okay, you will need this.
  • ReSharper for Visual Studio. The greatest add-on for Visual Studio ever created. It’s not expensive either for what it can do. I think I would forget out to write LINQ without it.
  • NSpec. Good for the Business Driven Development that I am learning. I first started BDD with RSpec for Ruby on Rails. I like it so much it’s made its way into my .NET life.
  • soapUI. The best and free way to test web services.
  • Notepad++ for Windows. No comment.
  • BBEdit for Mac. Once again, no comment.
  • EMEditor for Windows. The only way to open a 1GB text file that I know of.
  • Ruby on Rails. Web programming “The Rails Way” is the way that I will be doing so moving forward. I didn’t have the opportunity to use RoR at Erie Insurance as they don’t support it, but with my new gig, anything that will need thrown on the intranet will be done with Rails.
  • BeyondCompare for Windows. A great tool for comparing files.

Writing tools

I plan on writing much more in 2012. Not only will I continue my 750 word a day habit of personal rambling, but I plan on developing this site as well as writing a book or two. I prefer tools that don’t have too many bells and whistles and stay out of my way.

  • BBEdit. Again? BBEdit could possibly be the best 50 bucks I have ever spent.
  • Byword. This is still buggy for my on the Mac, but I do like the fit and finish of it. Great for using Markdown.
  • Marked. Mr. Terpstra knows what the hell he is doing and has made my use of BBEdit for writing with Markdown perfect.
  • WriteMonkey. Hopefully I won’t be writing as much on Windows, but when I do it will be with WriteMonkey.
  • Notesy and Nebulous Notes for iOS. I love writing on my iPhone. These are the tools I do it with.
  • Dragon Naturally Speaking. I use Dragon Recorder on my iPhone and then transfer it to Naturally Speaking on my Windows virtual machine. Why do this? Because Naturally Speaking was on sale for about a third of the price as the Mac version and has about 3 times as many features as the Mac’s.

That’s it

This is my nice minimal setup. By the way, Dropbox should be included as the glue that holds my digital world together. It isn’t listed here because nothing on earth works without it anyways, right?

Every tool here is used and has a purpous. I’m not going to try to minify my tools to just be minimal. I will use the tools that make the most sense, work the best, and provide me with the most value. These are those tools. Hopefully with my toolset and some elbow grease, 2012 will prove to be a productive and great year.