Once the objectives are clear and the team is set on, comes the true operational challenge, from ideas to code, and from code to a product that customer are willing to pay for. That’s a large part of my experience.
I would not stick to strict recommendations when it comes to tools and methods, as the team culture and specifics might figure out a more effective way of achieving its tasks, but through the years and the experiments, I would encourage agile methodologies, and it forces to reconsider in timely manner any wrong choices or decisions that cannot be avoided. Iterations based approaches, scrum derivatives, have had my preference for a long time.
As part of the SMC engineering, we had to produce major, and minor releases several times a year. I am accustomed to release management, from release scheduling to content scoping, being a proactive actor between the product team and the engineering team, to reconciliate goals and reality when needed, or to explore technical opportunities and innovation when emerging from the team.
I had many opportunities to engage directly with customers, to support our customer care department, mostly to collect direct feedback from our users, understand their challenges and expectations, providing consideration and technical information in using the product in the smartest way when possible, and helping to adapt our development strategy to solve their specific issues when needed.