Websites and applications: DIY or ready-made? What path will you choose?

Websites and applications: DIY or ready-made? What path will you choose?

When it comes to software development, do you prefer to use already-built solutions, free or open-source, or would you rather build your own? What are the advantages and reasoning behind your decision? In this article I'm trying to weigh the pros and cons.

Are your hands really tied?

Ever since I can remember I’ve loved to figure out ways to solve problems myself, instead of asking or paying someone else to do it. I think it may be a trait I’ve inherited from my father. He is a tinkerer, always dismantling something, putting it back together, inventing some contraption or breaking a perfectly good one. 

He insisted in fixing everything around the house himself – the kitchen sink, the drains, the electrical outlets, the washing machine, the car, building and renovating, you name it! I guess that’s why we had frequent drain clogs, electrical wires hanging everywhere and not a straight angled wall in the whole house!

Long story short, I’ve grown with this thought that you could probably figure out how to do something yourself instead of always paying someone to do it; how hard can it be?

All of this has stuck with me through school and my work later. After a musical career cut short and deciding that my work would be revolving around computers, I’ve given myself completely to solving problems, building solutions, applications, software and some hardware.

Every time I saw some nice program, application, website someone else had built, I’d always think: could I build something like that? Could I achieve the same effect with something I made? And most of the time, the answer in my mind was: yeah, probably! Pff! Why should I pay for THAT?

Sounds ‘cheap’, I know. 

When I started working with my first employer, it was to help fix the printer. Then I helped set up the local network. Then I helped design and lay out their books catalogue. Then I organised all the books in a huge ‘database’ (spreadsheet) because there was no centralised list. Then I took that to the next level and started stock management with it because there was no stock control software available that met our needs.

Then, I thought, we should sell these online, but how to do that from a spreadsheet? After the first version of the site was not so great, I thought: I could build one myself! And I did. So, in 2003, we launched the very first Christian e-commerce presence in Romania. All DIY! It looked weird but it worked.

I called it a success – little did I know that the work had just begun! The small website project quickly turned into a long-term endeavour to add more and more features, to keep up with the latest in technology developments and so on. 

By this time, it was no longer “Cristi’s little toy”, as some called it. I was getting more and more requests: could we add stock control to it, invoicing, supplier tracking, reports, could we integrate with the POS? Oh, wait, we don’t have a POS! Could I build a POS? 

And I did.

Long story, but the point I’m trying to make is this: when you have no other choice, when solutions are nowhere to be found, when the right solution for you isn’t available, you have two options: carry on as before, making do with what you have or take some initiative and build it yourself. And when it works out well, when you’ve proven everyone else wrong, when you’ve finally done it, you feel a bit like a super hero. And then you get a bit of pride going on there.

Keeping up with the world

The trouble is then that as you continue ‘building things yourself’, the world doesn’t stop. Other people build stuff and many times they build it better than you ever could. Maybe they have bigger teams, more money or time, more focus and experience. 

Technology advances and pretty much any form of progress is made by people who just can’t stay put. People who are not happy with the status quo, who won’t suffer hitting the same limitations every single day.

But there is a point where DIY works against you. I’ve reached that a few times and it usually goes like this: your ‘solution’ is great, you’ve worked hard on it and solved the problems it needed to solve at the time. Then your peers acknowledged that your solution was working and they got on board. Then the requests for ‘features’ started coming in, and you continued to accept them because, hey, they re-validate your decision to build the thing in the first place. They make you feel necessary, indispensable. They make you feel proud that going it alone was the best thing to do. Look at you, Lone Ranger! We hope you never die!

A matter of pride and control

The path of the hero also makes one feel exhausted and overwhelmed. As a one-man-band there’s no way you could implement everything or compete with other teams of people building similar stuff by now. Then you prioritise, delay, fall behind, even (God forbid!) say no, fail, introduce more bugs than usual, start doubting and get clouded vision - then there’s a dent in your super hero armour!

This could come as a shock to you, if you’re a DIY freak: you really don’t have to build it all yourself, from scratch. Take a breath and find your chill. Ultimately, as much as we may want to think that this is a ‘technical’ issue, it really isn’t. There’s only so much you can do by yourself. It is a matter of pride, in my humble opinion… 

While you may be fixing a very burning problem, which is not bad, you may also be letting pride sneak in and take over. You may start believing those voices that ‘only you could have built such a marvellous thing’, ‘nobody else knows the problem as well as you do’, and ‘anything similar out there is just no good’.

Then there’s the problem of control. This thing you built, it’s YOURS. Nobody else has more stake in it than you, nobody else knows it inside and out, nobody else can ever reproduce it, expand on it. Tell me that’s not a pride thing right there!

I’ve experienced this in my work with my own Content Management System. When I first started working on it, I didn’t even know it was going to turn out the way it did. I didn’t expect it to become this huge platform with ‘everything’ in it. 

When I was looking at a solution for building the first book-selling website, I looked at what was available back in 2003 for e-commerce and I was not impressed – there just wasn’t much available, hence the decision to ‘build it myself’. Of course, there were a few ‘blogging’ platforms out there, before everyone knew what a blog was, but everyone was pretty much hard-coding their HTML or drag-and-dropping with Dreamweaver. The decision is also helped if there’s a cost consideration.

So that was all nice and dandy, I built it, it grew, I’ve rebuilt it in a new programming language in 2007 and now it’s powering a growing number of websites and online stores and even our new eBook platform.

But all these years, other platforms had developed, other systems, blogging software (such as Wordpress, Joomla, Drupal, etc.), to which I had mostly turned a blind eye. Sure, I knew about them and saw what you could build with them, even built a few personal sites with some of them, but they were never as good as ‘my baby’… And it’s true, for my purposes anyway. 

But then I started adding these CMS features into it, such as page editing, dynamic content, modules and plugins, templates, etc., and they work well but they may not work as well as, say, a ‘visual builder’ from a full-blown ‘theme’ or framework. The blogging features may not be as capable as the functions found in Wordpress (which was born to be a blogging platform), but they do the job I need them to do. 

Pride has a funny way of putting you down. In fact, you’re putting yourself down by raising the standard too high. While you can do things yourself quite well, the temptation is to add more and more features, to start imitating what others are doing – sure, you ‘could’ build something like Wordpress, you ‘could’ build a drag-and-drop, visual page builder, with all the bells and whistles, given enough time. It almost feels like you're on a merry-go-round and you can't get off.

Fit for purpose

Then you could say: hey, look, I built something just as good. But should you? That’s the question: what is fit for your purposes? If what you’ve built is sufficient, that is all you need.

I think it’s fantastic if you can build your own solutions, provide the fix to a multi-year struggle, to boldly go where… you know the rest! But also try to be aware of the prideful attitude that you hold all the keys and that nobody else could ever do what you’ve done. You may find that you’re missing out! I’ve learned a lot from existing solutions developed by others.

There are now quite a few e-commerce plugins and frameworks you can add on top of Wordpress, for example. And they do a great job, most of them are free and have been built by enthusiasts who felt that there was a need on the market – they had their own DIY moments. Then they all became huge platforms that other people have ‘adopted’ and started building upon. 

I guess that’s the paradoxical philosophy behind the open-source movement: open it up and it will grow. Keep it closed and it will just stagnate and will be only as good as your personal vision and resources lets it be. And you know what? That’s just fine too.

The flip side of the coin is that as something grows and is adopted on a large scale, it tends to become ‘the norm’. Reportedly, Wordpress powers about 24% of the websites online today. That is no small feat. 

But in my opinion, this blessing is bittersweet. Its popularity also makes it the main target of hackers, spammers, malware propagators and so on. Because it is so popular and widespread, it is a prime candidate for wreaking havoc online. 

I’m not bashing open-source software but if you have access to the source code for something, you know how to push its ‘buttons’. You know how to break it.

I find that while these free solutions are great and work for most needs, ours are more specialised, they require more ‘customised’ functionality, due to the multi-national nature of our work. These are things we can’t live without. Our business dictates that things are run a certain way that only works for us.

Many of these special requirements don’t and will never exist in a free or paid plugin because there just isn’t enough demand for them. The choice then is to either give up and do without or build it yourself. And since we can’t give up on it, we’re building things ourselves. And that’s just fine too. 

“The shortest way is the one you know”

I know how my own framework was built, I know the ins and outs and I know exactly what to do to achieve my goals. If I were trying to build the same solution on a Wordpress platform I’d probably have to develop my own plugin – after learning the inner workings of the platform and researching to see if someone else had the same idea. It’s not impossible but I never invested the time to learn it. 

Still, more freedom is found in building upon your own platform where you can be as efficient as possible, and your solution won’t be ‘disabled’ by some update or change in someone else’s vision or by things suddenly becoming less… free. In this case, control is a good thing and it translates into freedom.

Finally, there’s that situation where you might need to build a simple website or solution that does not have a lot of specialised functionality, doesn’t require integration with any backend systems and processing of custom data coming from some exotic point of sale software in Chile. In this situation, using a custom-developed, full-blown platform to present a few pages of text and images might seem like hitting a small nail with a 10-ton wrecking ball. It’s not worth it and it doesn’t make sense – particularly if you’re going to hand over that website to be maintained by someone who isn’t familiar with your platform but is quite comfortable editing pages in Wordpress. Fit for purpose!

Make up your mind! Or not...

You should not be afraid to embrace the ‘free’, ‘open-source’ things out there, if they don’t impede your ability to do your job and don’t lock you into something that might cost an arm and a leg to come out of. And should there not be such a solution for you out there, maybe you can build it yourself or ask someone to build it.

When I talk to a new client about building a website for them, I always try to evaluate their needs upfront, to find out what their expectations are and determine whether they might be better served by just setting them up on an out-of-the-box open-source system that is free or low cost, or offer them my CMS.

I usually offer the CMS when I think I’ll have to accommodate some serious custom programming requirements down the road or if the client wants to work with me long term and develop more custom functionality around their business, if they want integrations with other systems, instead of just a quick-fix website and be done. This means the price will be higher, but we’ll have the peace of mind that things are going to be easier to build upon later.

If I get this assessment wrong (and I’ve done it a couple times) – particularly if I don’t ask the right questions or if the client is not entirely decided or forthcoming about what they want – it usually ends up in me offering an overkill solution and a price that freaks them out.

What is your path? Are you a developer trying to build your own solutions or do you mostly rely on what’s available out there? Or do you mix and match? Let me know in the comments.

Photo credit: @cikstefan

Cristian

The guy behind Graphicious.co.uk, Cristi has been developing websites and applications for more than 14 years, has built his own CMS from the ground up (twice!) and is passionate about e-commerce, automation, graphic design and music.

Categories

Post not found

The blog post you are looking for has not been found