Big Ideas, Small Steps

The journey from concept to completion can be a long one. In some instances it never ends. Looking at such a journey can be overwhelming, so how do we cope? By thinking big, but taking small steps.

This is something that I have come to realise whilst working on multiple projects, such as ReferenceIt, Wee_, and more recently Get Invited. I thought I’d share some of my insights because, whilst a lot of it is common sense, not everyone realises this until someone says it.

Projects Can Be Big

Whilst not all projects are big, it has been my experience that very few are small. When looking at the scale of such things it is easy to be overwhelmed. The same is true if you focus too much on the details.

It’s easy to get wrapped up in all of the potential issues that a project could have, it’s always easier to focus on the negative than the positive. Don’t. Nothing in life is ever easy, why would this change for any form of project?

Yes, there are almost always problems, issues, and reasons to freak out. There are also solutions, opportunities, and reasons to rejoice. It’s a lot more rewarding to focus on the latter than the former.

Problems

So what kinds of problems are lurking out there? There are three key areas that I’ve identified in my time working on projects:

  1. Size
  2. Skills
  3. Time

Some of these are easier to deal with, work around, or cheat on than others. They’re designed to guide you, not dictate to you. These guidelines have served me well across the projects I have worked on, and it is my belief that they will be of use to others as well.

Problem — Size

It’s very easy to get caught up in how large a project is. “How could I ever make something like that?” Thoughts like this do nothing other than prevent you from making the first step on the path to making something amazing. Don’t let it stop you.

Problem — Skills

Knowledge and understanding of how to do something is another roadblock. If you don’t know how to do something, you can’t, right? Not so. If you only ever used the skills you were born with you wouldn’t be capable of reading this right now, would you?

Problem — Time

This is, in my opinion, the hardest problem to overcome. It’s impossible to escape the limits imposed by time, but it is possible to free up time to work on things… if you want to. If you’re not working on something you love then you may as well stop reading now.

Solutions

So I’ve identified three key areas that could be issues. But how do we go about resolving them? For each of these possible problems, there is at least one solution. For me I have found these to be:

  1. Break Things Down
  2. Learn New Things
  3. Collaborate

These three solutions work well as separate tools, but they combine to provide a much greater whole.

Solution — Break Things Down

As mentioned above, it’s very easy to get caught up in how large a project is. Break it down into more maneagable chunks. Rome wasn’t built in a day. Neither were Wee_, ReferenceIt, or Invited.

ReferenceIt didn’t just spring from my head onto the internet. It took me the best part of a year1 to get things to where they are now.

The same is true with Invited. Registration, Event Creation, Ticketing and Payment weren’t built all together. They were built seperately before being integrated into a single site.

A small part of a larger project is a lot easier to make. It also gives you a piece of code you can potentially use in other projects. An example is the login system for Invited. It’s the same code I used in ReferenceIt, just updated ever so slightly. Don’t reinvent the wheel when you don’t need to, folks.

Solution — Learn New Things

Not knowing how to do things can be offputting. The process of learning can be long and difficult. It can also be very rewarding. If I don’t learn something on each large project I’m working on, I feel that I’ve not done enough.

In relation to securing user information, far too many services seem to store passwords in plain text. Please don’t do this.

It can be small. For ReferenceIt I figured out how to make JavaScript Bookmarklets work. It can be bigger too. I also did a lot of research into ensuring the references generated were as accurate as possible, and how to secure user information, something that too many people ignore.

With Invited i figured out how to process payments using PayPal, as a stepping stone to using other systems. I also worked through how to dynamically generate PDF files (which isn’t that difficult). I also worked through how to add them as attachements to an email (which isn’t as easy).

Learning new ways of doing things, and learning to do entirely new things, has been key to the development of our industry. Use what you do as a chance to push yourself to be better. Being good enough is ok, being great is better. Don’t settle for being good enough.

Solution — Collaboration

It’s impossible to slow or stop time. Which can make it difficult to do everything in a project. Fortunately, there’s a way around this. It’s called collaboration.

I’m a developer at heart, I craft the code that lets things work. I’m good at it. I’m not bad at design, but I don’t lie to myself and say I’m great at design. Fortunately, I know Kyle Gawley who is much better at the design aspects of things than I am. He’s pretty good at development too, which allows us to work together to get more done.

The benefits in this are twofold. First, it allows us both to get more done. That, by itself, is pretty great. Second, and possibly more important, is that it allows us both to focus on what we’re best at. I make the server-side of things work well, and he handles the experience of using things, in terms of design and user interaction.

This allows us to produce work that is much better able to meet the expectations of our users, and our clients. It also allows us to achieve things that otherwise wouldn’t have been possible.

Results

For each problem I’ve encountered, there have been solutions. Each solution has an outcome, a result. So what are they? For me the key results I’ve had are:

  1. Making Progress
  2. Learning Something New
  3. Goal Completion

Both individually and combined these results help me to further develop my practice, and let me push myself to learn more and achieve more.

Result — Making Progress

Letting yourself stall on a project because of the size of it serves one purpose, to make things more difficult. If you’ve committed to a project, stalling takes time away from getting things completed. Breaking things down lets you get things done, and helps you to avoid stress.

Result — Learning Something New

By allowing yourself to learn new skills, and new tools, you don’t limit yourself to working on the same type of projects again and again. You give yourself options, and the ability to improve. This allows you to do better work, and work on things that you choose to, rather than being limited to doing the same work continually.

Result — Goal Completion

Working by yourself allows you to have complete control over what happens. It also limits what can be done to the skills you have. Collaboration between people with complimentary skills allows more to be done, to a higher standard, in less time. Working with the right people allows you to achieve what would have been impossible by yourself.

Wrapping Up

Working on a project isn’t an easy task, but I’ve always found that taking the first step is the hardest. The scale of some projects can be overwhelming if you let yourself focus on it. Remember that the size of the project is only going to get smaller as you make progress.

Don’t be afraid to try new things. You’d be amazed at how easy learning can be once you commit to it, and just how much it can help you in the future. Having a wide selection of skills can help you better solve problems going forward.

The path from concept to completion isn’t an easy one, especially if you don’t plan things out. Hopefully what I’ve covered here will help you realise that even the big projects are within your reach if you take the time to overcome your limitations.

  1. Check out a couple of my learning logs from my final year of IMD to get an idea of what it was like: Semester 1 and Semester 2.