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)
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.
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.
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...
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...
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.
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...
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...
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...
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...
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.
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...
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.
Agile Software Development Methods: When and Why Do They Work? Full Text at Springer, may require registration or fee
Vyd. 1. Přeloženo z angličtiny Terminologický slovník
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...
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...
"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...
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...
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...
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...
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...
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...
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
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...
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...
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...
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...
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.
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 ...
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...
An abstract is not available.
Designers must account for human social issues, not just technical concerns, when making architectural decisions.
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...
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...
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...
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...
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 ...
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...
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...
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...
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...
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.
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...