May 1995 - Vol. 38 No. 5
Features
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 heights served as a great place to develop a worldview compatible with the management of a large post-war corporation.
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 dominated by the U.S. and Japan? Do the little countries scurry around, like birds among the lions and other predators looking for scraps? Are they relegated to second tier “appropriate technologies,” or do they operate in the mainstream?
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 customer-developer links. These links are defined as the techniques and/or channels that allow customers and developers to exchange information.
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 data dictionaries and data flow diagrams of Yourdon's structured project life-cycle [21] model the general standard data format and flow, respectively. Within the object-oriented paradigm Booch [2] emphasizes, quoting W. Wulf, that:
We (humans) have developed an exceptionally powerful technique for dealing with complexity. We abstract from it. Unable to master the entirely of an object, we choose to ignore its essential details, dealing with the generalized, idealized model of the object. (Our emphasis).
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, marketing, sales, and service personnel. Working singly or in teams, we have been identifying and combining effective techniques and methods of: gathering data, interacting with user participants, representing activities and observations, and integrating findings with the design and construction of new technologies.
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 process was designed to ensure customer satisfaction and business readiness before a line of code is written, an electronic circuit designed, or a service defined.
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 past 5 years I've seen the evolution of the product design processes as I moved from user-interface (UI) designer, to manager of a large UI design group, to my current position as a product design strategist.
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 like Fortran, Algol 60, PL/I, Pascal, Modula-2, C, and Ada considered are data types, data structures, control structures, program units, scope of names, and parameter passing. Some of the corresponding features of functional languages like Lisp, logic programming languages like Prolog, and ohject-oriented programming languages like C++ and Smalltalk, are reviewed. Finally brief consideration is given to syntax and semantics, chiefly by reference to the Backus-Naur form, BNF. The features of programming languages affect all aspects of programming, including the ease of writing and maintaining programs, the reliahility of software, and the efficiency and portability of programs. Knowledge of programming language concepts and constructs is of importance to software developers, programmers, and designers of programming languages and compilers. The topic of this procedure should be of interest to any computer science student or practitioner who wishes to test his or her knowledge and learn more about one of the most important and broad areas in the computer field. The language used most often in the questions is Pascal, with Ada, Lisp, and Prolog also featured prominently. A glossary is included which defines some of the terms used in the procedure. The questions are either multiple-choice or short answer. Some of the multiple-choice questions allow for more than one correct answer.
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 instance, projects in turmoil provide numerous ways to look good. You can make both employer and customer deliriously happy, become a hero, and gain a promotion merely for getting something, anything, delivered on time—while on a smoothly running project, it's expected! Even if you don't make the delivery, you can still appear heroic and get promoted. But if you screw things up, who knows? Then there is the increased job security. Projects in turmoil usually go on far past their original deadlines, as customers are loath to cancel and lose their investment. Your company benefits too, as it gets paid much more than if the project was merely successful.