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:

5 Ways To Give Yourself A Break

In my many years of being a software developer there’s one thing that I’ve seemed to have experienced on and off throughout this time: Fear.

Fear of:

  • Not knowing the latest language/framework/architecture
  • Falling “behind” everyone else
  • Not being the best
  • Not being as good as others
  • Being wrong
  • Making mistakes
  • Looking stupid
  • Not being able to learn future technology X

This list could go on…

I’m not alone in these feelings. I have been told the same by, or seen this trait in, other developers I’ve worked with over the years.

We don’t have to be super heroes

So what can we do as a community of developers for us all to feel happier and more fulfilled?

I think if we want to make our professional community better we can start by learning to gives ourselves a break.

Here’s five ways we might be able to do this, feel free to disagree or add your own ideas in the comments section.

1. You Don’t Have To Wear A Cape

We don’t have to be super heroes.

More...

SHARE: