Do you remember the time that God was creating the "Planet Ecosystem" as a sub project of "Earth Project"!?
You know, there was a lot of work needed to be done to create this world. Some sample tasks might be:
- Creating Flowers
- Designing Rose
- Designing Tulip
- Creating Trees
- Creating Animals
- Designing Lion
- Designing Rabbit
- Designing Bee
I think God was really busy those days, and needed a team to implement the World.
Can you imagine yourself as a member of God's team!? Let's do it! Imagine that the project of Designing a Bee is assigned to you. What would you do?
Project: Design a Bee
First of all, you need to know about the required specifications of a bee. I heard about the specifications from an old woman in my trip to Vietnam! Let me describe them:
- A bee should be able to land on different flowers, so the flowers can pollinate, fertilize and reproduce.
- It should be small, it should be able to fly.
- A bee should be prepared with some defensive mechanisms to protect itself.
Designing a Bee
OK, now it's design time. From now, I'm going to play the role of a designer in the God's team!
Isn't this project cheap!? At least cheap for me? Maybe God forgot to check my resume. I was the designer of TIGER!!! I designed it in the best way and it was a very successful project. Why don't they assign me the "Designing Dinosaur" project. Instead they assigned me this tiny creature, Bee!!
OK, I will show my best capabilities in this project. Instead of designing a stupidly designed creature like Bee, I'll design a super animal to show how great I am.
Super Design of Bee
As I have previous experiences in designing animals capable of living in dry land (like tiger) and in fresh water (like jellyfish), I want to do something extraordinary. I want to design the bee in a way that it can live in both environments, wow..., God will be surprised for sure. I'll call it cross-platform bee!!
Also I design it in an extensible way so any further designer would be capable to add new features to it. So it is really meaningful to rename it from "bee" to "toad" (abbreviation for "to add")!!!
God will be surprised, I'm going to invent a new specie called toad which is the first cross-platform animal in the earth project!
REINVENTING THE FROG!
In ecology science, do you know what happens if bees were removed from an ecosystem? There are lots of ecology articles and posts about this, but shortly, this is what happens:
- Flowers cannot reproduce themselves as there is no bee to fertilize them!
- The animals which were designed to eat those flowers will starve to death.
- The carnivore animals which was designed to eat herbivore animals will die from hunger.
- The trees will die as they can not get enough food from a flower-less soil!
- The soil can not maintain water as there's no plant on it.
- A desert will appear there shortly.
Today is the day God want to run the world experimentally. So running the world without bees would turn it into a desert soon. In ecology science they say: "Ecosystem collapsed"! Here's the moment that God would come to you and ask for the bee! You would describe that you designed something more interesting called "toad" and it is cross-platform!
How God will react?
Holly shit! I exactly wanted a bee!
The only thing important about bee, is to be a bee!!
Also, there was another project named frog exactly like what you perceived as toad! So now, we have a duplicate specie named toad just like the existing frog, and lack of a specie named bee. Not only you did not design a bee, but also you designed a toad which eats the bees!
You failed the project and you are the cause that Earth project experimental run failed. I take this project back from you. I will assign it to the former designer of lions which is good in creating exactly what I need.
The relation with software?
When you are going to develop a new future for a system, specially in a large scale system, you should create whatever required in the specification. Otherwise, you might invent a cross-platform frog instead, or even worse, reinvent a cross-platform frog!
The only thing important about bee, is to be a bee! Like in software, the only thing important for a requirement is to be satisfied as specified!
If you want create more functionality, it is OK, but not with the cost of not satisfying the minimum requirement. No one would bother if you created a honey bee instead!