The Day of the Programmer - a battle of IT cakes
The development process has never been that tasty...
It was a competition to create a cake in the IT style. The lead (aka customer) set the task, and as usual was not heard. We had to take into account the needs of the audience and to complete the product inside of 3 minutes ... As a result - no deadline, no needs.
Two experienced developers took a part in the competition: Vanya was in the blue corner (blue team), Max was in white corner (white team). The spirit of competition has not been canceled. Naturally they had some helpers, so in general it was not clear who is behind whom.
As usual teams started with the design, although it was needlessly - nevertheless the final product had nothing common with the project. The customer has approved both products, having almost nothing to understand, cause she was too hungry.
The blue team has gone through all the classic start-ups - they quickly prepared a small, but still quite suitable for the operation product ( you may consider as MVP), thus confused the customer and won a bit of time. The product turned out to be quite usable, though falling apart during operation (a kernel dropped out all the time).
Meanwhile, the white team decided not to flog a fever and make complex multi layer architecture ... database, business logic and some other, required either for Safety or just in case, layer.
"This time we will do everything right" - said Max, and carefully put the first layer of the “ugly code” on the top of the already fragile architecture. The idea with layers has become quite popular among the other members of the team, and “ugly code” penetrated to the all layers of the architecture. Layer by layer - the system became harder in front of our eyes.
It's time to start creating the real features and stop cutting the core! Someone from the audience suggested not to write anything new and to use ready-made open source components. He was certainly beaten and kicked as incompetent. But then, a sober assessment of their capabilities made them to do so.
The joy did not last long - ready-made components was not easily bred and it was needed to cover them with a thick layer of a custom java script. Due to that, the product has acquired an attractive appearance and began to resemble a mystical ocean from Andrei Tarkovsky's "Solaris".
And then the project has gained an unexpected twist - one member of the blue team, knowing that such an approach never brings any luck to the development, decided to put the crutches and quickly covered it with autotests. 100% test coverage, well supported on a crutch, became the foundation for the new system.
Then it was turn of a frontend layout - sliders, easings, hovers, and all sorts of other buns.
Unfortunately, just before the release of the product, the styles "floated", but there was no time to fix it, so they decided to convince the customer in beauty of the product ... especially if to look from above.
Since the deadlines were still failed, it was quickly decided to replace the platform for a new one, more suitable for a modular architecture. From the large number of modules it welled even faster than from the previous one, leaving behind a mountain of good memories.
When they realized that scalability is bad, they decided to rewrite the clumsy multi layer system based on microservices - horizontal scaling was changed to vertical.
In spite of the above difficulties, here are the products that appeared on the market (our kitchen took a market role):