Do We Just Charge For Using Other's Code?

A few days ago a client made a joke about software/web development companies (i.e. us?). It was generally along the lines of “they just charge you for work that other people already have done.” Before I go on, I want to emphasize that this was just a joke, and the client is very happy with us and knows we are putting a lot of hard work in our products and services. He knows we do all of our web construction in-house and that when he speaks with us he's speaking directly to the developer, not some middleman.
I suppose he was referring to the plethora of tools, apis, widgets, and software packages that a developer may use when developing a product. These “third-party” modules might be licensed (non-free) or even open source (free). Some developers might use more “pre-made” tools than others, but it got me thinking, where can you really draw the line between something created “from scratch” and something that is “pre-made”?
For example, the lowest possible form of programming on a computer is simply feeding the computer a long series of binary data, in other words ON (1) or OFF (0) input signals, which cause a great number of “switches” to be flipped and eventually produce some form of output, maybe to add two numbers together for example.. But of course no one manually feeds 1s and 0s into a computer! Early programmers created assembler utilities to translate simple English comands into binary code to feed into the computer. After that they created higher level languages which would translate more verbose and feature rich language code (such as C or C++) into assembly language. And even further than that, scripting languages such as Javascript and PHP were created for the world wide web, focusing on telling the computer WHAT to do, as opposed to HOW exactly to do it.
For example, if you’re an iPhone developer, you’re using Apple’s wide selection of user interface widgets and controls to construct an app -- things such as cover flow, screen transitions, or multitouch gestures. Part of this is because you have to adhere to Apple’s "human interface guidelines" so it will be easily navigable by the user -- but more importantly it allows you to do more things with your app in less time.
So whenever you sit down to program on a computer (with modern programming languages and tools), you’re doing things made possible by an innumerable amount of milestones that were achieved before your time. You could just say that all these things make doing your job easier; but the truth is, all of these virtual, “pre-made” assistants that exist in the software development world allow you to take your work further and do more things; things that simply weren’t possible or feasible in years past.
It really isn’t any different in other industries where using new technology can advance your products & services further. It's just a combination of invention and innovation.
What do you think? Do programmers have it easy with the amount of tools and conveniences available, or are we pushing the boundries further?


6 COMMENTS
posted by Rafi Hecht on: Jun 16, 2011 03:19am
There is no way to draw the line. I remember a time when I created custom content management systems from scratch for those with limited budgets. However I have learned that clients don't care what software is used as long as the job gets done. In terms of difficulty, it's hard to tell. Both are hard in their own ways. Years ago computers read hundreds of punch cards where programs were "punched." If you punched a hole the wrong way, you had to debug the ENTIRE STACK of punchcards without any user-friendly debugger to help you out, sometimes for hours at a time. It was tedious work! Today, there are so many resources thanks to the multitude of skilled programmers. However, larger projects need to get done, which focuses the length of work differently. Your work is your work, regardless of the layers of help you get.
posted by Bob Gladstein on: Aug 20, 2010 07:32pm
After reading the first paragraph of this post, I thought you were talking about a completely different topic, and I wouldn't be surprised if it's what your client was talking about. I believe it's pretty common for people in web development to farm work out to other people and then pad the bill for those services. For example, an SEO is hired to work on a site and copywriting work is needed. The SEO has a copywriter do the work, the copywriter charges the SEO $500, and the SEO charges the client $800 for the copy.
posted by on: Aug 20, 2010 08:34pm
I definitely believe it is common, but in this case he was referring to jQuery for javascript and the jQuery Tools widget library.
posted by iPhone Application Developer on: Aug 21, 2010 08:15pm
i dont understand what u saying in this article but i trying u findout some used full point....
posted by on: Aug 21, 2010 11:25pm
I thought you were going a different direction with this. I often get people asking me for to do a site exactly like another site I already did. They then tell me it should be really cheap since I just have to copy it over and not do any new work. Consulting != good time.
posted by Avi on: Aug 25, 2010 01:07pm
It's the combination that makes the value. A mechanic doesn't make an engine or a hammer. They take the engine + the hammer to fix your car. Someone else may develop widgets but it's the combination that makes the sale. It's taking the tools to create the business/process.