37signals Gets It In a Way That Most People Don't

February 04, 2009

 Today is Basecamp's 5th birthday. I am not a Basecamp user, but the birthday announcement spoke to me at a very deep level. The most powerful part of it for me was 

One of the most rewarding things has been showing people that there’s a different way, a better way. Software doesn’t have to be a pain in the ass. Software doesn’t have to get in the way. Software isn’t about feature lists and sensational promises. Software is a concise set of tools that serve as an extension of your own mind. Great software lets you get things done and then it gets out of your way.

Kudos to you, 37signals. I aspire to be like you one day.

Pragmatic Investment Plan: An Example

January 24, 2009

Previously, I outlined what a Pragmatic Investment Plan (PIP) is and why it may be relevant to people who are looking for more structure in the way they going about learning and improving themselves. I feel strongly about including concrete examples to complement abstract descriptions, but since my last post was already a bit long, I decided that for the sake of anyone reading, my example would be have to be a separate post. The upside is that now I can provide some of the detail that needed to be cut in the interest of brevity.

Pragmatic Investment Plan

A PIP, while never finished by definition, still has to have a first version. My initial PIP is not quite complete yet, but one of the goals it includes is learning Haskell. You may be thinking, "Wait, didn’t you say in the last post that "learning Haskell" was not specific enough to be a goal?" To that, I say to you, "Good catch!" My goal which involves Haskell is officially, "I want to write a Haskell application which displays a GUI, accesses the file system, and uses a database." I’ll address the five categories of my PIP as it relates to Haskell.

Have a concrete plan

I want to read all the chapters and complete all the coding examples in the Real World Haskell book, and participate in the Real World Haskell Book Club every week.

Diversify

I have only programmed in Object Oriented or Procedural languages, so a Functional language will be a big mind shift.

Make an active, not passive, investment

I will monitor my progress and make sure that my end goal is still something I want to pursue.

Make a regular investment

The book club meets every week and discusses a new chapter, so I will need to spend at least a couple of days every week following along with the book and programming.

The SMART Part

My first objective to achieve my goal is, "I will read Chapters 3 and 4 of the Real World Haskell book and complete all the examples within those chapters." Notice that I am making a positive statement that provides a clear vision on what I am going to accomplish. I’ll break this objective down as it relates to SMART and provide some additional analysis.

Specific

The objective contains no ambiguity. Being specific leads directly to being measurable.

Measurable

The objective is met if I finish these chapters. The result is obvious, which is exactly what is desired, because I need to know when I’m done and that it’s time to move on to my next objective.

Achievable

The objective is something that is within my current capabilities. Ideally, it should have been something that pushed up against my limitations, because learning things that require new or more skillful activities will allow me to grow. This objective won’t really stretch me that far, but I’m ok with it, because we are still in the intro chapters. I am nominally familiar with functional programming concepts, although not Haskell in particular, and I have read that it gets harder very soon.

Relevant

Haskell, and functional programming, is different in a way that I find fascinating, and this is important because being interested and excited about an objective makes it much more likely to be completed.

Time-Boxed

Because the Real World Haskell Book Club meets weekly, I have a week to finish each chapter. Having a deadline not only forces more action and less procrastination, it also gives the satisfaction of success. Repeated, small successes provide positive reinforcement and lead to bigger successes.

A Piece of the Overall Plan

A PIP should not (but can) be limited to a single goal and the goals should be spread across multiple areas of interest. Part of "Diversify" includes getting outside of your area of expertise. There are things that I have wanted to do for a long time that are not tech related (learning piano and learning Spanish are two of them) and they will likely be included in my PIP in the future.

What I like is that at its core, a Pragmatic Investment Plan is a guideline on defining goals and achieving them. It’s an ongoing process that doesn’t need to be perfect the first time. It’s iterative, giving me the ability to focus on the short term and quickly change my tactics if something isn’t working. I’m excited to start on this journey, and if I’ve piqued your interest, you should go ahead and dive in!

2009 Part 2 - Pragmatic Investment Plan

January 23, 2009

In my previous blog post, I discussed the book Pragmatic Thinking and Learning from Andy Hunt of Pragmatic Programmer fame. As part of the Pragmatic Programmer consulting practice, they present a concept called the Pragmatic Investment Plan (PIP), and a shortened version is outlined in the book. The idea is that you should treat your knowledge portfolio the same way you'd treat your financial portfolio.

Say What?

If you're investing your money, you do logical things like having a solid plan of action and diversifying your investments. You also want to keep track of your plans and tweak them when they need it. The same reasoning applies with your knowledge investment. You want to make sure that you have a concrete plan of what you're going to learn. You also need to make sure that you don't invest too heavily in one type of technology, say OOP when you could be doing some functional programming or only static languages when you could be learning how to program in a dynamic language. The best part about this is that no matter what you learn, it all has value. Even if you're not using something directly on your job, what you have learned still affects your thinking and therefore gives you a broadened perspective.

For your PIP, make sure that you

  • Have a concrete plan.
  • Diversify.
  • Make an active, not passive, investment.
  • Make a regular investment.

Be SMART

The PIP is a higher level concept, and as such, it is purposefully vague about the details of making your investment. The book does give some guidance in the way of SMART Objectives. Using the book's definition, the acronym SMART stands for

  • Specific
  • Measurable
  • Achievable
  • Relevant
  • Time-Boxed

Just stating a goal like "Learning Haskell" is not enough. Goals need to be better defined and broken down into smaller objectives. Each objective should have all of the properties shown above. By narrowing the focus of an objective to a well defined activity that you enjoy and giving yourself a deadline, you vastly increase the odds of actually achieving your goal.

The Power of Less

Tim Ferriss recently posted a review of a book called The Power of Less on his blog. An excerpt of Chapter 5 deals with successfully breaking habits. The author referred to a strategy he called "The Power of Less Challenge" which is focused on tackling one habit at a time.

1. Select one habit for the Challenge. Only one habit per month. You can choose any habit — whatever you think will have the biggest impact on your life.

2. Write down your plan. You will need to specifically state what your goal will be each day, when you’ll do it, what your “trigger” will be (the event that will immediately precede the habit that’s already a part of your routine — such as exercising right after you brush your teeth), who you will report to (see below).

3. Post your goal publicly. Tell as many people as possible that you are trying to form your new habit. I suggest an online forum, but you could email it to coworkers and family and friends or otherwise get the word out to a large group.

4. Report on your progress daily. Each day, tell the same group of people whether or not you succeeded at your goal.

I see some common themes between this, SMART, and the PIP. I think the key point to focus on here is to be specific with the activity you are trying to accomplish. When you couple that with a plan of action and small milestones, it creates a very effective combination.

Where do I go from here?

While I do like the idea of being public about my habits and goals, I am not yet sure if I want to devote a section of my web site to daily progress. For the time being, I am going to say that would be overkill. In the future, if I feel like I am not making decent enough progress, I may employ that technique. In the meantime, I hope this post can be helpful to the people like me that sometimes have trouble focusing on specific activities for learning and end up expending their energies in many places at once.

Note: Since this post got too long, I didn't want to include my specific example. I will follow up with specific example no later than this weekend.

2009 Part 1 - Pragmatic Thinking and Learning

January 09, 2009

It's 2009, a new year, time for resolutions, end of the year blog lists, and future plan blog posts. I decided to share my resolutions in a blog post, but then I remembered that resolutions suck eggs (Yeah, I said eggs). This left me with a choice between some type of clever list or my future plans. Sadly for the world, the clever bug has not bitten me in quite a while so it is stuck with my plans for the new year. As an added bonus, it's going to be a two parter!

The Book

Over my Christmas break, I read Pragmatic Thinking and Learning from the Pragmatic Programmers. I was quite impressed with the ideas and how they were presented. In a nutshell (hah!), the book describes the human brain as having two modes: linear (L) and rich (R). (The "L" and the "R" correspond to the misnomer of a left and right brain) It describes how they function and how this relates to the ways in which software developers work. It goes on to recommend various actions that can be used to improve mental performance and awareness.

In typical Brian Mavity (that's me) fashion, I became so highly motivated to start putting some these ideas into practice that I was ready to try about 30 of them at once. The phrase, "Like a kid in a candy store," comes to mind. But when rereading the part of the book that I will discuss next, the recommendation was to focus on the one most important thing that I could do right now. (it's like it just knows... freaky!)

A Focused Plan of Action

Because that advice is also in the spirit of being lean, I decided on developing a Pragmatic Investment Plan. A quick Google search will highlight that I am not the first person to have this idea, but the idea is so compelling that I am quite sure I will not be the last. That will likely be the topic of my next blog post. (Maybe I should change my blog title to "Welcome to Snoozeville.")

Ok, Maybe Not

Unfortunately, while I did identify the one next step, I couldn't just limit myself to one idea. I decided on including two more items that I feel will be very beneficial. Mind maps and morning writings.

Mind maps are a type of visual outline that are drawn on unlined paper. They allow for a structured, yet extremely creative, arrangement of concepts and ideas. I have already created a couple of these, and my early impressions are positive. The way I arrange the items on the paper frees my mind to be creative in a way that a traditional outline would not. As a side note, mind maps are apparently extremely common in Europe while being almost non existent in the United States. Weird.

And finally, morning writings are a way to get ideas flowing before your linear mode kicks in. The premise is that if you write (not type) 3 pages a day just after you wake up, you will begin to express ideas that have been brewing in the rich mode of your brain. This means before coffee, before showering, before breakfast. First thing. I figure that I need practice writing, so any extra creativity will be a bonus. It'll be worth a shot.

Two Days in a Row! What's next?

I hope everyone has had a great 2009 so far, and I look forward to providing you with some interesting content (at some point). If you're looking for a unique perspective on learning and creativity, I highly recommend Pragmatic Thinking and Learning. Keep an eye out for a detailed description of my Pragmatic Investment Plan and how I went about deciding on it. And remember, resolutions suck eggs.

VAN (Virtual ALT.NET Meeting)

January 08, 2009

Every Wednesday at 9pm US Central time, Chad Myers and Zach Young host a virtual ALT.NET meeting over Live Meeting. I have attended 3 or 4 of these and they totally rock.

Tonight, Fluent Migrator was presented by someone Sean Chambers (I suck, I forget who was doing it. Let me know and I will link. Thanks Paul Batum for the heads up!), then Dru Sellers and Chris Patterson (PhatBoyG) presented on Mass Transit. A few weeks ago, Jeremy Miller presented on his Story Teller acceptance testing framework. It's not just about the presentations either. Questions are welcome, and any topic that is brought up can be discussed.

It's great to have access to a bunch of smart people week in and week out, and I find it amazing that they donate their time so willingly. I want to extend a hearty thank you to everyone that contributes to these meetings. I find them immensely valuable.

As a side note, I have an actual blog post almost finished, and should be posting it tomorrow. I know you're on the edge of your seats!

Back to Top