<<< Previous speaker next speaker >>>

Barry Boehm, Balancing agility and discipline in software development since 1955

 Barry  Boehm

Barry Boehm was born before the computer was invented, and may be the oldest computer scientist in the world. That is not an accomplishment in itself, but he has many other merits.

The American computer science legend was born in 1935, and has been active in the IT world since 1955. He has played a major role in the global software industry, by trying to balance agility and discipline in software development.

Barry Boehm received his B.A. degree from Harvard University in 1957, his M.S. in 1961, and Ph.D. degree from UCLA in 1964, all in mathematics. The is TRW professor of software engineering and director of the USC Center for Software Engineering, he earlier served as director of the DARPA Information Science and Technology Office and as a chief scientist at TRW. Dr. Boehm's contributions to the field include the Constructive Cost Model (COCOMO), the Spiral Model of the software process, the Theory W (win-win) approach to software management and requirements determination. Barry Boehm has published over 170 articles and several books.

He has served on the board of several scientific journals, including the IEEE Transactions on Software Engineering, IEEE Computer, IEEE Software, ACM Computing Reviews, Automated Software Engineering, Software Process, and Information and Software Technology.

Recent awards for Barry Boehm include the Office of the Secretary of Defense Award for Excellence in 1992, the ASQC Lifetime Achievement Award in 1994, and the ACM Distinguished Research Award in Software Engineering in 1997. He is an AIAA Fellow, an ACM Fellow, an IEEE Fellow, and a member of the National Academy of Engineering. He received the Mellon Award for Excellence in Mentoring in 2005.

Presentation: "Scaling Up Agility: The Architected Agile Approach"

Time: Monday 09:00 - 09:45

Location: Store Sal

Abstract:

Some agile methods do not scale up very well to larger projects and products, such as daily all-hands standup meetings, collective code ownership, and simple design, which often leads to an easiest-first set of commitments to reusable software that is hard to scale up or to accommodate downstream needs for safety,security, or interoperability with other applications. Several recent success stories of scaling up agile methods follow an Architected Agile pattern, which includes such practices as:

  • Development and socialization of enterprise interoperability standards
  • Best-effort definition of downstream project requirements, and an early architecture analysis and definition of how to support them
  • Scrum of Scrum teams, with team leaders having followon daily standup meetings
  • External releases consisting of several short Scrum increments with user-representative feedback
  • More stabilized development across the Scrum teams, often with a concurrent rearchitecting team handling cross-cutting change traffic and preparing next-release plans and spcifications

The talk will summarize these and related practices, and illustrate them with several successful case studies.

Presentation: "Balancing Agility and Architecture"

Time: Monday 16:15 - 17:15

Location: Lille Sal

Abstract:

Increasingly, new and updated software systems cannot be developed as standalone stovepipes, but must integrate into larger enterprise software frameworks and systems of systems (SoS). This involves complex interactions with evolving COTS products, legacy systems, and external systems, often where there is an expectation of continuous operation without degradation or failure. The ability to develop and evolve such systems requires software development processes that can accommodate emergent requirements, rapid changes, reused components, high levels of assurance, and dynamic market factors.

This talk identifies regions in which pure agile or architecture-based approaches dominate, and finds that the region involving by far the largest amount of investment effort requires both. It provides an approach for determining "how much architecting is enough", as a function of the system's size, criticality, and volatility. It presents an experience-based set of principles and a process framework for tailoring an appropriate mix of agility and architecture to a specific project situation, and illustrates the use of the principles across a diverse set of successful architected-agile case study projects.