Posts made in 2012

I have noticed a common problem afflicting small development teams formed to make significant enhancements to an application that was previously maintained by just one developer. Both the original maintenance developer and their management are accustomed to essentially solo development and this culture spills into the enhancement work. Development is treated as individual efforts rather […]

Citizens of the province of Alberta, Canada experienced a rare event this summer when a major data center in the City of Calgary experienced a multi-day outage due to a fire. Many I.T. services provided by the Government of Alberta and taxpayer-funded organizations such as Alberta Health Services were hosted in this data center and […]

When outages – also known as service disruptions – happen to I.T. services, the response from the organization providing the service is the most important factor in determining the level of outrage felt by consumers of the service. Responses can be grouped into three main categories inspired by ITIL: Incident Communication: The information provided to […]

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 […]

Given my interest (some say obsession :) with producing high quality software, I am always on the lookout for stories highlighting the need for quality. So I was intrigued to hear a few weeks ago that the U.S. global financial services firm Knight Capital Group that lost over $440 million dollars in under one hour […]

Managers responsible for a portfolio of existing applications must decide how to allocate their budget for application enhancements across their portfolio. For the purposes of this discussion, I am going to assume the following constraints: There are too many applications for the manager to make decisions on individual application enhancements. Instead, the manager must delegate […]

I have been familiar with the Scrum method for developing software for a number of years. Scrum is a simple tool: it defines just a few meetings, artifacts, and roles. So the basic mechanics of scrum are easy to pick up. Using Scrum to its fullest potential, however, requires a much deeper understanding. One area […]

I forget from which source I first heard about the term “near miss” in health care, but I found the concept intriguing. A near miss is a problem with the safe delivery of care that did not actually affect the patient. Here is an example: a pharmacist in a hospital misreads the doctor’s diagnosis and […]

The human visual / perceptual system works less well than we think it does. We believe that we observe everything in our field of vision, but in reality our limited processing power means that we only really process and thus see what we are paying attention to. We become blind to everything else. This phenomenon […]

Agile methods have seen a surge of adoption within I.T. in the last few years. Agile is clearly not a fad or limited to early adopters – it has entered the mainstream and is here to stay. For those of you not yet using Agile, I wanted to provide statistics and recommendations from widely-recognized industry […]

As Agile is seeing widespread adoption in many industry sectors, what about within government (public sector) organizations? Can Agile work within governments? What are some challenges and risks to watch out for? I’m giving a presentation on this topic Thursday, May 17th, 2012 at noon that aims to answer these questions and provide guidance based […]

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 […]

In I.T. there are a number of process-based certifications that organizations can obtain based on standards like ISO-9001, ITIL via ISO 20000, and CMMI. The process of qualifying for a certification is similar across these standards: the organization defines and/or revises their internal processes to comply with the requirements of the standard, documents these processes, […]

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 […]

No matter what method of software development a team uses, there will be times when the team struggles to meet planned milestones. The milestone could be completing committed stories for an iteration or reaching the feature-complete point in a release. The struggle to meet the milestone might be caused by any number of factors like […]

People from time to time ask me how I manage to write all the articles on my website despite having a family and a demanding full-time job. My simplistic, off-the-cuff answer is “one sentence at a time” :) Seriously, however, over the years I have developed a personal writing system that I would like to […]