Archive for For Developers – Page 2

How to Eat an Elephant (Or Tackle Most Any Big, Huge, Enormous Project)

How to Eat an Elephant

Illustration by William Warren

In my late 20s I went back to school to finish my undergraduate degree. As a working adult, the daunting task of finishing that degree (I had at least 40 hours left) was overwhelming.

But I quickly found an accelerated adult completion program that allowed me to do it once a week for around 18 months. And in the first weeks of the program as we started getting ready to tackle our first class and tidal wave of homework, I started getting nervous, big time.

I hadn’t been in school in 5 or 6 years and even then I rarely did any homework or showed up for class. So needlessly to say, I was getting that sick feeling in my stomach again.

And that’s when one of the instructors gave me a piece of advice that changed everything:

“How do you eat an elephant? One bite at a time.”

It was odd advice at first. I didn’t know elephants were on ANY menu. But as the truth and practicality of that advice sank in, it changed me forever and my approach to big, huge, blistering projects.

Of course eating whole elephants in one bite isn’t just gross 🙂 – it’s delusional, stupid, and impossible.

But in our naivety or arrogance, we’ve all attempted to tackle projects that were actual elephants – monstrous skyscraper-like projects that simply swallowed us in the size of its scope.

Here’s what happens with big, huge elephant projects:

We bite off more than we can chew and we get choked up.

We get lost, overwhelmed, frustrated and impatient. We want instant results, but we haven’t counted the investment or cost, and thus we lack the commitment necessary to finish right.

We’re unclear of the goal, or don’t know what results we’re working toward.

We run out of energy and time or mismanage both.

We get sidetracked and distracted, bogged down and lost in the details, minutiae as well.

We give up too soon or hang on too long.

And to sum it up: We fail. We don’t finish. The project flops. And everybody is disappointed.

Sound familiar?

On an almost weekly basis I run into someone having the same elephant-eating problem I was once had … so I want to share how I tackle big, huge, insane projects and coach others to do the same.

Whether you’re tackling a project solo, or working on a team … doing something for yourself, or delivering it for someone else … you’re likely to be tackling the eating of an elephant.

So with that, here are the steps to eating an elephant:

1. Chill out.

Take a deep breath and calm down.

At this point, you’re just stressing yourself out needlessly. Emotion and adrenaline typically make things worse. So simply taking a moment to get some composure is going to help a TON.

2. Step back and get some perspective.

Review and clarify the results you’re seeking.

Ask yourself:

  • What outcome / goal are you trying to achieve?
  • What does success look like?
  • What are the benefits?
  • If you’re delivering it for someone else – what are their expectations?

Oftentimes, simply knowing why you’re doing something helps tremendously.

3. Start breaking it into small pieces.

This is the awesome part because I see all the neat parts that I’ll get to do.

To help figure out how to dice up the elephant, ask yourself:

  • What’s really needed to accomplish this? People, tasks, timelines.
  • How can I chop it up into small digestible bites?
  • If it’s still too mammoth and overwhelming, how can I chop it up further?
  • How long is each piece going to take?
  • What are the tasks I can do quickly?
  • What’s the most efficient way to tackle this? (Meaning which items should come first?)
  • If you’re delivering it for someone else – what are their expectations? And how does it differ from your own?
  • Is it collaborative project? Which pieces will each person take on?
  • Do you need someone else’s help?
  • Which task(s) will make the most impact?

4. Now, review the investment and the journey. 

Which your smaller bites in mind, figure out how long the journey is really going to take … or how long you’ll be at the table eating your elephant meal. This means count the cost in terms of time, money, energy, momentum, etc.

5. Start eating the elephant. One bite at a time.

Oh, and be sure to chew your food with your mouth closed.

And with that … here is some general advice for managing big projects:

5 More Big, Huge, Ridiculous Project Tips:

  • Don’t ever take on big freakin’ projects. In fact, the less of them the better. You only have time and energy for a few HUGE projects in your lifetime … so pick carefully. My big huge project is iThemes. I don’t have time for other huge projects, and I only have time for small bites of other’s big huge projects.
  • Think of all the ways you’ll fail. Shocking advice, right? It’s good advice though. Know your big bottlenecks, challenges, and obstacles ahead of time. You WILL hit roadblocks, or fall into ravines, and if you don’t think about it ahead of time, you won’t know how to get around or across it.
  • Report in regularly. Rangers at big national parks typically ask hikers and campers to report in as they make a big journey. Along the way, measure and report your progress. See what’s working and what’s not, or celebrate small milestones along the way. Accountability is a very good thing, ESPECIALLY for big, huge projects. Accountability also helps us prevent blind spots.
  • Have deadlines and milestones. And then HIT them consistently, religiously. Don’t give yourself much slack if any. You’d be surprised how pushing just one deadline or milestone creates a snowball effect, turning into much bigger problems and delays for your project.
  • The final bites of the elephant are ALWAYS the hardest. When you’ve been eating the elephant for a long time, you will inevitably grow weary and burned out. But that’s when you need to push hardest … to finish the last 10% of the project and ship and deliver.

By the way, I ended up completing my degree program. It was a great accomplishment … and I ate the elephant, one bite at a time using the steps and advice above.

The Draft of My Essential Career Advice for Developers Is Now Available

I’m on a writing binge lately … after the response I got from my outline offering my top career advice for developers I went to work on the first draft.

It’s now 4,000+ words and available for review on Google Docs here.

This is the third book now that I’ve crowdsourced the editing of and would love your help making it better.

And I’d really appreciate it if you’d share it with others who can benefit from it (as well as help me tune it up).

By the way, I’ve also started a separate email updates list for those interested in knowing when I push out new content related to career advice for developers.

Signup for the Career Advice for Developers updates list here.

Dear Developers, Here’s Some Advice For Your Career

Over the past 5 years I’ve had the privilege of working directly with web developers and software programmers. In that time, I’ve also interviewed and worked with a number of developers, along with managed and lead the development team at iThemes.

I can safely say, it’s been both one of the delights of my work life as well as an ongoing challenge as I’m not a developer by any stretch of the imagination.

So when I think about all of my experiences working with and getting to know developers, two big things stand out to me about you:

  1. No two developers are exactly the same. You’re all unique in your own quirky way. And I love and cherish that about you.
  2. I thoroughly love being a part of building and launching things with you. You do things I can’t. You can actually build all the things we dream about together.

With all that in mind, I’ve wanted to expand on my career advice series with a focused one for developers. (I even let people vote on what to write next and this one got a lot of votes.)

So here is my outline aka my Career Advice for Developers …. these are bigger keys and principles (10 in fact) that as I look back at all the devs I’ve known stick out to me to help you relate to the rest of the world and make the most of your talents and time:

  1. Build your portfolio of cool projects that work. Employers (and clients) want to see stuff that shows you can actually do things with the skills you list on your resume. Projects, like nothing else, are amazing for this.
  2. Get involved and contribute to an open source project. I’ve personally lived this advice through WordPress. The community is huge and my contributions to it in some of the early days propelled my career (and helped me launch iThemes). This blends learning and networking, while having a project to show off.
  3. Remember, always & forever: It’s all about people. I love geeks because you’re brilliant … but you’re not always the most social creatures. Without people, your code is just an academic exercise. It’s about your customers-users and your team. Ignore this at your own peril and lasting joy and happiness.
  4. Good communication skills are almost as valuable and important as programming. You can build anything, but if you can’t communicate with others — in their terms and language you’re going to struggle mightily. Work continuously, tirelessly on learning how to communicate with the non-geek, dummies of the world like me.
  5. Ship. Ship your code. Be known as someone who ships good code and iterates fast to make it even better. Understand what a version 1 is. Beware of perfectionism, it’s evil and is a farce that can kill your career. Be someone of action and execution, not just a daydreamer or academic who just talks about theory and what could be but never produces. Finish the projects you start and ship them.
  6. Park your arrogance at the door. This is usually a hindrance to shipping, by the way. The best coders don’t have to tell me they were great. They let their code speak for itself. The best coders I’ve known have quiet confidence and check their ego at the door for the greater good. These are the developers people yearn to work with. Show up. Do the work. Ship. And the glory will come.
  7. Get out from behind a computer screen and meet people. Learn how to network with people, not just equipment. Go to conferences, workshops, Startup Weekends … or anywhere the people and places you want to work for and with are also hanging out. Introduce yourself, talk about them and their company, then the door will open to talk about your work. At some point, try to do a talk or presentation. All of the above allows you to also practice your social and communication skills.
  8. Make sure you power down regularly. We all need to rest and recharge. There will always be deadlines, milestones, and a feature list to chase. Figure out what is the key to how you like to rest and recharge. Then schedule it. Give people plenty of notice and do something that almost forces you to actually take the time off (buying plane tickets, etc). If you don’t truly power down you’re a great candidate for burnout. And that’s no good for anyone.
  9. Always, always, always be learning and exploring. This is also great life advice. If you’re not learning, you’re dying. Always find something new to learn — even if that’s another programming languages, framework, whatever. But never be satisfied with the knowledge you have today. The best companies hire learners.
  10. Pass it on. Be a mentor, teacher, trainer, helper to someone a couple of steps behind you. Some of the richest rewards of my career have been doing this for others. When you do this for others, people take notice. It’s multiplying yourself and that’s a hot commodity in the world of software.

OK, those are some of my top 10 pieces of career advice in a nutshell. But you can also see the 4,000-word expanded book in draft form here, including commenting on it to help me make it better, more clearer and more helpful for you.

Want more?

If you’re interested in getting that when I can flesh it out … be sure to signup here (plus you’ll also get my other ebooks). You can also

If you have some input, suggestions, ideas, please put them in the comments on this post, or hit my contact form.