• Home
  • Alistair Cockburn
Alistair Cockburn

Alistair Cockburn
Humans and Technology, inc. · Research

About

77
Publications
113,412
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
10,186
Citations

Publications

Publications (77)
Article
Agile has become overly decorated. The remedy is simple: collaborate, deliver, reflect, improve. These four imperatives, already sufficient, expand to cover the complexities of modern development.
Article
Disciplined learning, or "learn early, learn often," updates na?ve agile development and traditional risk management, and safely replaces the dreaded catch phrase, "fail early fail often." Disciplined learning is a rich, creative and rewarding endeavor, already in use in small pockets of excellence.
Article
Use cases are wonderful but confusing. People, when asked to write them, do not know what to include or how to structure them. There is no published theory for them. This paper introduces a theory based on a small model of communication, distinguishing "goals" as a key element of use cases. The result is an easily used, scaleable, recursive model t...
Article
Full-text available
CONTENTS: 1) The Process Revolution by Watts S. Humphrey: We have yet to build an acceptable foundation of proven and generally followed principles in the field of software engineering. To begin developing this foundation, we need a process revolution. 2) Good Old Advice by Dr. Alistair Cockburn: The best-known writers in the software field have be...
Article
Full-text available
From Winston Royce, Fred Brooks, Gerald Weinberg, and the speakers at the 1968 North Atlantic Treaty Organization (NATO) conference on software engineering to Barry Boehm, Victor Basili, Capers Jones, and Tom DeMarco, the bestknown writers have been making the same recommendations, which we still ignore today.
Article
Full-text available
CONTENTS: 1) Mission Impact of Foreign Influence on DoD Software by Defense Science Board Task Force: The DoD's growing dependency on software is a source of weakness that could be exploited by an adversary at a critical moment. The Defense Science Board Task Force suggests solutions. 2) The Way We See the Problem Is the Problem by Jim York: When a...
Article
Full-text available
Traditional software engineering jumps too quickly from high-level quality statements to design ideas. To be clear about design, we must add a step to quantify the quality levels required. Words are ambiguous and lead to misunderstandings. Compare ";I want a user-friendly system"; to ";I want a system that reduces the number of accidental errors ma...
Article
Most software engineering courses do not incorporate current best practices found in industry: collaborative development, automated testing, frequent integration, version control, user-centered design, architectural patterns, active reflection, incremental / iterative development, and so on. A typical excuse is that the material isn't suited to inc...
Article
Architecture patterns are established approaches to software architecture. They describe a system structure that meets the needs of an application to be designed in a given domain. Architecture patterns are commonly used in industry, and therefore, software engineering students should be familiar with architecture patterns and how to use them. In o...
Article
Software engineering is more like manufacturing than most people expect. Once we spot their similarities, we can apply the lessons learned over the last 50 years in manufacturing to software development. This article picks six lessons to apply to soft-ware development gleaned from the manufacturing industry.
Conference Paper
Full-text available
Agile software development practices including XP and Scrum have risen to prominence within the software engineering community over the past ten years. Are agile software development practices converging? Are some practices becoming more integrated and/or more widely adopted than others? In the early 90s there was a convergence of object-oriented d...
Article
Use the model in this article to regain oversight of a complex multi-project that uses concurrent and incremental development strategies in differing amounts on different subprojects. The model makes this possible by estimating and then tracking intended versus actual functionality integrated either monthly or quarterly.
Conference Paper
Full-text available
Agile Software Development Methods: When and Why Do They Work? Full Text at Springer, may require registration or fee
Article
Vyd. 1. Přeloženo z angličtiny Terminologický slovník
Article
The main factors considered in the agile toolbox for helping agile development of tools that help an organization to further develop other tools are discussed. These tools can help an organization prepare for the tools - human resource, facilities and non-software, that will be requested and used by the team starting to adopt the agile approach. It...
Article
Full-text available
Software engineering" was introduced as a model for the field of software development in 1968. This paper, reconsidering that model in the light of four decades of experience, finds it lacking in its ability to explain project success and failures, predict important issues in running projects, and help practitioners formulate effective strategies o...
Article
Full-text available
"The best thinking in the agile development community brought to street-level in the form of implementable strategy and tactics. Essential reading for anyone who shares the passion for creating quality software."-Eric Olafson, CEO Tomax"Crystal Clear is beyond agile. This book leads you from software process hell to successful software development...
Article
Various strategies for evolving software architectures in tandem with business revenue are discussed. The ways in which a software architect's professional ambitions influence architectural design are also discussed. The design/pattern strategy, based on the general incremental rearchitecture pattern, recommends that architects should start with a...
Article
From the Book:Use cases are a popular requirements modeling technique, yet people often struggle when writing them. They understand the basic concepts of use cases, but find that actually writing useful ones turns out to be harder than one would expect. One factor contributing to this difficulty is that we lack objective criteria to help judge thei...
Article
Full-text available
Abstract This thesis reports on research performed over a ten-year period, interviewing project teams, par- ticipating directly on projects, and reviewing proposals and case studies. The research addressed three questions relating to people and software development methodologies (Q1through Q3), and produced six results (R1through,R6). Q1. Do we nee...
Conference Paper
Attendees at Extreme Fishbowl will see an XP team in action. As the XP fishbowl team is busy creating software, a small group of “experts” will be commentating on the activities of the programming team. Members of the audience will be able to participate by joining the “fishbowl” team. Participants will see/participate in spontaneous XP programming...
Book
Full-text available
Software development paradigms are shifting. The development group's "team" ability, and the effects of the individual developer, become more important as organizations recognize that the traditional approach of increasing process pressure and overworking team members is not getting the job done. The pioneers of Agile methodologies question the pre...
Article
Full-text available
In a previous article (2001), we introduced agile software development through the problem it addresses and the way in which it addresses the problem. Here, we describe the effects of working in an agile style
Article
The rise and fall of the dotcom-driven Internet economy shouldn't distract us from seeing that the business environment continues to change at a dramatically increasing pace. To thrive in this turbulent environment, we must confront the business need for relentless innovation and forge the future workforce culture. Agile software development approa...
Conference Paper
People have a nasty habit of ruining neatly drawn up methodologies. It’s not that they intend to, it is just that people are packaged as “individuals” while methodologies are packaged in “roles.” We shall explore principles that follow methodologies versus those that follow people, see how far methodologies can take us versus where we have to give...
Article
How do we determine the need for various software processes or methodologies, and what helps us choose the appropriate one for our project? To answer these questions, we need to get to the bottom of the controversy over methodologies and discover the dimensions along which they vary. This article describes a framework for methodology differentiatio...
Article
Full-text available
Pair or collaborative programming is where two programmers develop software side by side at one computer. Using interviews and controlled experiments, the authors investigated the costs and benefits of pair programming. They found that for a development-time cost of about 15%, pair programming improves design quality, reduces defects, reduces staff...
Article
As industry begins to invest in OO/CBD (Component-Based Development) processes and the OMG considers whether/how to standardize on process, many issues arise. Those to be debated include process framework versus process; high ceremony versus low ceremony; the need for flexibility and tailorability; and the role of automation.
Conference Paper
Full-text available
Object-oriented languages such as Java and Smalltalk provide a uniform object reference model, allowing objects to be conveniently shared. If implemented directly, these uniform reference models can suffer in efficiency due to additional memory dereferences ...
Conference Paper
First Page of the Article
Article
Full-text available
Article
Full-text available
Use cases are wonderful but confusing. People, when asked to write them, do not know what to include or how to structure them. There is no published theory for them. This paper introduces a theory based on a small model of communication, distinguishing "goals" as a key element of use cases. The result is an easily used, scaleable, recursive model t...
Article
Full-text available
Designers must account for human social issues, not just technical concerns, when making architectural decisions.
Article
Anthropology is the study of civilization, particularly its societies, customs, structure, and evolution. Our premise is that there are cultureal "chasms" to be crossed to ensure the success of the technological beachhead established by innovators and early adopters of the OO paradigm. Our panelists will address the following questions:•What anthro...
Article
Anthropology is the study of civilization, particularly its societies, customs, structure, and evolution. Our premise is that there are cultureal "chasms" to be crossed to ensure the success of the technological beachhead established by innovators and early adopters of the OO paradigm. Our panelists will address the following questions:•What anthro...
Article
Temporal message-flow diagrams (TMFDs), alternatively called sequence charts, interaction diagrams, event traces, or actor diagrams, are illustrations of a system's global message-passing activity over time, and a pictorial aid to understanding the system's behavior. They are widely used for requirements and documentation for network protocols and...
Article
Due to the unique requirements of a series of projects to specify communications architectures using graphical representations (Cara and MFD), we have developed the communications-oriented rule-based language Carla (Cara Rule Language), which provides an executable specification of the architecture being developed. Carla is designed to provide the...
Article
The AUTOSPEC system is an automatic motor specification software system that primarily serves to non-interactively produce bill of materials from sales orders. At the core, the system applies Expert System and coordinated Relational Database technology ...
Article
Object-orientation introduces new deliverables, notations, techniques, activities, and tools. Application development consists not only of these items but also of work segmentation, scheduling, and managing the sharing and evolution of deliverables. This paper breaks application development into three major components: construction, coordination, a...
Conference Paper
Formalizes an interpretation of message-flow diagrams, allowing them to be translated into an executable forms, and develops a system, called “Cara”, which allows a designer to enter message-flow diagrams and data operations, and to begin simulating with them immediately. Both control and data operations are translated into rules, which can be fine...
Article
Tree-forming reversible routes are characterized by two constraints. The first, a strong form of route uniqueness, states that there may be no more than one route between any pair of nodes. It is called the tree-forming constraint as it implies that the set of routes to each node form a tree rooted at that node. The other constraint is reversibilit...
Article
The internetworking capability of a network is typically provided transparently by protocols below the network application interface. However, network designs have been implemented in which the internetwork function is limited or absent. This paper describes one way to add transparent internetworking to such systems without affecting the existing n...
Article
The checksum algorithm recommended in the OSI transport-protocol specfications is an arithemetic checksum algorithm which makes heavy use of base-255 addition. In this technical note, an efficient implementation of the recommended checksum algorithm is derived, using 8-bit unsigned addition as the base for an inexpensive modulo-255 addition.
Article
Full-text available
The fundamentals of good project management remain the same whatever methodology and approach is being used to develop a software product: communicating, building effective teams, planning and monitoring progress. There are however some aspects of the "Agile Mindset" which are important when using Agile methods to deliver the product. Agile methods...