Martin Fowler (software engineer)

Martin Fowler (born 1963) 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.

Martin Fowler
Talk at University of São Paulo, Brazil in 2015
Born1963 (age 5556)
Walsall, England
ResidenceMelrose, Massachusetts
EducationUniversity College London (BSc, 1986)[1]
OccupationSoftware developer, author, public speaker

His 1999 book Refactoring popularised the practice of code refactoring.[2] In 2004 he introduced Presentation Model (PM), an architectural pattern.[3]


Fowler was born and grew up in Walsall, England, where he went to Queen Mary's Grammar School for his secondary education. He graduated at University College London in 1986. In 1994 he moved to the United States, where he lives near Boston, Massachusetts in the suburb of Melrose.[1]

Fowler started working with software in the early 1980s. Out of university in 1986 he started working in software development for Coopers & Lybrand until 1991.[4] In 2000 he joined ThoughtWorks, a systems integration and consulting company,[1] where he serves as Chief Scientist.[5]

Fowler has written nine books on the topic of software development (see Publications). He is a member of the Agile Alliance and helped create the Manifesto for Agile Software Development in 2001, along with 16 fellow signatories.[6] He maintains a bliki, a mix of blog and wiki. He popularised the term Dependency Injection as a form of Inversion of Control.[7][8]


  • 1996. Analysis Patterns: Reusable Object Models. Addison-Wesley. ISBN 0-201-89542-0.
  • 1997. UML Distilled: A Brief Guide to the Standard Object Modeling Language. Addison-Wesley. ISBN 978-0-201-32563-8.
  • 1999. Refactoring: Improving the Design of Existing Code, With Kent Beck, John Brant, William Opdyke, and Don Roberts (June 1999). Addison-Wesley. ISBN 0-201-48567-2.
  • 2000. Planning Extreme Programming. With Kent Beck. Addison-Wesley. ISBN 0-201-71091-9.
  • 2002. Patterns of Enterprise Application Architecture. With David Rice, Matthew Foemmel, Edward Hieatt, Robert Mee, and Randy Stafford. Addison-Wesley. ISBN 0-321-12742-0.
  • 2010. Domain-Specific Languages. With Rebecca Parsons. Addison-Wesley. ISBN 978-0-321-71294-3.
  • 2012. NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence. With Pramod Sadalage. Addison-Wesley. ISBN 978-0-321-82662-6.
  • 2013. Refactoring: Ruby Edition. With Kent Beck, Shane Harvie, and Jay Fields. Addison-Wesley. ISBN 978-0-321-98413-5.
  • 2018. Refactoring: Improving the Design of Existing Code, Second Edition. Kent Beck, and Martin Fowler. Addison-Wesley. ISBN 978-0-134-75768-1.


  1. Martin Fowler at Retrieved 2012-11-15.
  2. Stephane Faroult; Pascal L'Hermite (2008). Refactoring SQL Applications. O'Reilly Media. p. 8. ISBN 978-0-596-55177-3.
  3. Stephen Chin; Dean Iverson; Oswald Campesato; Paul Trani (2011). Pro Android Flash. Apress. p. 300. ISBN 978-1-4302-3232-2.
  4. James A. Highsmith (2002). Agile Software Development Ecosystems. Addison-Wesley Professional. p. 133. ISBN 978-0-201-76043-9.
  5. Martin Fowler | ThoughtWorks. Retrieved 2015-03-30.
  6. Manifesto for Agile Software Development. Retrieved 2012-12-10.
  7. Kamil Piętak; Marek Kisiel-Dorohinicki (2013). "Agent-Based Framework Facilitating Component-Based Implementation of Distributed Computational Intelligence Systems". In Ngoc-Thanh Nguyen; Joanna Kołodziej; Tadeusz Burczyński et al. Transactions on Computational Collective Intelligence X. Springer. p. 38. ISBN 978-3-642-38496-7.
  8. Martin Fowler (2004) "Inversion of Control Containers and the Dependency Injection pattern". Retrieved 2012-11-15.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.