2016 Year in Review

I usually don’t think about a calendar year or do any type of reflection for a specific time period.

I generally feel like I’m always in continuous improvement mode.

But for whatever reason, I started looking back at 2016 to see what (if anything) I felt like I accomplished.

I originally tweeted this on December 31st.  Only one of these was actually a “goal” at the beginning of the year.

I didn’t have any intent of going into much more reflection.  However today, Dave Glick posted his Year in Review, and I thought it was pretty insightful.

Blogging

For whatever reason, I decided to dig into my Google Analytics for this blog.  I started looking at month over month trends of visitors, page views, session length, etc.

I was pretty surprised how much traffic has increased (3x) since the beginning of the year.  By no means do I get an absurd amount of traffic, but people are apparently visiting.

No matter what the stats say, I still feel like nobody reads my blog. I’m always shocked when someone comments or I see a link to this blog somewhere.  I still have a hard time promoting any of my posts.  I think this is my “don’t draw attention to yourself” mode.  I need to improve this in 2017.

At the beginning of 2016, I decided I was going to make a serious effort at blogging consistently.  This meant generally putting out a post per week.  I didn’t get exactly to one per week, but I did manage to post 44 entries.  Which I’m really happy with!

One realization I made fairly recently is that there are no bad posts.  One post that I initially wasn’t going to write, because I thought it had no value, turned out to be the best in terms of reception and direct response from readers.

If you are starting to blog, my suggestion is to just publish it.  Don’t assume something doesn’t have value to someone else.

User Group

In years past, I’ve often thought about starting a local .NET User Group.  But for whatever reason, it was always just a thought and I never took any action.

However, this past year I decided to move forward and start the Windsor-Essex .NET Developers Group.  I posted about the experience of starting this group in June, as well as the experience of running it for half a year.

One question I’ve been asking myself is: “Why did I finally start a user group after all these years? Why did I finally take action now?”.

Taking action is hard.  I think my consistency of blogging helped me realize I can do it.  I also made the realization that I love learning and helping other people learn.  A user group is a natural fit.

Speaking

I spoke several times at local user groups this past year.  I love talking about anything software related.  This is also another reason I enjoy running a user group.

Until this year, I hadn’t submitted to any big conferences.  That changed.  I submitted and was accepted to speak at CodeMash 2017 for my “Fat Controller CQRS Diet” talk.  I’m really looking forward to the experience and to see if more public speaking at larger conferences is something I’m more interested in.

YouTube

My last venture for 2016 was creating videos.  I decide to create the channel on YouTube where I could post similar/related video casts of my blog posts.  I figured the amount of effort I was putting into some blog posts could be better suited or paired as videos.

Like blogging, it takes time to build up an audience.  YouTube is no different.  I definitely want to be more consistent and get into a routine with creating videos.  Consistency will enable me to hit the same sort of stride I have with blogging.

Microsoft MVP

I was really surprised about receiving a Microsoft MVP award for all the above in 2016.  It’s always nice to be recognized for your contributions and effort.  I look forward to meeting some other MVP’s at the MVP Summit come year end.

OSS

If there is one thing I’d like to make more of an effort at is OSS contributions in terms of PR’s.  I’ve contributed when/where I can however I feel like is an area of serious improvement.  On a positive note, I do feel like my contributions to OSS have mainly come in terms of awareness.  I’ve blog a lot about Nancy, Cake, MediatR, Hangfire, Exceptionless and other great OSS projects.

Process

My final takeaway for 2016 is that I focused more on the process and being consistent rather than having very clear defined goals.  Meaning I didn’t have a goal of “60 blog posts”, but rather being “consistent at blogging” was my goal.  Goal accomplished.

So my “goal” for 2017 is to continue to learn how to be consistent.

Continue to share my experience though various forms of content such as blog posts, videos, user group talks, conference talks or OSS.  Whatever the medium, share the content I create and see where it takes me.

Side Projects: Validate Quickly or Learning Experience?

I periodically enjoy working on side projects.  Not just messing around, but a full blown side project that has some set of features that I think would be useful.

I never have any real intent of releasing them so I don’t ever put too much priority on them.

Usually what I take away from them are knowledge of new tools/frameworks/libs/patterns etc.  Althoguh they aren’t always completely new to me, they may just be deepening my current understanding.

For me these side projects go into three states:

  1. I get really into it and work on it non stop for a few weeks.
  2. Once I finally get over the fun parts and feel like I stopped learning, it ends up sitting quietly in a half working state.
  3. I abandon the project completely because I’ve thought of something else.
  4. Go to step 1

Product

I’ve recently had an idea for a project that I think would be a great product.

This is problematic to me because my side-projects have generally been a playground for learning new tech.

And if I wanted to create a product, I think I would be better off creating a prototype to validate the idea as quickly as possible so I don’t waste my time.

If I want to spend the least amount of time possible, I would use the languages and platforms that I know.

What do you do?

I’m curious if you the reader have a SaaS/Product idea, do you use the opportunity to learn new technology as well as validate the idea?

Killing two birds with one stone?

Or do you opt for using the tech you know and getting it done much quicker to validate your idea?

Love to hear from you in the comments below or on Twitter.


Stop doing Agile, Start Thinking Agility

Stop doing Agile, Start Thinking AgilityIt’s interesting that when our understanding matures, things people said to you years earlier have more meaning and depth.  The title of this blog was something David Anderson said during his Agile and Beyond 2012 keynote.  Of all the interesting things I heard at that conference, that phrase has stuck with me ever since.

Stop doing Agile, Start Thinking Agility

The reason I have been thinking about this as of late is because of a user group talk I plan on attending in a couple days.  The topic is about Agile and more particularly, Scrum.

What I find really interesting as of over the last couple of years is that Agile and Scrum are being used interchangeably to those new to the industry.  Scrum appears to be the standard framework software teams are now using for developing software.

But are they using it as a framework or as a prescription?

Process vs Purpose

If you use Scrum and perform daily standups, ask yourself why you actually do them?

Really, why do you do them?

If you use them as a status update because you describe what you did yesterday, what you are doing today and what obstacles you face.  That’s not why, that’s describing what.

Responding to Change over Following a Plan

The purpose of a daily standup is to be used as a daily re-planning of your sprint.  It’s a daily retrospective.

How you can you be agile and change to meet your (sprint) goal.

It’s your daily reflection on how you can “turn down the suck, turn up the good”.

Understand the Why not What

I think it’s really important to focus on the why and not the what.  We already know this as developers when talking with our customers and trying to understand their business problems.  We dig into the why.

Yet we seemingly fail so often to ask ourselves why when it comes to all other aspects of writing software.  From the tools we use to the process we follow.

Don’t throw out your process

One approach David Anderson mentioned back in 2012 was to keep what you are doing now and start improving agility.  I think still holds true today.  It’s simply just continuous improvement. Identify pain points, one at a time and improve them.  Identify what works and amplify it.