In this world, things tend to behave as cycles. We have a new president every 6 years, which it seems, does no difference, but we go through the same process. Every year we start with great promises, and as soon as time goes, we forget them.
Software development is not an exception. Why? Because even the best developed program can fail, not because it’s bad, but because people’s needs change. This scheme tries to generalize development in general: not focusing on details such as roles, time lapses and more. Instead, it breaks software development into 5 simple steps (some sources believe 6 or even 7):
- Planning: What do you need? How will you develop?
- Design: Are we using NoSQL this time? Is RoR better than Django? Is a binary tree better than a hash table?
- Implementation: Coding, coding, coding…
- Testing: Not only PEBCAKs tend to happen. Let’s prevent the ones in our side.
- Evolution: This might be the hardest step to explain. Basically, software prepares for the next cycle.
One can notice this pattern in the waterfall method such as in agile development.