Many developers have been in “feature holes” or worse, their projects have suffered the fate of ” death by planning“. These are just two reasons we recommend that you build a skeleton first.
All the polishing and user interfaces of a project are the meat and skin. You’ll see that a program does not do all that much without fine-tuning and beautiful graphics. This is the skeleton.
Imagine the “skeleton” for a project as a car. This will help you to understand the structure of the project. The car’s exterior is its shiny, polished paint. This would be the appearance and feel of a website. The radio, GPS, hand brake and radio are the interactive parts. These include the menus, search and settings that the user can access. While speed and reliability are important, they do not necessarily make the bottom line.
The purpose of a car is for the driver and passengers to travel from Point A to Point B. You can remove the exterior and all the comforts, and you will be left with a chassis, four wheels, an engine and a seat. This is all you need to get someone to their destination. It is another matter to do it safely and securely.
An eCommerce website allows users to search for products and then purchase them. An eCommerce website should only provide this basic functionality to enable the user to search for and buy a product quickly.
It would only require a list and checkout page, with minimal logic on the server-side. It would be a bit disturbing, and not something you’d want to share with end-users. However, the skeleton can answer any development questions. It is a solid foundation that you can build on.
It is easy to get bogged down in details, such as race conditions, edge cases, tight design and cross-device compatibility when making initial plans for a project. These details are not essential to the core functionality. This could lead to:
This can be avoided by first creating a skeleton. This is why we recommend it.
Over-planning can lead to project delays or even death. The team can take a look at the whole project front-to-back, identify each detail, brainstorm possible solutions, and consider adding features along the way. Although this is a great way to brainstorm, it can also drown your project.
It is important to realize that not all features will make it to the final build. We advocate The Strategy for Starting with Less in a whitepaper. It’s important to organize the features after brainstorming.
After planning is complete, let the team know that this phase is over. The team can now climb out of the Death by Planning hole. You can then focus on the minimum functionality and start to build the skeleton.
The key to answering all your questions is building the skeleton
Once the skeleton has been built, the team will be able to see the larger picture, answer questions and challenge assumptions. It is possible to make changes in the structure of data structures and plugins if there is a problem. A large part of the project would need to be modified if the changes are made.
Programmers will feel much more confident knowing that the skeleton is working correctly from end to end.
The skeleton will eventually be thrown away. Don’t optimize it. Do not spend too much time looking at the long-term. Do not stress about finding the best solution. It is a waste of time to try to find the best solution without having sufficient knowledge.
If the goal is to maintain the original build, it is important to plan carefully and take things slowly. If the project is moving forward, these critical decisions cannot be made without being informed. It is better to create the skeleton knowing that it will be removed and that the final project will be constructed from scratch.
In The Mythical Man-Month Winston Royce is quoted saying that “plan to throw away one; you will, anyway.” Many systems and custom frameworks are scrapped simply because they were more efficient if constructed in a different manner. This recklessness and mindset are exactly what the skeleton may need to save time in the long term.
Keep it if the bare-bones project works well. You can add code flesh to the skeleton and create beautiful skin. Make it a worthy project. It’s your chance to show it off to the rest of the world. It is the skeleton which creates a solid foundation for all other things.