Wed Jun 15 2011

Ok, maybe the word "learn" isn't the correct verb, but how do you learn, study, research, blaa blaa blaa, whatever. I just finished an 8 city WebCamp tour here across the central region of the US. At each of the cities I asked the group how many people knew anything about NuGet. To my surprise at each of the cities ( 100 people on average in attendance ) there were only ever a handful of people that raised their hand.

I was really shocked.

Really, Really?


For me, I feel like Microsoft and the NuGet community have been screaming really loud. I'm not trying to make anyone feel bad because you may or may not know what NuGet is. That isn't the point of this. NuGet is just my personal example. It was the the lack of hands that caused me to start asking a lot of questions, such as:

  • What about some other technology that people are not screaming about?
  • Are we ( the community ) screaming about it all the wrong way?
  • I only know the places where I "look". So where do people look?
  • Are we, the community, individuals, or companies communicating effectively?
  • Is there to much noise to sift through what is really important?
  • Do we look for information differently today than we did yesterday?
  • Do people still read blogs, listen to podcasts or is there a new format? Of course that was just a few questions which is why I started exploring this very topic. My concern isn't about NuGet itself or the community surrounds it. My concern is more about information distribution and how and when are people are consuming it. OR, are we just doing it all wrong? What about a technology that someone isn't screaming about? Do they just become dust on a shelf somewhere?

Why?


As I stated before I was shocked by the lack of hands. I personally feel that NuGet is one of the best things to hit the .NET community since .NET hit the streets. It's because of those beliefs and passion I guess I just assumed that everyone felt the same way I did. Clearly not, but how come? So I really started to ask around. Well unfortunately the answer was a bit of "It Depends". There wasn't one thing per se, but rather the individuals context played a big part. There seemed to be a few themes:

  • Some just dismissed it because of the people who were talking about it. Just because Phil Haack talked about NuGet doesn't necessary mean it's not applicable to you.
  • Some will only look if their shop is doing that at the time. But who is driving those decisions? And what if they are not looking in the right places? Are you vested in your career?
  • Some just haven't gotten to it yet. They people in their circle haven't so they haven't yet.
  • Some are just happy with the "current way" and don't want to change. I have the biggest problem with this.
  • _Some felt its just to new and once it hits critical mass things will just be differently. _Fair, but what does it take to hit critical mass? What about that project that doesn't have people screaming about it? This lead me to how, when and where are you getting your information?

Where do you get your information?


I will go out on a limb here and assume you don't know it all. I sure don't know it all by any stretch. In this industry there is a high rate of change as well as we are always looking for something. Depending on when your looking for information there may or may not be a ton of information and misinformation out there. If that wasn't enough, our information is also highly opinionated. Regardless, I am usually using one or all of the following:

  • Books, printed or otherwise
  • Blogs
  • Podcasts
  • Events, Code Camps, User Groups etc
  • EMail
  • Groups such as Google Groups
  • Pairing with others
  • Screencasts
  • Search, Bing mostly, Google sometimes.
  • Sites such as StackOverflow.com Honestly that is very overwhelming and a bit fragmented. Now those sources are somewhat dependent on what you're looking for. For example I am clearly not going to listen to a podcast to find out how to use a MemoryStream, but I may way a screencast or StackOverflow. One thing that's missing here is your context. Why are you looking for the thing your looking for? Are you stuck? Are you looking for future strategies? There is no magic search button that says, "give me the new things that are relevant to me and or my job either today or what it will be like tomorrow". Unfortunately as individuals we have to consume a lot of information and deduce some of our conclusions, especially when we are talking about the future.

Let's take it back to NuGet, one might not actually think to search for, "Are there new packaging and distribution solutions for .NET". Valid but then how do you find out about it? I think it's fair to say we could break these information sources down into two categories today _vs. _today. Simply put, the stuff you are building today vs. the stuff that is being released today that I may or may not use.

Trust is also a big factor. We might make an important business decision on that information. If we don't trust it, then we potentially have a problem. We're human, mistakes happen. More importantly, changes happen.

Today vs. Today?


My entire career has been as an enterprise developer i.e. big Corporate America. I have built enterprise software for 95% of it. Mostly, financial services and healthcare but I dabbled in some manufacturing too. As the enterprise developer we have huge multi-million dollar applications that you just can't change overnight. It's not that the "enterprise" in inherently slow but you just can't migrate to a new framework because it's the latest and greatest. You have budget, backlogs, and customers that all have to be taken into account.

As an enterprise developer I've always tried to strike a balance between today and and well today. I'm always worried about painting myself in a corner and because of that I was always looking at the things that were shipping today. Because of that I have always tried to keep up with what was to come. I guess the broader question might be are you actively consuming new information? If you're, not why?

There is of course a balance between today and today but you can't ignore either side. Things like NuGet could save you a ton of time, so why wouldn't you want to know about it?

Summary


Kelly Sommers referenced a video on her blog about what fuels her. I just couldn't agree more. It's scary just how much information is out there and how often it can change.

 

 

We're in an industry where information consumption is critical. There is a great deal of information available to us, not just overall but even just in one owns niche. How do you parse it? How do you keep up with the fire hose? More importantly, can we do it better? I don't have the answers and now I have more questions than I have had in the past. If I have learned anything its' that I have made a number of assumptions that I shouldn't have.

This week Mark and I also just recorded show 50 of Developer Smackdown. We actually took a dive into this conversation some more, so feel free to check it out.

So I ask it again, just how do you learn and are there things we can do better?