“I have an awesome software idea but need a programmer to bring it to life”.
We hear this all the time and frankly, some are great ideas but what’s the next step? Most entrepreneurs or business owners will jump to hire a programmer and start coding to end up with shiny tech stack but with no business value nor production ready neither stable product. It didn’t work out and you’ll have start all over again that’s if they still have the fund to re-do it.
Why did that happen? We’ll give you a simple example.
Imagine you want to build a house, You’ll select the property on which you are going to build and purchase it. Then you start building step by step and planning:
- Having the property surveyed and the footprint of the house located.
- Prepare an Estimated Cost Breakdown
- Consulting an architect for designing your home and produce the necessary to-scale production drawings and engineering specs necessary for approval
- Acquire building permits
- Hiring out:
- Site workers to clear and grade the land, prepping it for building
- Bricklayers to lay the foundation
- Framers to perform rough carpentry, frame up the walls, and install the trusses or stick-framed rafters
- Roofers to install the roof and insulate the house
- Electricians, plumbers, and HVAC workers to do the difficult interior work of outfitting the home for living
- Trim and finish carpenters for interior design work
- Flooring installers to lay the carpet, hardwood, or tile
You see, you need both strategy and tactics to be successful but strategy must come first and it dictates the tactics you use. Strategy is everything or else you just throw in some bricks and you’ll end up with a huge mess wasting your time and money and may miss the opportunity to build something.
It’s the same deal when building a software. You’ll need software engineers to get all the major strategies done like requirement gathering, analysis, architecture, design and then programming comes in which represents 20% of the work done.
Once the software is ready then you need quality assurance, devOps, maintenance to keep it working, scaling and serving the intended business value.
That’s the difference between hiring a software engineer which is the key foundation of your success and a programmer who is site workers without a blueprint.
Below you can find the comparison between a building architect and a software developer:
|Building style and layout||Requirement gathering||What is going to be built and what it is going to serve|
|Architecture layout||Specification||Define how the product will look like|
|Civil engineering blueprint||Architecture & Design||How the solution will be implemented.|
how each actor/module/system interact with each other
|Material to use||Components and Libraries||This will impact the cost and quality of the final project|
|Tools to use||Programming language and framework||Takes into account availability of the tools and ability to get the job done|
|Project management||Project management||Many entities collaborate on bringing a product to life thus they need to be coordinated|
|Control body (refine this more)||Unit test & Test cases||How to validate the product|
|Finishing and building Building Control Systems||Release to prod, monitoring tools and hooks, troubleshooting manuals, and operating manuals||Robust software|
How to troubleshoot problems
How to maintain it
|Continuity of development||Maintenance & upgrades||Make sure addition and enhancements are possible|
For your next project, remember that programming is just the 20% of the effort. Make sure to understand how software are built and what it takes to have a successful project.
More than 70% of software project fails, fail to deliver, scope creep, overshoot the budget or deadline.
The good news is that software engineering is based on science and experience. Make sure to learn from other people experience and use their expertise for a successful project.