Are you really delivery ready to production systems?

Nowadays, is a common sense to use techniques like TDD, BDD, UX in our systems. All people will avoid release a new product without making a good design, architecture (flows, menus, etc); developers should never write code without tests (units, behavior and similar) and try using good practives and designer patterns; etc.

But, Are those enough for a ready production system?

I believe they are not enough. There are more points to concern. For example, today, great part of systems depends on another system. How many is worried about an integration? What's happens when any of on those that your app depends on goes offline or gets slow?

Books like "Patterns of Enterprise Application Architecture" - Martin Fowler, "Release It" - Michael T Nygard, bring some light on this subject, but we need more: We need to start give same attention we gave to unit tests, etc.

We need put in our architecture, structures to take care of "timeouts" without showing an error to end users, for example. We need to put some cache to avoid a slowly request to a third app make all feature slow too. We need well configuring our connection's pool. We need to think about all possibility of fails points in our systems and try "to fix" them.

Some people said those are "over design" (we make something for problems that not exists). But, if you release a system without those parts, may our system going down and you lose a lot of users.

It's easy when you know what you should looking for. The challenge is to know what are these points that we should looking.

Show your support

Clapping shows how much you appreciated Andre Fonseca’s story.