Have you ever set out to build something? I don’t mean “build relationships,” “build a following,” “build someone up,” or even “build software.” Today, I mean building something tactile, tangible, and suitable for analogy.
Open Source Components for Architecture and Development
Imagine we’re building a house. Let’s extend this hypothetical situation with a few considerations:
- I don’t have a year to build it; I have to accomplish it much sooner
- I don’t have a huge budget; my money is obliged elsewhere
- I can’t cut corners; there are building codes I must follow
I may have carpentry skills, but with the considerations I’ve outlined above, even the best woodworker would be hard-pressed to satisfy all of them. Such is the inspiration for the popularity of modular homes, constructed in segments off-site, typically in a factory, transported to and assembled at the final address.
Satisfying Distinct Needs
These homes can be customized to satisfy a wealth of distinct needs; from square footage to hallways, doors, and windows. If I need a home with ample space to entertain, I can select from a portfolio of room designs and assemble the best possible party house for my budget and timeline. If I’m a stalwart of the late 1990s seeking to optimize feng shui throughout my home, hallways, natural light, and airflow are top priorities for me.
Whatever I desire, I can find the pieces to build it. And the best part is, I don’t need to do it from scratch: milling the wood, cutting and planing rough cut timbers, and aggregating materials.
Instead, I rely on teams of specialized builders to construct the modular components of my home while I focus on integrating them and finishing the details that give my home life.
Secure Open Source Application Development
Let’s be candid — I’m not building a house. Quite simply, replace my mentions of a “home” with the word “application,” my allusions to floor space with databases and storage, and my reference to feng shui hallways with efficient dataflow models. Basically, doors become security controls, windows become permission settings, and wiring, plumbing, and HVAC become the critical integrations and server configurations that power my application.
I'm really talking about open source architecture in application development, leveraging a global community of experts and the most innovative and proven software components available. It’s about shifting from the resource-intensive requirements of custom-coding applications from scratch to a methodology more suitable for reducing costs and accelerating development timelines, called modular programming.
But building a house has its complexities, and consequences to an ill-constructed home can be dire. Your house can be structurally weak, security can fail, heat and sound can leak out, and the whole thing can just flood, or burn down in one brief instant due to faulty utilities. Let alone the risk of damage or theft from malicious intruders.
When using open source code to develop your applications, remember these risks, because it falls on you to perform proper open source application analysis to safeguard your application. Check out my next article exploring the best-practices and standards for analyzing open source software to enhance application security and reduce the risk of vulnerability exploitation.