Craig Larman

Last updated
Craig Larman
Craig-larman-talk.jpg
Born1958
Nationality Canadian
Alma mater Simon Fraser University
Occupation Computer Scientist
Years active1985-present

Craig Larman (born 1958) is a Canadian computer scientist, author, and organizational development consultant. With Bas Vodde, he is best known for formulating LeSS (Large-Scale Scrum), and for several books on product and software development.

Contents

Education and career

Larman received a B.Sc. and a M.Sc. in computer science from Simon Fraser University in Vancouver, British Columbia, focusing on artificial intelligence and object-oriented programming languages.

Starting in the late 1970s, Larman worked as a software developer in APL, Lisp, Prolog, and Smalltalk, using iterative and evolutionary methods, which strongly influenced his interest in methods and technologies in software development, that later became a focus of his consulting and writing.

In the 1990s, he was a volunteer organizer at the OOPSLA conferences, which exposed him to early introductions to the Agile software development methods Scrum and Extreme Programming presented at the conference, which led to his interest and work in those areas.

Starting in the late 1990s, he served as chief scientist at Valtech, a global consulting and outsourcing company based in Paris, France, with an outsourcing division in Bengaluru, India. While in Bengaluru, Larman worked on the development of scaling Agile development to outsourcing, formulated as part of Large-Scale Scrum.

In 2005 while consulting at Nokia Networks in Helsinki on the introduction of Scrum and other Agile methods for large-scale development, he met Bas Vodde, who worked within the company with the same remit. This led to their collaboration culminating in formulating and writing about LeSS (Large-Scale Scrum).

Contributions

In 1997, Larman authored Applying UML and Patterns: An Introduction to Object-Oriented Analysis & Design, a very popular textbook that contributed to the subsequent widespread adoption of object-oriented development. In this he introduced the GRASP principles of object-oriented design, contributing to the codification of software design principles.

In 2005 Larman was the co-creator of LeSS (Large-Scale Scrum), contributing to the application of Agile software development to large-scale product development. In 2017 the Scrum Alliance—a global non-profit educational certification body for Scrum and Agile software development subjects -- adopted LeSS for scaling development, citing its contribution.

Selected publications

Books

Articles

Related Research Articles

<span class="mw-page-title-main">Martin Fowler (software engineer)</span> American software developer, author and international public speaker on software development

Martin Fowler is a British software developer, author and international public speaker on software development, specialising in object-oriented analysis and design, UML, patterns, and agile software development methodologies, including extreme programming.

<span class="mw-page-title-main">Unified Modeling Language</span> Software system design modeling tool

The unified modeling language (UML) is a general-purpose modeling language that is intended to provide a standard way to visualize the design of a system.

In software engineering, a software design pattern is a general, reusable solution to a commonly occurring problem within a given context in software design. It is not a finished design that can be transformed directly into source or machine code. Rather, it is a description or template for how to solve a problem that can be used in many different situations. Design patterns are formalized best practices that the programmer can use to solve common problems when designing an application or system.

The Law of Demeter (LoD) or principle of least knowledge is a design guideline for developing software, particularly object-oriented programs. In its general form, the LoD is a specific case of loose coupling. The guideline was proposed by Ian Holland at Northeastern University towards the end of 1987, and the following three recommendations serve as a succinct summary:

The rational unified process (RUP) is an iterative software development process framework created by the Rational Software Corporation, a division of IBM since 2003. RUP is not a single concrete prescriptive process, but rather an adaptable process framework, intended to be tailored by the development organizations and software project teams that will select the elements of the process that are appropriate for their needs. RUP is a specific implementation of the Unified Process.

In software and systems engineering, the phrase use case is a polyseme with two senses:

  1. A usage scenario for a piece of software; often used in the plural to suggest situations where a piece of software may be useful.
  2. A potential scenario in which a system receives an external request and responds to it.

In software development, agile practices include requirements discovery and solutions improvement through the collaborative effort of self-organizing and cross-functional teams with their customer(s)/end user(s), Popularized in the 2001 Manifesto for Agile Software Development, these values and principles were derived from and underpin a broad range of software development frameworks, including Scrum and Kanban.

Object-oriented analysis and design (OOAD) is a technical approach for analyzing and designing an application, system, or business by applying object-oriented programming, as well as using visual modeling throughout the software development process to guide stakeholder communication and product quality.

<span class="mw-page-title-main">Scrum (software development)</span> Software development framework

Scrum is a lightweight framework that helps people, teams and organizations generate value through adaptive solutions for complex problems. It is commonly used in software development, although it is also used in other fields including research, sales, marketing, education and advanced technologies. It is designed for teams of ten or fewer members who break their work into goals to be completed within time-boxed iterations, called sprints. Each sprint is no longer than one month and most commonly lasts two weeks. The scrum team assesses progress in time-boxed daily meetings of up to 15 minutes, called daily scrums. At the end of the sprint, the team holds two further meetings: one sprint review intended to demonstrate the work done for stakeholders and solicit feedback, and one sprint retrospective intended to enable the team to reflect and improve.

General Responsibility Assignment Software Patterns, abbreviated GRASP, is a set of "nine fundamental principles in object design and responsibility assignment" first published by Craig Larman in his 1997 book Applying UML and Patterns.

<span class="mw-page-title-main">Unified Process</span> Object oriented software development process framework

The unified software development process or unified process is an iterative and incremental software development process framework. The best-known and extensively documented refinement of the unified process is the rational unified process (RUP). Other examples are OpenUP and agile unified process.

Object-oriented design (OOD) is the process of planning a system of interacting objects for the purpose of solving a software problem. It is one approach to software design.

Scott W. Ambler is a Canadian software engineer, consultant and author. He is an author of books about the Disciplined Agile Delivery toolkit, the Unified process, Agile software development, the Unified Modeling Language, and Capability Maturity Model (CMM) development.

In software engineering, a software development process is a process of planning and managing software development. It typically involves dividing software development work into smaller, parallel, or sequential steps or sub-processes to improve design and/or product management. It is also known as a software development life cycle (SDLC). The methodology may include the pre-definition of specific deliverables and artifacts that are created and completed by a project team to develop or maintain an application.

Linda Rising is an American author, lecturer, independent consultant. Rising is credited as having played a major role in having "moved the pattern approach from design into corporate change." She also contributed to the book 97 Things Every Software Architect Should Know, edited by Kevlin Henney and published by O´Reilly in 2009 (ISBN 059652269X).

Specification by example (SBE) is a collaborative approach to defining requirements and business-oriented functional tests for software products based on capturing and illustrating requirements using realistic examples instead of abstract statements. It is applied in the context of agile software development methods, in particular behavior-driven development. This approach is particularly successful for managing requirements and functional tests on large-scale projects of significant domain and organisational complexity.

In the Unified Process, "[t]he Environment discipline refers to the tools and customization of the process for the project - that is, setting up the tool and process environment".

<span class="mw-page-title-main">Robert C. Martin</span> American software consultant

Robert Cecil Martin, colloquially called "Uncle Bob", is an American software engineer, instructor, and author. He is most recognized for promoting many software design principles and for being an author and signatory of the influential Agile Manifesto.

The scaled agile framework (SAFe) is a set of organization and workflow patterns intended to guide enterprises in scaling lean and agile practices. Along with disciplined agile delivery (DAD), SAFe is one of a growing number of frameworks that seek to address the problems encountered when scaling beyond a single team.

References