What Would Easy Be Like?

As another (Gregorian) year edges ever closer, it’s a period that offers a natural reflection time on what happened in the past year and the forging, often weakly, of “New Years Resolutions”.

One interesting question to ask for your work (or personal) life is: “what would easy be like?”.

For example, looking back to the past year where was the pain, sadness, frustration, long hours, constant overtime, feelings of falling behind in new technologies, failed deployments, the same bugs re-occurring over and over again, unsupportive management, mean co-workers, feelings of inadequacy, disappointed customers, etc.

you should feel like you’re doing your best work

Take some time. Make a list. Write them all down.

Now imagine what it would feel like if all of the things on the list did not exist in the upcoming year – what would easy be like?

Fixing some of the things may mean radical decisions such as quitting your job and moving employer.

Some things may not be quite as radical: better automated testing to catch bugs earlier.

You probably won’t be able to fix everything on your list. Starting from the point of view that things should be easy, that you should feel like you’re doing your best work, can be a powerful way to frame where you’re currently at and where you want to be by this time next year.

Winning in 2016

As the year 2015 starts its last slide into 2016, it’s the time of year that I start to think about what my 3 Wins are going to be for next year.

If you’re not familiar with the 3 Wins concept, it’s similar to goal setting but rather than focus on “what will I tick off my todo list” it’s more along the lines of “what will make me feel great, like I’ve accomplished something, like I’ve made progress…”. One way to help come up with three wins is to imagine how your future self will feel when you look back on the year and have accomplished all your 3 Wins.

It’s important to make your 3 Wins achievable, otherwise not achieving any of them could be disheartening and demotivating.

One technique to guide you, while being sounding very “managementy”, is the concept of SMART criteria.

SMART is an acronym that stands for:

  • Specific
  • Measurable
  • Attainable
  • Realistic
  • Time-related (or Time-bound)

Using SMART may help if you are struggling to create your own 3 Wins.

You might have 3 Wins for your work/career and you may also have 3 Wins for personal/health/family/etc. related things. Also you can use 3 Wins daily, weekly, monthly, quarterly, or at any scale you wish; you could even have decade or lifetime 3 Wins.

Open Source Thanks

In a previous post (5 Ways to Contribute to Open Source - It’s Not All Code) I mentioned the simplest way to be involved in open source is to simply Tweet about the project or by saying thanks to the creator/contributors. In the post i said “Most open source authors don’t get paid, saying thankyou is not only nice but is good encouragement for the authors to keep the project going”.

I’d like to propose the hashtag #opensourcethanks – it would be great to see the Twitter search for this hashtag fill up with thankyous :)

If you’re benefitting from an open source project, take a minute to send a thankyou Tweet.

Women in IT

I’m a white male. I’ve never been subject to discrimination in the workplace because of these things, so I wondered whether I have any claim to write about women in IT.

I have worked in all-male teams and in teams with (limited) numbers of women. I’ve also had (mostly) male managers and (occasional) female managers. Whilst it’s not very scientific, those teams with women in them felt different, a different energy or dynamic. There may be evidence to support this: according to this article in HBR “if a group includes more women, its collective intelligence rises”.

I recently tweeted “I'm wondering if we should seek gender-neutral versions of craftsman and journeyman in #IT?  "crafter" and "journey____" ?? #WomenInIT” and this spurred me to write this article.

Is “craftsman” too gendered a term? If so something like “crafter” is quite an easy change to make “software craftsman” becomes “software crafter”, I actually quite like this.

“Journeyman” seems a little harder, “journeyperson” seems a little clunky; perhaps “journeying software developer”? I’m not sure.

There is sometimes the view that this is all “political correctness gone mad”, so it’s probably a good idea to start with what we want our industry and our day-to-day work lives to be like.

If we accept that women improve our teams, and better teams make better software, and better software improves the world; then we need more women in IT. If this means that we (that is the “male we”) need to use a few different words here and there then so be it. We just need to think of good, non-patronising, sincere, gender-neutral (and hopefully still catchy) versions of these words.

There is of course a whole lot more to encouraging (or not discouraging) more girls to take an interest in IT, from schooling systems to general societal gender-biases.

Ultimately if I as an individual want the benefits of more women in the teams I work in, then I need to ask myself what can I do to help make this happen.

Often discussions such as these turn into “I only believe in meritocracy, I don’t care what gender you are” type statements. I too ultimately believe in the “best person should get the job” type thinking, however I also recognize that as a white male I’ve never had to deal with discrimination.

Diversity in general is usually a good thing: religion, gender, race, technical background, age, etc. A team, comprised of 10 people that are all the same, with exactly the same skills and outlooks will be weaker overall than a more diverse team.

How can we represent the world with our software if we don’t represent it within our development teams?

On Showing Up

So I just listened to episode 1000 of .NET Rocks. I’ve been listening to this podcast for many years, through biting snow-covered walks in England to the cosseted comfort of an air-conditioned car in Australia when it’s 43C outside.

1000 episodes is an amazing achievement and it got me thinking.

There’s a lot of popular talk at the minute on advancing your career, becoming an outlier, and building a personal brand. The thing is there’s one underlying trait that successful people seem to possess: showing up.

"if the rope breaks nine times, we must splice it together a tenth time"

Fear is a big motivator, for the longest time (like so many other developers I’ve met) fear was present; fear of not knowing everything, fear of looking stupid, fear of not being able to find another job. For the most part I’ve let this fear fly away and one of the ways I think I’ve done this through persistence, thorough showing up.

I think if you take an approach of continuous personal improvement you will. Don’t be afraid to put yourself out into the world, whether this be blogs, user groups, Twitter, or lunchtime “brown bag” sessions presenting to your colleagues where you work.

There are always going to be people who criticize, but there are also always going to be people who say “thanks”.

There’s a Tibetan saying that “if the rope breaks nine times, we must splice it together a tenth time” – this is showing up, even when you feel you have nothing to contribute, are fearful of criticism, or feel like you can’t get anywhere – there are always choices, and showing up is one of them.

As Jim Carey says: “you can fail at what you don’t want, so you might as well take a chance on doing what you love”.

5 Ways to Contribute to Open Source - It’s Not All Code

Open source is cool. Most of us use at least one open source project in our daily work. Even if we don’t, the websites we visit probably do.

It’s easy to contribute to an open source project, even if you don’t write code.

Contributing To Open Source pyramid diagram

This diagram shows some of the different ways to contribute.

Tweet About the Project

The easiest way to contribute to a project is to either Tweet about it to tell people that it exists, or send a Tweet to the contributors / creators. Most open source authors don’t get paid, saying thankyou is not only nice but is good encouragement for the authors to keep the project going.

Submit a Bug or Idea

Don’t like something about the way a product works? Wish it had a killer new feature? Don’t remain silent, instead head over to GitHub or CodePlex or wherever the project is hosted and create a new Issue or Bug “ticket” to tell the authors about it. Even if you think your idea may not be useful to other users, submit it anyway and let the project team decide.

Contribute Documentation or Design

Even if you’re not a programmer or you don’t have time to submit code to the project you can still help. There are some great open source projects out there, unfortunately sometimes the documentation for these projects is either non-existent, out of date, or lacking. Helping to make better documentation is a quick win for everyone.

Another contribution you can make is to the project design. Maybe you’re a graphic designer or know someone who’s an artist. Help the project team out by designing the project website CSS or by contributing a logo design. A lot of projects have limited time and so focus on the code, they don’t have time for design and logo-making. This is a great non-coding contribution to make.

Contribute Code

Contributing code to open source projects is a great gift of our valuable time and keystrokes. We can make the products better for ourselves and others. It’s also a great opportunity to learn.

If you’re running an open source project consider creating a label for easy issues/bugs/work items that a newcomer can tackle.

Create a Project

This is a biggie. If you’ve got an idea for a project, go for it! It’s super easy to get started on GitHub or CodePlex.

Albums to Code To

I did a little survey to ask what people’s favourite albums were to code to, here’s the results. Hopefully will give some ideas for some different aural code fuel.

Artist name Album name
Amon Amarth Twilight Of The Thunder God
Baths Cerulean
Blank & Jones (Spotify) Chilltronia No. 2 - Music For The Cold & Rainy Season
Brian Tyler Children of Dune
Cake Comfort Eagle
Cold 13 Ways to Bleed Onstage
Daft Punk Random Access Memories
Daft Punk Alive 2007
Daft Punk Tron Legacy Soundtrack
dire straits Brothers in Arms
Dream Theater Live at luna park
Emancipator Safe in the steep cliffs
grammatrain imperium
Gustav Mahler Complete Symphonies
Hidria Space Folk HDRSF-1
Hoobastank Every Man for Himself
Hybrid Classics
Lights Out Asia Hy-Brasil
Massive Attack Mezzanine
Metallica Master of Puppets
Metallica Master Of Pupets
Miley Cyrus Bangerz
Moby 18 The B sides
Mozart n/a
nine inch nails with teeth
Paramore Paramore
Pearl Jam Ten
Pendulum Immersion
Pink Floyd Dark Side of the Moon
Rage against the machine Rage against the machine
Rush Muse
Swedish House mafia Dont you worry child
The Crystal Method Drive+Run
The New Pornographers Mass Romantic
Twisted Sister We're Not Going to Take It
U2 Pop
Various GTA Vice City Radio - VROCK
Various GTA Vice City Radio - FLASH FM
vivaldi four seasons - karjan

I’ve removed spurious entries and also those without albums which included:

Mozart  
WritheM Broadcast on Grooveshark (Programming/Electronic)  
Youtube clips with rain sounds  
Youtube clips with byzantine hymns  
Foo Fighters  
None  
yo yo honey singh  

10 Pluralsight Courses–A Milestone

I just had my 10th Pluralsight course released; Building .NET Console Applications in C# teaches how to create well-designed, fully-featured .NET Console applications.

When I hit 7 courses I wrote Three Things I’ve Learned Being a Pluralsight Course Author and those learnings still stand but there’s three other things that I think I also appreciate more now.

1 Continuous Improvement

As the saying goes: practice really does make perfect; though aiming for “perfection” is probably not a path to happiness. To paraphrase Mother Teresa: don’t try to do great things in this life, just do small things with great love.

We did not weave the web of life, we are merely strands in it

Continuous improvement doesn’t just apply to code, it applies to ourselves as a whole. A the name of this site implies, if we don’t take good care of our health (mental, physical, spiritual) then our code will be affected adversely. We know this from our own experience, we can bang our head against a problem and stay late for hours only to leave work without success, feeling tired and unproductive. The next morning we start work and solve the problem in 10 minutes. We are not machines, we shouldn’t think of ourselves as such. We are not Human Resources, we’re just Human.

I’ve learnt loads by being a Pluralsight author, maybe one day I’ll make it to 20 courses, there’s one thing for sure: my 20th course will be better than my 1st. We should all look for and feel a sense of progress, if we aren’t then maybe it’s time to revaluate our circumstances.

The goal of getting better and making progress is, I think, a better goal than becoming perfect.

2 Gratitude

No matter how cool the things we do for work are, it’s easy for the common to become unconsciously ignored.

Having my 10th course published is probably a good time to reflect with gratitude.

I’m grateful for:

  • Being part of the Pluralsight vision to democratize online tech training for people around the world, because
  • The work I do on course production helps people to get better at what they do
  • The opportunity to create, and have what I create viewed by thousands of people around the world
  • Being part of what really is a revolution in tech training, and Pluralsight really is leading the way for tech training
  • And finally, simply being able to teach.

3 Changing the World

We sometimes don’t think of the ripples we send out into the world by our actions. No thing exists purely because of a single cause. A complex web of things brought the thing into existence.

Continuous improvement doesn’t just apply to code, it applies to ourselves as a whole

Take for example the clothes you are wearing right now. You aren’t wearing them simply because you bought them: someone made them, someone made the machine that made them, someone harvested the cotton that made them, someone planted the cotton, someone drilled the oil to make the diesel that delivered that t-shirt to the store, and so on.

In the same way, the work we do sends ripples into the world. When we make software, we change people’s lives. When someone learns and uses something from one of my courses, their software gets better, and their lives and the lives of their users is improved. This is a pretty amazing thing to be part of.

“We did not weave the web of life, we are merely strands in it. Whatever we do to the web we do to ourselves” – Chief Seattle.

15-Second Favourite Programmer Music Survey

Hi, I thought it would be cool to collate peoples favourite music album to code to.

I created this Excel Web App survey – I would be grateful if you could take 15-seconds to tell me (anonymously) what your fave artist and album are:

http://bit.ly/programmermusicsurvey

Results will be published on the blog once the response sample set is high enough.

Thanks :)

Kill Your Productivity Demons with my New Pluralsight Course

My new Pluralsight course Personal Productivity & Performance Tools for Windows Developers “get more done in less time” has just been released.

It covers a range of developer-focused and general productivity tools that you can mix and match to suit your way of working.

“We’re constantly under pressure to be more productive. Learn how to use these tools to improve your productivity, streamline your workflows, and get more done in less time. ”

The course consists of:

  • Reduce Typing with AutoHotkey
  • LINQPad – A C# / VB.NET Scratchpad
  • Starting Programs and Websites with SlickRun
  • Take Control of your Clipboard with ClipX
  • Remember What you Did with TimeSnapper
  • Making the Internet Work for You with IFTTT
  • Free Image Editing with Paint.NET

You can find this course along with my other courses on the Pluralsight author page.