The problem today is that the only voices heard when making critical Product Engineering decisions are those that are tenured and have been around longest -- but these are not necessarily the voices that know how products SHOULD be built in the cloud, so that they're agile and competitive.
Unfortunately, the latter voices are usually newcomers to TD, and so they have very little "clout" in the org. However, they have been at other successful companies, have significant industry experience, and know through experience the right way of building things in the cloud.
I'm one such engineer and here are the areas that I believe need to change IMMEDIATELY if we're going to break this downward trajectory:
- Our product release model is a monolith. It needs to be broken up into smaller services, all released on their own schedule as appropriate using pure CI/CD. This determines how quickly we can adjust to market demands.
- Get away from teams being in either a Developer and Operations roles, and combine all teams into a "DevOps" role. Many companies attest that the latter role has proven to break down barriers of communication and is much more efficient overall in getting things done.
- Our leadership needs to stop over-promising on contracts and setting hard dates for product feature release with customers before talking with engineering teams. They have no idea how much work is needed or how long features will take to go GA. We always fall short of promises as a result.
- Our architectural designs need to start following well-architected framework and we need to get out of a "short-term adhoc solution" mindset.