Видя упрощения интерфейсов современных девайсов и программ большинство аналитиков предполагает, что нас ждет и упрощение разработки софта. Интерфейсы будут создаваться перетаскиванием контролов, программа обработки - перетаскиванием кубиков.
С внешней сороны может быть должно выглядить так. Но! Люди хотят большего разнообразия и лучшего качества. Растет объем данных, растут нагрузки на каналы связи, усложняются алгоритмы.
Сегодня частоты процессоров уже достигли своих пределов. Рост производительности компьютеров идет за счет параллеллизма. Каналы связи близки к физическим ограничениям пропускной способности. Куда расти в передачи данных непонятно - выше частота - уже не электроны, а фотоны и сужение зоны покрытия, шире полоса - сокращение количества абонентов.
Причем все это? А притом, что упрощение разработки и перетаскивание квадратиков требует создания универсальных алгоритмов и универсальных форм для универсальных данных, что резко повышает требование к производительности системы и к скорости передачи данных по каналам. Поэтому универсальные средства обработки данных предлагают только базовый простенький функционал. На базе них можно создать убогое приложение.
Хочешь удовлетворить свои требования - кастомизируй продукт. Ищи технологии, которые обеспечат тебе оптимальную скорость приложения и хороший дезайн. Поэтому растет применение отличных от реляционной аритектур хранения данных, используются нестандартные решения доступа к данным, собственные контролы, протоколы передачи данных. Сейчас стек технологий состоит не просто C# и SQL, ка 20-30 лет назад.
Вторая важная причина отсутствия универсальных продуктов - экономика. Чем больше функционала, чем дороже разработка. Сложность и затраты растут нелинейно. Универсальный продукт не может быть дешевым.
Третья причина - ошибки в ПО никто не отменял. Чем сложней продукт, тем их больше и сложнее их найти.
Поэтому ошибаются аналитики. Всеобщее упрощение не влияет на разработку. Там всегда все будет сложно.
Кстати, рост стека технологий и их постоянное совершенствование средств реализации програмных продуктов резко повышает требования к разработчикам. Воин-одиночка уже не катит, есть пределы человеческого мозга. Разработчик должен создавать продукт и постоянно совершенствоваться и раширять свои возможности. Нужна команда. Нужна хорошая команда. Если команда плохая, ресурсов недостаточно или разработчику некогда развиваться, то продукт устареет еще до окончания разработки. Кто виноват? Разработчик или жадный заказчик?