Back to Services
An Architecture Consulting engagement can run anywhere from 2-5 intense days in length. The first deliverable from this process comprises a portfolio of diagrams that document important design aspects of the system. This includes service definitions, logical tiers, process boundaries, identity management, authentication and authorization, transaction management, and thread synchronization. These diagrams become the blueprint used for system construction by developers.
The initial stage of a system design engagement comprises two primary tasks. The first is the identification and definition of core system use cases. These use cases are critical for preparing a proper system design. The second involves reviewing any existing designs or architectural plans for the system. This initial stage typically takes from 2-3 days, though it can take longer for more complex systems.
If time allows, days 3-5 can be dedicated to implementing a stubbed-out implementation of the design, known as a “vertical slice.” A vertical slice allows the architecture to be validated and helps the customer understand how to continue building the rest of the system. The vertical slice addresses most if not all of the “plumbing” related issues that typically plague software development projects. Rather than having a development team focus on stitching plumbing together, this approach keeps the team focused on delivering business functionality and value early and often. If time allows, the final day will be spent testing the vertical slice. The process wraps up with a retrospective on the entire process to help solidify the necessary lessons gleaned throughout the week.
Having a complete design and prototype provides huge productivity gains and significant upfront risk reduction. This is not what Agile practitioners call “Big Design Up Front” (BDUF) but is a tried-and-true method that greatly enhances developer productivity and system maintainability.
Sometimes you find yourself “in deep” with a project that seems to be going nowhere. Schedules are slipping, quality is suffering, and team morale is plummeting.
A System Recovery engagement involves a full analysis and evaluation of your current system, team structure, and organizational structure. Depending on the size of the system and team, a System Recovery engagement can take anywhere from 2-5 days.
The System Recovery process begins with a code and architectural quality review. The system code is empirically evaluated for cyclomatic complexity, adherence to coding standards, general organization, and other measures of code quality. The system architecture is evaluated for how well it addresses the core business use cases and how well it accommodates changing requirements. Security, maintainability, scalability, and other key performance metrics are evaluated and measured.
Mentoring and knowledge transfer form a critical component of the System Recovery process. I will work side-by-side with your Architect, Project Manager and Developers. They will complete the process with a sense of empowerment, a renewed commitment to quality and integrity, and the motivation to stay the course of adding value to the system with a relentless drive for quality.
Software Architecture projects are billed on a per project basis. Contact me for more information.
I also provide Mentoring services.