There is a well know principle in software development known as DRY, or Don’t Repeat Yourself. Here is the Wikipedia definition:
In software engineering, don’t repeat yourself (DRY) is a principle of software development, aimed at reducing repetition of information of all kinds, especially useful in multi-tier architectures.
I love being DRY when I code – unfortunately when I’m really going fast, sometimes I cheat and don’t follow the DRY principle. But it’s a very good principle to follow.
It’s basically a programming version of “don’t reinvent the wheel”. We coders are really good at leveraging: when we build stuff, in a lot of cases it’s really a bunch of stuff others have developed before us, all thrown together in a new way, with a bunch of new code thrown in to fill out the gaps. (Come to think about it, it’s a bit like patent and product development) Some coders out there don’t follow this model, but of the ones I know, myself included, if we find out that there already is some library out there which does what we want, we are overjoyed.
Might just mean that we are lazy, but lazy in a good way. Why rewrite something that works great? If it doesn’t, then likely we will rewrite it anyway, then hand it back to the community. We humans love to help.
For example, let’s say that you have an idea for an app, could be anything. Let’s say it’s a dating app. So if we break down the requirements for a dating app, you will see:
- We need to track users of the app
- We need to track profiles of the users
- We need to match them up in some way
So you need users as the core dataset of the app. How do you create these users? Well, you could create a user database and make people sign up and log in. You’ll need to decide if you want to use a handle or an email address for login, have them confirm their email address in order to stop bots from creating fake users, have a “forgot password” mechanism. It’s a lot of work.
Or you could be DRY and say “Hmm. Where would most of my users already be?” Do most of them already have Twitter or Facebook accounts? Facebook? Perfect. Then be DRY and just leverage Facebook login. Use Facebook to log into your application. Done. They all you have to worry about is the rest of the app, like figuring out how to connect soulmates. Now that’s the tough part.
But the DRY principle can extend beyond software development. Think about where in your life you can leverage something you already have, or a combination of things, in order to create something new? Like applying Agile to all aspects of your life (try, iterate, and try again) how can you take things that you already have, and leverage them in new ways in order to reach your goals:
- Are there people in your network who would benefit being connected to each other?
- Are there things that you have in your possession that you can use to start a business?
- Is there knowledge already in your head that you can use in order to make money?
We all have many things already. How do you take something you already have and create something new? As using DRY is the quickest way to build new software, using DRY in life is the quickest way to reach your goals.
— image Thomas Hawk
I firmly believe that there are two core ways in which to run your life. You can either:
- Plan everything out to the Nth degree, and hope nothing upsets your plan
- Expect that something will happen to ruin what you are doing, and be able to bounce back
A lot of people believe in the “plan it all out” strategy. Problem is that life does not work that way. Life is change, and no matter how you plan, invariably something will happen that you cannot plan for. And in that case, all of your planning will be for nothing.
I read this great article in a now defunct magazine which was part of the Forbes empire – it was called Forbes ASAP, and it was all about leading tech thought and investment etc. The article was called “How the West Kicked Butt”
In this article, the author postulated that the reason the west coast was getting tons more investment than the east coast was the “style” of the place as opposed to the ideas coming out of that place. The author suggested that the difference was planning vs resilience – and used the weather and earthquakes as the metaphor. On the east coast, you know that during the upcoming winter, you are probably in for terrible weather. So you prepare for the weather: you buy warm clothes, you get snow tires for your car etc. You have some idea what is going to happen so you plan your life. So planning is a big deal. The better your plan, the better you can deal with this known quantity: bad weather. On the west coast, on the other hand, you have no idea when a devastating earthquake may occur.
So you can’t plan for it: sure you can get supplies in etc in case one occurs, but you can’t really plan for when it happens. So what is a big deal? Bouncing back from disaster: or resilience. The ability to claw back from bad things that happen. That’s more important than planning on the west coast.
So why is resilience better than planning? Simple. This article was focused on business and investment: it supposed that venture investors would prefer to invest in companies which could survive sudden adverse conditions.
Life is like that too. Being able to survive sudden adverse conditions is much more critical to life than planning out your every step.
So to all of those people who plan out their lives to the Nth degree, I say:
RELAX. Sure, make a plan, but don’t go overboard. Life will get in the way. That’s its job. Instead, focus on being able to bounce back from adversity. Move on quickly.
Like in craps. When you throw a bad roll, you just move on to the next shooter. You don’t sit there and focus on that guy who just lost you $1200.
Just move on to the next win.