In my last entry I discussed the two parallel missions of a great engineering team:
Supporting systems to keep them runningContinuously improving the value of our productsOne of the most important skills the team needs to succeed in these missions can be described as the ability to predict the future. New technologies emerge all the time, which must be investigated and evaluated. In addition, innovations arise from a diverse set of consumer, business, political and social influences.
Magnetic engineering must identify the attributes our systems needs now and should have in the future. These strategic decisions include questions like what data model most flexibly allows us to integrate new data? What should we compute in real time? What tools would help us do this? What infrastructure do we need to build into our web application to support upcoming features?
These and many other questions sit at the intersection of technology and business, and are all captured by the notions of “architecture” and “roadmap.” Architecture defines a system’s major elements, the essential attributes of those elements, and the appropriate technologies for building them. In essence, architecture defines what each part of the system must do for the other parts of the system and also the capabilities of the system as a whole. By extension, architecture also defines what the system can and can’t do for the business.
But, how do we know what the system should do for the business? Agile software development methodology gives us the tools to answer those questions in the present and a short time into the future. In order to look beyond the near-term, we need a roadmap, a set of longer-term strategic goals that we believe the business must achieve to succeed.
Because architecture identifies the essential attributes of the company’s systems, and defines the capabilities of those systems, it must be driven directly by the goals in the roadmap. In essence, architecture is the engineering team’s response to the roadmap, its plan for building software and deploying systems that deliver the roadmap for the business.
Further, when the architecture is aligned with the roadmap, each member of the engineering team shares the vision most likely to drive company success. Every day, with every line of code they write, engineers are making the most valuable decisions when guided by the context of the right architecture.
The right architecture also helps the team gel. When the team is guided by a shared vision, ideas move back and forth, building up a holistic understanding and identity. At the end of the day, an engineering team has a much better chance of seeing into the future if everyone is looking in the same direction.