Jeremy Deane is innovative technology leader, conference speaker, and technical author with diverse experience, in premier technical settings, with proven expertise in Enterprise Architecture, Software Architecture, and Software Process Improvement.
Architecture documentation is crucial for comprehending requirements, steering design, validating implementation, and maintaining solutions. Unfortunately, it is often overlooked, either tackled at the beginning or pushed to the end of a project cycle. Consequently, the documentation quickly becomes outdated, making it ineffective when extending a solution or resolving a production incident. This session offers guidance on creating and maintaining architecture documentation that remains current and useful.
This session explores various practices and activities for creating and maintaining architecture documentation throughout the Software Development Life Cycle (SDLC) and beyond. Topics include utilizing views and viewpoints, developing conceptual or candidate architectures, setting up an architecture review process, and logging architecture decisions. Prezi Presentation
No matter the techniques used to make enterprise solutions Highly Available (HA), failure is inevitable at some point. Resiliency refers to how quickly a system reacts to and recovers from such failures. This presentation discusses various architectural resiliency techniques and patterns that help increase Mean Time to Failure (MTTF), also known as Fault Tolerance, and decrease Mean Time to Recovery (MTTR).
Failure of Highly Available (HA) enterprise solutions is inevitable. However, in today's highly interconnected global economy, uptime is crucial. The impact of downtime is amplified when considering Service Level Agreement (SLA) penalties and lost revenue. Even more damaging is the harm to an organization's reputation as frustrated customers express their grievances on social media. Resiliency, often overlooked in favor of availability, is essential. Prezi Presentation
Modern architecture consists of complex, interconnected systems that exhibit both positive and negative emergent behaviors. As a result, traditional reductionist approaches to analysis and design are insufficient for defining precise requirements, designing distributed systems, or identifying root causes in production. In today’s landscape, it is crucial for architects to understand and apply Systems Thinking.
This session offers an introduction to Systems Thinking, covering key definitions, techniques, models, and patterns. It also demonstrates how Systems Thinking is applied to architecture through practical examples. [Prezi Presentation(https://prezi.com/view/ZD9EKoIsFO7ibbN3bjnj/)]
Software architecture involves inherent trade-offs. Some of these trade-offs are clear, such as performance versus security or availability versus consistency, while others are more subtle, like resiliency versus affordability. This presentation will discuss various architectural trade-offs and strategies for managing them.
The role of a technical lead or software architect is to design software that fulfills the stakeholders' vision. However, as the design progresses, conflicting requirements often arise, affecting the candidate architecture. Resolving these conflicts typically involves making architectural trade-offs (e.g. service granularity vs maintainability). Additionally, with time-to-market pressures and the need to do more with less, adopting comprehensive frameworks like TOGAF or lengthy processes like ATAM may not be feasible. Therefore, it is crucial to deeply understand these architectural trade-offs and employ lightweight resolution techniques. Prezi Presentation