Robert C. Martin

Last updated

Robert C. Martin
Robert C. Martin surrounded by computers.jpg
Martin in 2020
Born
Robert Cecil Martin

(1952-12-05) 5 December 1952 (age 71) [1]
NationalityAmerican
Other names"Uncle Bob" Martin
Occupation(s) Software engineer [2] , instructor
Known for Agile Manifesto, SOLID principles
Children4
Website cleancoder.com

Robert Cecil Martin (born 5 December 1952), colloquially called "Uncle Bob", [3] is an American software engineer [2] , 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. [4]

Contents

Martin has authored many books and magazine articles. He was the editor-in-chief of C++ Report magazine and served as the first chairman of the Agile Alliance. [5] [6]

Martin joined the software industry at age 17 and is self-taught. [7]

Professional work

In 1991, Martin founded Object Mentor, [8] now defunct, which provided instructor-led training on the extreme programming methodology. [9] As of November 2023, he operated Uncle Bob Consulting, which provides consulting and training services. [10] He serves as Master Craftsman / Mentor at Clean Coders, a company run by his son Micah Martin, and produces training videos. [11]

Software principles advocacy

Martin is a proponent of software craftsmanship, agile software development, and test-driven development. [12]

He is credited with introducing the collection of object-oriented programming (OOP) design principles that came to be known as SOLID. [13]

Publications

Related Research Articles

<span class="mw-page-title-main">Computer program</span> Instructions to be executed by a computer

A computer program is a sequence or set of instructions in a programming language for a computer to execute. It is one component of software, which also includes documentation and other intangible components.

<span class="mw-page-title-main">Kent Beck</span> American software engineer

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.

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

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.

In computer programming and software design, code refactoring is the process of restructuring existing source code—changing the factoring—without changing its external behavior. Refactoring is intended to improve the design, structure, and/or implementation of the software, while preserving its functionality. Potential advantages of refactoring may include improved code readability and reduced complexity; these can improve the source code's maintainability and create a simpler, cleaner, or more expressive internal architecture or object model to improve extensibility. Another potential goal for refactoring is improved performance; software engineers face an ongoing challenge to write programs that perform faster or use less memory.

In software engineering, a design pattern describes a relatively small, well-defined aspect of a computer program in terms of how to write the code.

In computer programming, a code smell is any characteristic in the source code of a program that possibly indicates a deeper problem. Determining what is and is not a code smell is subjective, and varies by language, developer, and development methodology.

Agile software development is an umbrella term for approaches to developing software that reflect the values and principles agreed upon by The Agile Alliance, a group of 17 software practitioners in 2001. As documented in their Manifesto for Agile Software Development the practitioners value:

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.

The single-responsibility principle (SRP) is a computer programming principle that states that "A module should be responsible to one, and only one, actor." The term actor refers to a group that requires a change in the module.

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.

Software craftsmanship is an approach to software development that emphasizes the coding skills of the software developers. It is a response by software developers to the perceived ills of the mainstream software industry, including the prioritization of financial concerns over developer accountability.

<span class="mw-page-title-main">Alistair Cockburn</span> American computer programmer

Alistair Cockburn is an American computer scientist, known as one of the initiators of the agile movement in software development. He cosigned the Manifesto for Agile Software Development.

Stephen J. Mellor is an American computer scientist, developer of the Ward–Mellor method for real-time computing, the Shlaer–Mellor method, and Executable UML, and signatory to the Agile Manifesto.

In software programming, SOLID is a mnemonic acronym for five design principles intended to make object-oriented designs more understandable, flexible, and maintainable. Although the SOLID principles apply to any object-oriented design, they can also form a core philosophy for methodologies such as agile development or adaptive software development.

<span class="mw-page-title-main">Object-oriented programming</span> Programming paradigm based on the concept of objects

Object-oriented programming (OOP) is a programming paradigm based on the concept of objects, which can contain data and code: data in the form of fields, and code in the form of procedures. In OOP, computer programs are designed by making them out of objects that interact with one another.

<span class="mw-page-title-main">Extreme programming</span> 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.

In computer programming, a design smell is a structure in a design that indicates a violation of fundamental design principles, and which can negatively impact the project's quality. The origin of the term can be traced to the term "code smell" which was featured in the book Refactoring: Improving the Design of Existing Code by Martin Fowler.

<span class="mw-page-title-main">Mike Beedle</span> American software engineer

Miguel "Mike" Beedle was an American software engineer and theoretical physicist who was a co-author of the Agile Manifesto.

The hexagonal architecture, or ports and adapters architecture, is an architectural pattern used in software design. It aims at creating loosely coupled application components that can be easily connected to their software environment by means of ports and adapters. This makes components exchangeable at any level and facilitates test automation.

The entity-control-boundary (ECB), or entity-boundary-control (EBC), or boundary-control-entity (BCE) is an architectural pattern used in use-case driven object-oriented programming that structures the classes composing high-level object-oriented source code according to their responsibilities in the use-case realization.

References

  1. Groupon OnAir (July 26, 2016). The Future of Programming with Uncle Bob Martin. YouTube.
  2. 1 2 Microsoft Learn (September 15, 2015). "Uncle Bob on Software Practice". Microsoft Learn.
  3. Heusser, Matthew (May 10, 2011). "Do Professional Programmers Need a Code of Conduct? An Interview with Robert C. "Uncle Bob" Martin". InformIT . Retrieved February 26, 2015.
  4. "Authors: The Agile Manifesto". Manifesto for Agile Software Development. 2001. Retrieved January 16, 2020.
  5. "Robert C. Martin". IEEE Xplore. Retrieved August 1, 2021.
  6. Sondra Ashmore; Kristin Runyan (2014). Introduction to Agile Methods. Addison-Wesley Professional. p. 10. ISBN   9780133435214.
  7. Martin, Robert C. (December 10, 2018). "Uncle Bob on X". X (formerly Twitter). Retrieved November 23, 2023.
  8. "Robert Martin (Uncle Bob) - Scrum Alliance". www.scrumalliance.org. Retrieved November 30, 2022.
  9. "Object Mentor: About | LinkedIn". LinkedIn. Retrieved November 23, 2023.
  10. "Robert Martin | LinkedIn". LinkedIn. Retrieved November 23, 2023.
  11. "Clean Coders : Level up your code". cleancoders.com. Retrieved November 23, 2023.
  12. "UBC". cleancoder.com. Retrieved November 23, 2023.
  13. Martin, Robert C. (2000) "Design Principles and Design Patterns"(PDF). objectmentor.com. Archived from the original on 2015-09-06