Ron Jeffries

Last updated

Ron Jeffries
Ron Jeffries.jpg
Jeffries in 2006
Born (1939-12-26) December 26, 1939 (age 82)
Nationality American
Citizenship United States
Occupation Computer Scientist / Engineer

Ron Jeffries (born December 26, 1939) is one of the three founders of the Extreme Programming (XP) software development methodology circa 1996, along with Kent Beck and Ward Cunningham. He was from 1996, an XP coach on the Chrysler Comprehensive Compensation System project, which was where XP was invented. He is an author of Extreme Programming Installed, the second book published about XP. He has also written Extreme Programming Adventures in C#. He is one of the 17 original signatories of the Agile Manifesto.

Contents

Background

A Quote

My teams and I have implemented software products earning over half a billion dollars in revenue, including commercial software in assembler, FORTRAN, Pascal, C, C++, and Smalltalk. (I wonder why I didn't get any of the money.) I've also done substantial non-commercial development in LISP, Forth, and probably half a dozen other languages. I've implemented commercial operating systems, compilers, relational and set-theoretic database systems, and a wide range of applications. I have degrees in Mathematics and in Computer and Communication Science. All this experience comes at a price: I absolutely never get carded when I order a glass of beer. I was fortunate enough to get involved with Extreme Programming at the beginning, and I've been doing nothing but helping people with it ever since. Looking back over all my successful (and not so successful) projects, I'd apply XP techniques to all of them were I to do them over. [1]

Ron Jeffries

Books

Articles

Related Research Articles

Kent Beck

Kent Beck is an American software engineer and the creator of extreme programming, a software development methodology that eschews rigid formal specification for a collaborative and iterative design process. Beck was one of the 17 original signatories of the Agile Manifesto, the founding document for agile software development. Extreme and Agile methods are closely associated with Test-Driven Development (TDD), of which Beck is perhaps the leading proponent.

Software testing is the act of examining the artifacts and the behavior of the software under test by validation and verification. Software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software implementation. Test techniques include, but not necessarily limited to:

The waterfall model is a breakdown of project activities into linear sequential phases, where each phase depends on the deliverables of the previous one and corresponds to a specialization of tasks. The approach is typical for certain areas of engineering design. In software development, it tends to be among the less iterative and flexible approaches, as progress flows in largely one direction through the phases of conception, initiation, analysis, design, construction, testing, deployment and maintenance.

Software release life cycle Sum of the phases of development and maturity for computer software

A software release life cycle is the sum of the stages of development and maturity for a piece of computer software. Cycles range from its initial development to its eventual release, and include updated versions of the released version to help improve software or fix software bugs still present in the software.

Rapid application development (RAD), also called rapid application building (RAB), is both a general term for adaptive software development approaches, and the name for James Martin's method of rapid development. In general, RAD approaches to software development put less emphasis on planning and more emphasis on an adaptive process. Prototypes are often used in addition to or sometimes even instead of design specifications.

The following outline is provided as an overview of and topical guide to software engineering:

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), adaptive planning, evolutionary development, early delivery, continual improvement, and flexible responses to changes in requirements, capacity, and understanding of the problems to be solved.

James O. Coplien, also known as Cope, is a writer, lecturer, and researcher in the field of computer science. He held the 2003–4 Vloeberghs Leerstoel at Vrije Universiteit Brussel and has been a visiting professor at University of Manchester.

"You aren't gonna need it" (YAGNI) is a principle which arose from extreme programming (XP) that states a programmer should not add functionality until deemed necessary. XP co-founder Ron Jeffries has written: "Always implement things when you actually need them, never when you just foresee that you need them." Other forms of the phrase include "You aren't going to need it" (YAGTNI) and "You ain't gonna need it" (YAGNI).

In software engineering, continuous integration (CI) is the practice of merging all developers' working copies to a shared mainline several times a day. Grady Booch first proposed the term CI in his 1991 method, although he did not advocate integrating several times a day. Extreme programming (XP) adopted the concept of CI and did advocate integrating more than once per day – perhaps as many as tens of times per day.

In software development and product management, a user story is an informal, natural language description of features of a software system. They are written from the perspective of an end user or user of a system, and may be recorded on index cards, Post-it notes, or digitally in project management software. Depending on the project, user stories may be written by different stakeholders like client, user, manager, or development team.

The Chrysler Comprehensive Compensation System was a project in the Chrysler Corporation to replace several payroll applications with a single system. The new system was built using Smalltalk and GemStone. The software development techniques invented and employed on this project are of interest in the history of software engineering. C3 has been referenced in several books on the extreme programming (XP) methodology. The software went live in 1997, paying around ten thousand people. The project continued, intending to take on a larger proportion of the payroll, but new development was stopped in 1999.

Extreme programming (XP) is an agile software development methodology used to implement software projects. This article details the practices used in this methodology. Extreme programming has 12 practices, grouped into four areas, derived from the best practices of software engineering.

Agile testing is a software testing practice that follows the principles of agile software development. Agile testing involves all members of a cross-functional agile team, with special expertise contributed by testers, to ensure delivering the business value desired by the customer at frequent intervals, working at a sustainable pace. Specification by example is used to capture examples of desired and undesired behavior and guide coding.

Matt Stephens is an author and software process expert based in London, UK. In January 2010 he founded independent book publisher Fingerpress UK Ltd, and in November 2014 he founded the Virtual Reality book discovery site Inkflash.

In software engineering, tester-driven development, or bug-driven development, is an anti-pattern where the requirements are determined by bug reports or test results rather than, for example, the value or cost of a feature. The concept is generally invoked facetiously, and comes with the implication that high volumes of computer code are written with little regard for unit testing by the programmers.

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.

Extreme programming Software development methodology

Extreme programming (XP) is a software development methodology intended to improve software quality and responsiveness to changing customer requirements. As a type of agile software development, it advocates frequent releases in short development cycles, intended to improve productivity and introduce checkpoints at which new customer requirements can be adopted.

Acceptance test–driven development (ATDD) is a development methodology based on communication between the business customers, the developers, and the testers. ATDD encompasses many of the same practices as specification by example (SBE), behavior-driven development (BDD), example-driven development (EDD), and support-driven development also called story test–driven development (SDD). All these processes aid developers and testers in understanding the customer's needs prior to implementation and allow customers to be able to converse in their own domain language.

References

  1. Biographical Notes, by Ron Jeffries