Born, grow, die… restart

Almost everyone knows the famous Japanese toy Tamagotchi.

some tamas today..” (CC BY-NC-ND 2.0) by Mrs Piggy**

These are digital mascots that you’re supposed to take care of during all its life. During all this period you get to see how the mascot develops before it dies and you as the owner decides to restart with a new one using your previously gained knowledge to improve.

Besides, it is a straightforward idea; it is the general life cycle of almost everything, including software.

Born

The software as the Tamagotchi has to born. You received an egg (or choose one depending on the Tamagotchi version), and you waited for it to hatch.

Chamametchi egg.PNG” (CC-BY-SA) by Tama-Star Girl

In software development, our born state usually covers the requirement definitions. This state refers to obtain the requirements and defining the to enclose the objectives of the project. Like a tamagotchi (but less random) depending on our egg, we can have a good idea of the product we are going to obtain.

Grow

After our tamagotchi hatches from its egg, is time to take care of it and make sure it grows and develops.

V1Growth.png” (CC-BY-SA) by Osumesu21

You do what’s most vital for it, sometimes feeding it, others playing with it and others just letting it sleep, but always rotating between these tasks. All this to obtain a full-grown, healthy, and happy mascot after some time. Disclosure alert, it isn’t guaranteed to earn this best full-grown Tamagotchi even if you’re the best care keeper.

Software development is really similar, after you define the requirements (hatch of the egg) you start working on the software, and the tasks depend on the needs of the project, it could be programming, maybe testing or it could be (the hated) documenting. These needs are always changing as the software evolves before its final form.

Die

Even after all your efforts, your Tamagotchi will die, maybe because of natural causes (it was too old) or perhaps because you’re not the best owner out there.

Jdeth.gif” (CC-BY-SA) by Osumesu21

So now, you know your Tamagotchi will die, so before that happens, make sure to give your last words to it. Those could be hate words because all the work it made you do or maybe the love words of a proud parent, whatever your decision is, your tamagotchi deserves a good final (or maybe not).

In software development, even if you don’t want, the software has an end, and you need to be prepared for it. This will be maybe by giving your users its last support or even by creating the new version that substitutes the original, either way even software dies.

Restart

Now, your original Tamagotchi is dead, but that doesn’t mean you couldn’t get a new egg and by consequence a new partner. There are tons to have, and in all of them, you can apply the gathered knowledge from the dead generations.

As we have been reading through all this text, the same applies to software development, where now, you can use your new knowledge in creating new things or improving them.

The complete Software development perspective

After writing in terms of Tamagotchis, the general idea of software life-cycle is covered, but there exists a lot of specific ways of implementing this life-cycles. In software, there exists a classification of these types of life-cycles:

  • Waterfall
  • Incremental
  • Spiral
  • Agile

Each model performs the “Tamagotchi” steps in its way, but if we generalize them, we can obtain this “Tamagotchi” steps, because in its core everything is those steps.

To know more about some of these models, you can read this file I created (is in Spanish) where I go deeper into this topic:

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s