Recently I have had to look back on my career and remind myself what I have done. I am leading a challenging project, and at times it feels like I have team members and customers projecting their expectations for how the work will be executed. Sometimes amid the cacophony of voices, I have to remind myself that I am capable of bringing the team to consensus around strategic decisions. I have to remind myself that while everyone has an opinion, not all have an equal appreciation for the business problem, or the technical domain, or even the long term scope of the business problem past the initial release.
As the functional architect on the project, I am not interested in making decisions in a vacuum. I need to hear the dissonant opinions from various aspects of the team. I need to understand the risks and benefits behind each option. I need to allow each person to defend their position and help them understand how that relates to the overall goals. Both customer and technology participants have opinions that I must use to help steer the project to a successful conclusion.
I must ensure that the technology choices do not limit our ability to deliver business value. I must also ensure that risk aversion, unfamiliarity or distrust from our customer cannot force us to compromise our technology decisions because they have a preference based on past experience.
Sometimes when I doubt myself, whether I know what I am doing, I have to remind myself what I have done; the good work and success and failures of the past. It is powerful, for me. I can remember every software product I created, designed, shepherded, integrated, installed, configured, delivered. I can remember every project I lead, managed, completed. I can remember every team I was part of, every victory and every defeat. I can remember all the lessons I learned on each initiative, who I learned them from. I can remember all of the risks that I accepted, mitigated, and avoided. I tell myself, I can do this, I know how, because of what I have already done.