Posts Tagged ‘software development’

« Older Posts   

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

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

The Shocking Truth about Agile and Waterfall

There is a common perception within I.T. that Agile methods are recent innovations – the new kids on the block – and they are contrasted with the traditional waterfall approach – the old-timer that has been around for ages. This perception is propagated by events such as the widely-discussed 10-year anniversary of the agile manifesto […]

Getting Started with WebSphere Configuration Scripting

Deploying Java EE applications into a WebSphere application server typically requires configuration within WebSphere of settings such as data sources, thread pool sizes, and maximum heap size. The WebSphere Administration Console provides a graphical user interface for easily doing this setup, but the fatal flaw of this approach is that it is manual – repeating […]

« Older Posts