Getting an architecture from a plan to reality can take significant time and effort. Companies are always looking for ways to accelerate the process. It makes sense. After all, time really is money. So, to help things along, here are five ways that can expedite the time it takes to accelerate the implementation of your enterprise architecture:
- Use a tried-and-true specification framework
- Really follow the agile methodology
- Make sure the developers really know the technologies you plan to use
- Choose a project manager with hands-on development experience
- Have adequate contingencies defined; things will go wrong
Let's look at the details.
1. Use a tried-and-true specification framework
Clear, accurate communication between architects and developers is an important aspect of software development. Thus, having a detailed specification that describes exactly what developers are supposed to create is critical. Few architects will argue otherwise. Yet, when it comes time to create the specification, sometimes architects will create it from scratch using a format of their own design.
Taking a roll-your-own approach is time-consuming and cumbersome. Developers have to learn it and then, once they figure it out, they have to write a bunch of code against it.
On the other hand, using a well-known specification framework such as OpenAPI, AsyncAPI, or Unified Modeling Language saves time and labor. Specification frameworks tend to have large communities that support them. The documentation is written. The examples are readily available. Also, many specification formats ship with autogenerators that create boilerplate code that can be customized to meet the specific needs of a given implementation. Features like these provide significant savings in time and labor. And, because a given format is well known, the specification can be updated accurately when it comes time to modify the system.
In short, reinventing the wheel is a waste of time. Reuse is key.
2. Really follow the agile methodology
The agile software development methodology can really affect the speed that software is released. Probably the two most common principles in agile are to make sure all relevant parties are part of the development team in a meaningful way and to plan that the development process is a series of timeboxed releases, also called the sprint.
Without ensuring that the team is truly cross-functional and the company is committed to an ongoing series of timeboxed releases focused on continuous improvement, companies risk having their agile adoption primarily become daily scrum meetings that are a ritual-like recitation of current roadblocks and intended tasks for the day. The goal is just as important as the rituals.
A true commitment to agile makes it easier to get an architecture out the door faster. As they say on the terrain, agile works if you really work it!
[ You might also be interested in reading The role of an agile architect. ]
3. Make sure the developers really know the technologies you plan to use
Developers are a fascinating, intrepid breed. To their credit, continuously learning new technology is built into many developers' DNA. Many are willing to take on a new project just for the opportunity it presents to master a new technology. While the commitment to learning is inspiring, adding a developer unfamiliar with an architecture's core technologies to a development team is not the best way to get mission-critical software out the door. A learning curve can be daunting, and making mistakes is always a risk. It's better to have a team with expertise implementing the technologies defined in the architecture.
Sending your developers out for a week of training to get the knowledge required to implement a mission-critical architecture can further delay implementation while producing questionable results. Operationally, the development team needs to have a proven track record working with the specified technologies. It takes years to master a technology. If you don't have the right expertise on hand, you might have to hire the necessary talent. Sometimes erring on the side of caution and delaying implementation until you have the right talent is better than starting with what you have and hoping for the best. Hope is not a viable strategy for achieving success.
4. Choose a project manager with hands-on development experience
Project managers with hands-on development experience understand the nuance of software development. They know what it's like to struggle for days trying to resolve a problem that turns out to be something as small as a line of code within a loop that should be outside the loop. Project managers with hands-on development experience can tell when developers are truly aligned with their business counterparts or when a developer is mired down in a problem and needs assistance—even before the developer asks for help. Again, it's a special sensitivity that goes with having done the work.
So, if you want to make sure your architecture has a good chance of seeing the light of day as fast as possible, make sure the project is managed by someone who has recent hands-on experience in software development as well as a proven track record in project management.
5. Have adequate contingencies defined; things will go wrong
A setback does not have to end in disaster. But it can unless you've identified potential risks and created contingency plans to address a risk should it occur. The time savings can be significant.
Analogically, it looks like this: Imagine you're renovating your kitchen. While your plans don't require a ceiling replacement, there is always a chance the ceiling could collapse during construction. The risk is improbable but not impossible. So, it's a good idea to think ahead and have the contact information on hand for a contractor that can do the ceiling reconstruction should that setback occur. If, indeed, the ceiling does collapse and you don't have a contingency plan in place, it's going to take time to find a qualified contractor and schedule the work. In the meantime, all other work on your kitchen comes to a halt until the setback is remedied. How long all this will take is anybody's guess. However, if you have a contingency plan in place, a lot of the guesswork is eliminated.
The same holds true for implementing an enterprise architecture. Addressing a potential problem that was identified early on inherently saves time that would otherwise be wasted figuring things out from scratch.
Contingency planning counts, and it should be worked into your architecture implementation. The time you save can be significant.
[ Thinking about security? Check out this free guide to boosting hybrid cloud security and protecting your business. ]
Putting it all together
An enterprise architecture is only as good as its implementation. It takes sound processes, adequate expertise, and a firm sense of best practices to implement an enterprise architecture quickly and effectively. Hopefully, these five methods will help your company get the system it needs into the hands of the business in a fast, yet reliable manner.