software architecture midlife