Sign In

Communications of the ACM

Table of Contents


Turbulent times for information technology


Death from above

Over the last 30 years, the American CEO corps has included an astonishingly large percentage of men who piloted bombers during World War II. For some reason not so difficult to guess, dropping explosives on people from commanding …

Little engines that could: computing in small energetic countries

How do very small countries, here defined as having fewer than 10 million people, find places for themselves in the information technologies (IT) arena? Does success require accommodation in the global IT regime that often seems …

Requirements gathering: the human factor


Customer-developer links in software development

Many of the best ideas for new products and product improvements come from the customer or end user of the product [15]. In the software arena, tapping into this source of information requires the establishment of one or more …

Apprenticing with the customer


Participatory analysis of flexibility

Analysis as part of requirements gathering, conducted according to conventional systems development approaches like structured analysis and object-oriented analysis, focuses on standard data formats and general data flow. The …

Using video to re-present the user

Advocates of user-centered design and participatory design, also referred to as “work practice practitioners” include computer scientists, systems designers, software engineers, social scientists, industrial and graphic designers …

Creating products customers demand

This article presents a re-engineering case study of the product requirements definition process at Digital Equipment Corporation. Based on cross-functional teams working in direct partnership with customers, the re-engineered …

Succeeding as a clandestine change agent

Changing the attitudes and work habits of a large organization is daunting at best. The task is more challenging when the organization perceives itself as eminently successful, dominating the market in its category. During the …

Self-Assessment Procedure XXIII: programming languages

This is the 23rd Self-Assessment Procedure.1 The purpose of this procedure is to let its readers test their knowledge of some of the more important features of significant programming languages. The features of imperative languages …

C in the first course considered harmful

To advice or not to advise, that is the dilemma. To be or not to be, that is the question. To see or not to see, that is the difficulty.

How to create a successful failure

Many people enjoy working on software projects that wing their way towards failure. After all, troubled projects offer so much more in the way of excitement and advantages than those that boringly plod their way to success. For …