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.

SHARE:

On Staying Positive and Subconscious Prejudices

So I was toying with an idea using SignalR on Azure.

In the client code:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Internet Uptime</title>
</head>
<body>   
    <script src="Scripts/jquery-1.6.4.min.js"></script>
    <script src="Scripts/jquery.signalR-2.1.0.min.js"></script>
    <script src="/signalr/hubs"></script>
        
    <script>
        $(function () {
            var hub = $.connection.uptimeHub;            

            $.connection.hub.start();           

            hub.client.internetUpTime = function (time) {
                $('body').text(time);
                
            };           
        });
    </script>    
</body>
</html>

So when the server sends  an “internetUpTime” message, the <body> is being set to the content of the string sent from the server.

More...

SHARE:

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”.

SHARE:

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.

SHARE:

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.

SHARE:

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.

SHARE:

What are Your 3 Wins for 2014?

The idea of "the power of three" is a universal concept; it can be seen anywhere from religion (The Holy Trinity, Triquetra, etc.) to childhood learning ("ABC", "123") to entertainment (The Three Musketeers, The Three Stooges, etc.) to project management (the scope-cost-schedule triangle).

One simple way to exploit the power of three is to define outcomes/wins/achievements. These "three wins" can be at any level:

  • Three wins for the project
  • Three wins for the year
  • Three wins for the month
  • Three wins for the week
  • Three wins for today

The three chosen things should not be simple tasks to be ticked off, they should be things that feel like a "win" and give a real sense of progress and satisfaction.

The "wins" should be realistic and achievable.

Getting Results the Agile Way by J. D. Meier makes extensive use of the power of three with its "Monday Vision, Daily Outcomes, Friday Reflection" and three types of "Hot Spot".

The power of three can also be applied to individual items of work/features being developed, for example a feature can be evaluated by: user value, business value, technical value. In agile team retrospectives the power of three can be used to decide: what went well, what didn't go well, what will be improved upon in the next iteration.

(the above is an excerpt from my book Keeping Software Soft)

My 3 Wins for 2014

These are my 3 (professional) wins for 2014 (in no particular order):

While these aren’t my only wins for the year, they are things that I feel if I accomplish them, when I see in 2015 I can look back and be content.

It’s also important to be flexible with plans, if professional or personal events happen that mean I really can’t accomplish these then that’s ok: no plan survives contact with the enemy.

 

Make some time to think about and write down your 3 wins for 2014 and feel free to share them in the comments.

SHARE:

Three Things I’ve Learned Being a Pluralsight Course Author

Up to this point I’ve produced 7 Pluralsight courses, these are three things I learned along the way:

Be Flexible with Plans

In our industry, “plan the work, and work the plan” is rarely successful – look at the rise of agile software development. So too in producing courses.

Just because I plan to record today, doesn’t mean mother nature won’t throw a wild (noisy) storm at me, or that the new houses being built close by won’t require a thunderous earth-moving machine to be used, or that there wont be a biplane show nearby.

This is definitely a valuable lesson in general: when we grasp desperately at our plans and treat them as if our lives depend on them, we just create unnecessary stress for ourselves. Sometimes you just have to push through regardless, and sometimes you have to let it go; wisdom is knowing which approach to take.

Celebrate Milestones

Life is a series of highs and lows, peaks and troughs. If we don’t celebrate and recognise the highs then all we’re left with are the troughs, the lows. Clearly it’s important to recognise both. For example when C# Tips and Traps got into the top 10 leaderboard, this was a major high so I made sure I celebrated the fact.

The Right Tools

When creating anything the right tools make all the difference. For example I started recording my first course using a Rode NT1-A which is a beautiful microphone for recording rich vocals in music but not great when it comes to sound isolation. I quickly moved to the USB Rode Podcaster which is pretty great – it’s frequency response is tailored for voice and has a fairly narrow end-address pickup that greatly reduces background noise.

The right tools really do make such a difference in all the things we do, as does the right mindset.

I hope to get to ten Pluralsight courses by the end of next year, you can check out my current Pluralsight courses on my author page.

SHARE:

The Golden Age of Software Development

There's a lot of negativity sometimes in our profession, just take a look in your Twitter stream.

The tools we use aren't absolutely 100% without imperfection; the vendors of the tools we use don't always go in the direction we want them to; and sometimes the things we invest time in learning go away and it's beyond our control.

We are change

It's amazing to me how many developers seem to hate Windows 8, even to the point of wanting to install start button replacement tools. And that's ok, it’s a personal choice. For me, Windows 8 is the best operating system I've ever used. Another example was the "Visual Studio menus are shouting at me!", for the record I didn't "fix" this "problem" as it didn't bother me. But I know some developers who really hated it.

Perhaps because we are agents of change, we don't like not being in control of change.

I think we're living in a golden age of software development

We have amazing (if imperfect) tools, Visual Studio is great and we have some awesome open source libraries that are super easy to install via NuGet.

Between my Windows Phone and Windows Store apps I've had almost 28,000 downloads. More than downloads though, that's 28,000 people’s lives that I've touched, even if it’s in a small way.

I can have an idea, and within an hour have a prototype running on my touch screen Lumia phone, or my SurfaceRT tablet. This is amazing, really it is, and I take it for granted sometimes.

This doesn't mean we shouldn't highlight problems or disagree with the strategies of our tools vendors. When we do, we can drop f-bombs and call "them" idiots and create more negativity in our profession; or we can call things out with respect and with hope for the future.

It's our community, we get to decide how it feels...

SHARE:

Today I Became a Microsoft MVP

I’ve been awarded a Microsoft Most Valuable Professional award for the first time in my career.

I feel like it’s a real personal achievement for me. But why?

Recognition

The first is purely one of recognition, and while I suppose this could be considered somewhat egoistic, I guess we all like to be rewarded or recognised.

give each other more compliments; not in the vacuous, high-fiving, “team-building exercise” kind of way

I suppose that if you feel good whilst feeling like you’re helping others, then it’s nice win-win.

Confidence

The imposter syndrome seems to be an oft-quoted thing in our industry and I’m not ashamed to say that I sometimes suffer from this “phenomenon in which people are unable to internalize their accomplishments” [Wikipedia]. Recognition, such as direct compliments from individuals and awards such as the MVP scheme help to alleviate this. I think my article “5 Ways To Give Yourself A Break” was a reflection on this. Perhaps one thing we can do to make our industry more amazing is to give each other more compliments; not in the vacuous, high-fiving, “team-building exercise” kind of way; but in a genuine and sincere appreciation of others’ efforts.

Making Things Better

Things like access to other MVPs and having a more direct line to Microsoft to provide feedback will hopefully make the products and tools we all use better. It’s cool to think I may be able to participate in betas or other programs and provide feedback to make things better.

 

All in all, I feel like this is a significant milestone in my career and I hope to make the best of it in the coming year…

 

* Technically it’s from Oct 1st PST – but it’s the 1st here in Australia :)

SHARE: