Ако за простота се ограничим само в проектирането на даден продукт, има две генерални цели - едната е да се постигне нужната функционалност (за простота слагам тук и гъвкавост, т.е. възможност за склаиране), другата е цената за постигане на първата цел.
Естествено, от едната страна са технологичните гурута, които ще си отхапят и чурките само и само проекта да се прави с най-най-най ама наистина най-най-най правилната технология/платформа/... От другата са момците с пачките които се интересуват от две неща - нещото да стане в срок и разходите да са най-малки. По средата е така наречения архитект който трябва да поеме ритниците и от едната, и от другата страна.
И тук започва интересната част - обикновено дадена технология е създадена да реши даден проблем... но за сметка на друг такъв. Типичен пример са микросървисите - те привидно решават едни проблеми, като обаче решително създават други. И тук започва голямата мъка - да се преценят плюсовете и минусите, да се вземе правилното (оптимално) решение и ... битката е спечелена наполовина, защото остава да се убедят двете пасмини че то е оптимално. И това не е краят, защото трябва да ги убедиш че е оптимално за целия срок на проектиране/изработка/експлоатация на решението.
Като се заговорихме за микросървисите - това си е за отделна тема. Най-малкото защото с плюсовете си те имат и много съществени недостатъци, и когато се реши да се ползват трябва да се прави баланс с плюсовете и минусите не само в проектирането и изработката, ами и в QA фазата, скалирането, експлоатацията, интеграцията с други системи и т.н. и т.н. И освен това този баланс трябва да включва спецификите на приложението, качествата на екипа, срокове, БА анализа...
Въобще проектирането е една доста тегава и неблагодарна професия, с доста мистика и с много повече здрав (ама необясним за околните) разум.