Posts Tagged ‘architecture’

  

Analyzing System Dependencies

Analyzing dependencies might seem like a simple concept, but recently I have come to appreciate even more the multiple layers to this topic. To start, why as I.T. professionals should we care about dependencies between and within systems? The core reason is that understanding dependencies allows us to determine the impacts of change. This aids […]

Architects Anonymous

As an architect observing and helping multiple teams build and maintain enterprise software, sometimes I think I am living in an alternate reality. I see systems fail on a nearly daily basis, teams under intense schedule pressure, a lack of awareness of basic developer quality practices, repeated failures of communication, servers taking weeks to provision, […]

The Difficulty of Making Good Recommendations

Recently I have been doing an architectural assessment of an application for an organization I have not worked with before. As I have been writing up my findings, I have noticed that the portion of my analysis causing the most difficulty for me is in coming up with recommendations. Why is this? In this context […]

Architects as Scouts

Software architects have many responsibilities and expectations placed upon them which can be confusing to handle. For a while now I have been condensing these demands into a small set of metaphorical roles. I have found this helpful in staying true to my broader objectives as I move between tasks or problems. The role that […]

Visualizing Java Package Dependencies

I have recently been examining the overall package structure of a Java enterprise application. I discovered an easy way to visualize the dependencies between packages using two open source tools JDepend and Graphviz and a little glue code. JDepend analyzes compiled Java bytecode and determines dependencies and metrics between Java packages. These analysis results can […]

Assessing Service Oriented Architecture

I have always been skeptical of Service Oriented Architecture (SOA) and web services since they first came on the scene. This was not necessarily a rational skepticism, but was instead more of a visceral response to all the hype. As the years passed by, SOA and web services stuck around and I heard it mentioned […]

Architecting for Deployability

Deployability is a non-functional requirement that addresses how reliably and easily software can be deployed from development into the production environment. For desktop (client-side) software, deployability addresses the installation and update mechanisms that may be built into the software itself. For server-side software, deployability is addressed through the system architecture and the deploy process. The […]

ICE Conference Highlights

I recently attended two seminars at the ICE 2006 Technology Conference in Edmonton thanks to my employer CGI. I enjoyed both presentations and regret not attending more. I was able to pull some useful tips and ideas from each seminar that resonated with me. The first session was Lessons for Risk Management Taken from the […]

Complexity and Reliability

Unrestrained complexity is a critical limiting factor in producing working software. The more complex a system, the more it will cost to create and operate and the less reliable it will be. Yet the bane of complexity is largely ignored by the IT industry. Software vendors, competing on the basis of feature sets, are constantly […]