You have a project that you need to have developed and you know why you’re going to hire a programmer. Don’t forget to discuss with your developer how you want to have your project built.
It doesn’t much matter whether your project is the latest addition to the world’s surplus of data-entry systems or the next killer application which will revolutionize our lives, it’s going to involve a lot of common functions either way. Common functions which have already been implemented, dozens if not hundreds of times over. How much of that can and should you make use of?
There are existing frameworks which handle these common functions in broadly generic ways which can generally be customized to get an application based on them up and running relatively quickly and at a low cost. Most good frameworks also allow for plug-ins to expand on their base feature set similarly easily.
The other major option is to build a fully-custom application. This route is more expensive and takes longer to complete, but it ensures that you can get any desired features without being restricted by a framework’s underlying design or the availability of plug-ins. In the long term, it also can provide greater flexibility for your application if it is done correctly.
In some cases, it can be appropriate to combine both approaches, first building a framework-based prototype, then replacing it with a fully-custom final version. Due to the additional time and expense involved, this is generally only an option for large or business-defining projects, but the improved quality of the final result can justify those costs in such cases.
Characteristics of Framework-Based Development
- Faster initial implementation
- Lower cost
- Provides a solid, well-tested foundation for basic functionality
- Potentially more secure, due to lessons learned from attacks against other applications based on the same framework
- Many good frameworks are available for free under Open Source licenses, but some licenses may place requirements on how you use framework-based code
- Some frameworks include a “standard” look and feel, which is good for getting something that looks decent built quickly, but may ultimately limit design options
Characteristics of Fully-Custom Development
- Can produce whatever you desire
- Higher performance, as it will contain only what you need
- Potentially more secure, due to not being a well-known and thoroughly-analyzed target, provided the developer pays attention to security
- You will fully own the end result and can set your own licensing terms
What other advantages or disadvantages of either approach are there beyond what I’ve listed? Which do you tend to prefer?