The lesser of two evils?

A few times I have been asked at work to decide on whether we should build an application or use something that’s out there already. Unfortunately, it’s never an easy choice for us… On the one hand something can be built that’s geared exactly to what is needed, but nothing else, and it’ll take time to plan, design and build it. Yet on the other hand you can have something that’s already been built so all the designing is not required, but it may have a lot of extra functionality that you have to rip out or things don’t work just as you want it to so will have to alter it anyway.

At this point I bet you’re thinking, “Andy is now going to give us the answer on what the best choice is, you just see…” Actually, no. No, I’m not. I can in all honestly say that I don’t know what the best course of action is. On one side I really favour creating the application myself because then I know exactly how it’ll work. But on the flip side of that, I’ll then have to do all the work and might not be able to put in all the features that are able to go in applications worked on by many people.

I suppose there is no clear winner here as it would probably depend on budget and deadlines, but I thought I’d open it up for debate anyway. Anyone want to comment?


2 Responses

  1. I think this situation is part of the reason why frameworks and libraries seem to be coming out of the woodworks in alarming numbers. It’s all too often that existing applications have a lot of extraneous features or aren’t easy to extend or integrate with.

    Outside of the options of using third-party software or rolling your own, a third option is to use an existing framework or library that handles the lower-level operations and leaves you free to code the higher-level or more advanced application features. An additional advantage to doing this is that the applications and frameworks can become established and widely-used, making your experience all the more valuable and portable between projects and even jobs.

    If you’re looking at a particular project now, take a look at any of the MVC frameworks out there, libraries like PEAR or PECL, and see what’s there already that might do at least a significant amount of the lower-level work for you. It may also help to open source for your core and get the related community involved to help in its development so all the work isn’t on your shoulders.

    That’s my $0.02.

  2. Thanks for your thoughts, elazar!

    Using an existing framework would be a good step in the right direction is applications need to be written from scratch… Of course, there could be (and already have been on the ‘net) huge debates around which one to use; ZF, Symphony, Prado, Cake, etc. But I suppose, as with anything, you’d use whatever one serves your purpose. (At work and home I’ve opted for ZF.)

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.