In Project Development Context Switching

Most developers are acutely aware of context switching. Your working on a new feature in a sprint when the business comes to you with a urgent production bug from last release. You have to switch contexts from what your working on, remember what your did last release and figure out the problem. That’s a pretty big context switch.

context-switchingBut what about the context switching you do that you really don’t realize is happening? I never really noticed it when I was working full time in the .Net stack, it was just the norm. It wasn’t until I started playing around with the MEAN stack and Meteor that I realized how much context switching I was actually doing elsewhere.

File/Project/Solution Context Switching

When I first started developing I was addicted to Visual Studio Projects and even Visual Studio Solutions. Even simple solutions would have a half dozen projects before there was a line of actual code.

But what’s the harm? Again it’s context switching. Your business logic project will be different then your MVC website or API project. Figuring out where things go and the structure takes mental space. This is especially true if you have ambiguous project names, for example “BusinessLayer, BusinessLayer2, BusinessLayer3”.

Language Context Switching

In a typical project how many programming languages/syntax’s are you using 2, 3, 4 or more? In the Resgrid project we have C#, JavaScript, HTML, CSS, Razor, TypeScript and SQL. There’s a tax you pay switching languages, even if they are C based. If you’re a C# or Java developer and working in JavaScript how many times have you done equality with “==” instead of “===”? Just because HTML or CSS isn’t a ‘language’ you still have to conform to it’s rules, thus you need mental space to remember the rules and syntax. The more complicated the markup or language the worse the hit it (I’m looking at you XAML!).

Medium/Device Context Switching

I really like Cordova for mobile development. There are some caveats to when it makes sense but the promise is amazing, use your HTML, CSS and JS to develop on device mobile apps. It’s just a web browser running a local web server right? The same about responsive websites, just have 1 website and it dynamically changes to meet the device screen requirements

But you just can’t take something designed for a full desktop web browser and just assume “Yep that’ll work fine everywhere”. Same for a Hybrid app, iOS, Android and Windows Phone all operate very differently switching platforms, rendering engines, etc all take pretty major context switches.

Just remember that there is more to context switching then just switching from your active work to a bug in a 1 year old feature or going from a product to another product.

Resgrid is a SaaS product utilizing Microsoft Azure, providing logistics, management and communication tools to first responder organizations like volunteer fire departments, career fire departments, EMS, search and rescue, CERT, public safety, disaster relief organizations, etc. It was founded in late 2012 by myself and Jason Jarrett (staxmanade).

About: Shawn Jackson

I’ve spent the last 18 years in the world of Information Technology on both the IT and Development sides of the aisle. I’m currently a Software Engineer for Paylocity. In addition to working at Paylocity, I’m also the Founder of Resgrid, a cloud services company dedicated to providing logistics and management solutions to first responder organizations, volunteer and career fire departments, EMS, ambulance services, search and rescue, public safety, HAZMAT and others.


One thought on “In Project Development Context Switching”

  1. Pingback: Design Limbo

Comments are closed.