7 habits of highly effective C# developers

You don’t have to hike miles to remote waterfalls to become an enlightened C# developer. It is nice to do though.

There are a few habits that distinguish successful and effective C# developers from the average ones. I want to share the top 7 that will earn you high respect of your team.

1. Take on important mundane tasks

We’ve all been there — your tests are running slow, you have way too many dependencies and the reporting code needs refactoring. There is lot of technical debt and even your product owner acknowledges that and gives you time to improve it.

But, wait. Nobody wants to get their hands dirty and do the hard boring work.

Step up. Take it on. You’ll be surprised how much you going to learn from it. And you’ll earn huge amount of respect from your peers.

2. Focus

How many notifications popped out while you were reading about the first habit? Do you tend to multitask from Visual Studio through Twitter to Skype? Give yourself a break and start to focus.

You might feel productive and busy and the days are flying by, but you are not effective. An hour of an undisturbed concentration on one task goes a long way. Try it out and you’ll be surprised.

Plan your day and your news, email and chat consumption — have blocks of undisturbed work time.

3. Become domain expert

Learn the business domain that is behind the software you are working on. Try to understand and speak the language of the analysts, product owners and your customers. Don’t translate it into your own terms, but use it as is in the code.

Talk regularly with your business experts and show them your interest in the subject. Read a book about it — there will be one for sure.

A good generic start is The Ten-Day MBA that gives you an overview how businesses work. You won’t become an MBA but you’ll have a good high level overview of the different aspects of business and a solid vocabulary.

And maybe you’ll even notice that marketing isn’t just advertising.

Marketing is not equal to advertising?

4. Understand the business value

This one goes well together with becoming an expert in the domain, but it is slightly different.

With every task you do, think about the bottom line.

That means — how much money and value does the change add to the business.

It will give you perspective when you arguing about whether the bracket should go on the same or new line (new line of course, no discussion ;).

5. Cut the scope

When you apply the rule #3 and #4 and you understand the domain and the value you can add to the business you start seeing easier ways of achieving the same results with your day to day tasks.

Don’t be afraid and suggest them to your business expert or product owner.

Sometimes you might miss a detail or two but sometimes you will save the company a few days of work and lower the maintenance burden for your team.

6. Communicate

I think communication is the holy grail of programming. Why? Because it helps you understand. And without a good understanding you will get it wrong. And when you do, you’ll waste a lot of lines of code.

Also, it helps to manage expectations. Every product owner wished that the feature was done yesterday, but often there is a scope creep. Bring that up as soon as you’ll notice it. Maybe you’ll find a way around together. The worst case, you will help him to manage his boss’s expectations. In this field you don’t want any surprises.

I don’t think that happens in programming.

7. Keep up to date

Lastly, you should always take some time to sharpen your saw. You want to know what’s happening in the tech stack around you. Keeping the #2 rule about focus in mind the best way to do that is follow a weekly programming newsletter that lands in your email inbox.

Have a dedicated time to read through the links (15-30 minutes after lunch works for me). I curate a few weekly newsletters and you might enjoy

  • C# Digest — only top 5 articles from .NET and C# world a week and
  • Programming Digest — gives you an idea about overall trends.

Secondly, have a side project. You can’t always try the new techniques and ideas on your daily codebase so have a side project. Not the type that is supposed to earn you money, but the one you can get your hands dirty with the things you learn.

Negotiate with your manager Friday afternoons for self-development and use it to build simple applications — like expense tracking application in Angular, simple invoicing app with ASP.NET Web API and others.

If you want other ideas how to keep up to date, have a look here but keep it simple and don’t overdo it. It’s easy to burn out by the latest new hotness and information noise.

Following a newsletter and having side project will catapult you to the top 1% of the most effective developers.