Posts Tagged ‘software development’

« Older Posts   

Every New Project Starts Off Red

Project status is often reported using traffic light colors: green for good, yellow for at risk, and red for in trouble. Status reports typically go to executives and key stakeholders to provide assurances that the project is on track and that there will be no surprises like failure to deliver, major quality problems, major schedule […]

Data Quality Limitations: The CAT Theorem

I wrote in my prior post about key attributes of data quality: Accuracy, Completeness, Timeliness, and Relevance. These parallel quality attributes of applications – also known as non-functional requirements. It has long been known that there are competing forces between application quality attributes like performance and scalability. This has been formalized by the CAP (Consistency, […]

Data Quality Attributes

As solution or application architects we focus on the quality attributes of systems such as performance, availability, and capacity in order to ensure that the system can effectively deliver the functional capabilities required by its end users and business owners. These are often referred to as non-functional requirements or “ilities”. Business systems typically produce and […]

Slow is Smooth and Smooth is Fast

I recently saw an email from a colleague who mentioned that they did not have time to properly resolve a technical issue because they needed to hurry to get their code ready for testing. At the time, I was reading Stephen Hunter’s novel The 47th Samurai about an U.S. sniper. One of the themes within […]

Questioning Testing

A fictional dialogue is presented below to explore and question the traditional role of the I.T. quality assurance department. The characters are: Bess: Manager of a line of business. Asa: Manager of the I.T. quality assurance (QA) department. The scenario is that Bess has asked I.T. to provide some software to monitor and drive improvements […]

Troubleshooting Incidents and Blackboard Architectures

I recently helped with troubleshooting a complex, multiple-day incident that seemed to be a never-ending stream of surprises. Communication between the various teams involved and their management was a challenge, with different theories being discussed in separate discussion threads with only partially overlapping sets of participants. After the dust settled, I took the time to […]

Impressions of TOGAF

I recently took a four day course on TOGAF – The Open Group Architecture Framework covering both Part I (foundation) and Part II (certified), and I wanted to share my impressions. The TOGAF standard is available online and has an excellent executive summary. The following quotes serve as an elevator pitch for TOGAF: TOGAF is […]

Staffing Software Development Teams

Recently I had a few discussions relating to the staffing of software development teams, and I was dismayed to learn that some managers viewed this as merely getting the right number of FTE (full-time equivalents) placed onto each team. In this flawed traditional command-and-control viewpoint, people are nothing more than interchangeable resources, and teams are […]

Software Developer’s Creed

I am a Software Developer. I am a coder and a member of a team. I serve the customers and end users of the software. I will always place the project first. I will never accept defeat. I will never quit. I will never ignore a team member needing help. I am disciplined, mentally tough, […]

Balancing Order and Chaos with Process

Whether it is software development projects or I.T. operations, many larger organizations seem enamored with process as the solution to their problems. The default reaction to negative outcomes or variances between people in performing activities is to add more process. Process provides an ordered structure for keeping such chaos at bay. This reflects an underlying […]

Maintaining Business Velocity

Much has been written about how to increase and maintain the velocity of development, especially in an Agile context. But relatively less is said about business velocity – the ability of the product owner or business team to produce sufficiently refined requirements (e.g. user stories) to keep up with the pace of development. Lean thinking […]

Are Organizational Standards Harmful?

As a senior architect I work with and in some cases help create a wide variety of organizational I.T. standards: Architectural guidance Build and deployment standards like semantic versioning Development practices like unit testing and continuous integration Enterprise libraries, components, or services providing reusable functionality Enterprise infrastructure like single sign-on, backups, or corporate desktop support […]

The Two Domain Problem

Most professions and trades only need to know their own domain of practice, not the customers. When you see a dentist or a plumber they do not need to understand what you do in order to work on your teeth or your plumbing. Software development is different: its essence is the automation of work. So […]

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

Faster Builds via Concurrency

Recently I have been looking for ways to make a Java build run faster. This is something I seem to do at least once a year, typically as a result of the application’s production code base and automated test suite both growing in size over time. The build had previously already been split into multiple […]

Scaling Up From One Developer

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

Applying Medical Near Misses to I.T.

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

Inattentional Blindness

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

Industry Adoption of Agile

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

« Older Posts