Does technology choice define a software product?
Programmers: how often do you use the next project as an excuse to try out a new technology?
Product managers: how often do you curse the technology for not giving you opportunity to do something you want to do?
The creative side of programming means that inevitably we will come up with new and interesting ways we break the technology. The result of iterative development means improved engineering design – better modularity, better separation of concerns, more features.
Software products are not born perfect. They are grown that way.