2017-09-27 07:52:58 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Network Working Group A. Dulaunoy
|
|
|
|
|
Internet-Draft A. Iklody
|
|
|
|
|
Intended status: Informational CIRCL
|
2021-10-01 08:41:51 +00:00
|
|
|
|
Expires: 4 April 2022 1 October 2021
|
2017-09-27 07:52:58 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Programming Methodology Framework aka PMF
|
2021-10-01 08:41:51 +00:00
|
|
|
|
draft-01
|
2017-09-27 07:52:58 +00:00
|
|
|
|
|
|
|
|
|
Abstract
|
|
|
|
|
|
|
|
|
|
This document describes the Programming Methodology Framework also
|
|
|
|
|
known under the PMF methodology. The methodology is based on the
|
|
|
|
|
manifesto written by Zed A. Shaw [PROGRAMMING-MF-MANIFESTO] which
|
2017-09-27 14:04:21 +00:00
|
|
|
|
describes a natural approach to software engineering with a strong
|
2019-04-11 19:43:18 +00:00
|
|
|
|
focus on the act of programming. The PMF methodology uses a soft
|
2017-09-27 14:04:21 +00:00
|
|
|
|
naming to allow for a non-partisan reference to official engineering
|
|
|
|
|
or project documents describing one of the most used software
|
|
|
|
|
engineering methodologies.
|
2017-09-27 07:52:58 +00:00
|
|
|
|
|
|
|
|
|
Status of This Memo
|
|
|
|
|
|
|
|
|
|
This Internet-Draft is submitted in full conformance with the
|
|
|
|
|
provisions of BCP 78 and BCP 79.
|
|
|
|
|
|
|
|
|
|
Internet-Drafts are working documents of the Internet Engineering
|
|
|
|
|
Task Force (IETF). Note that other groups may also distribute
|
|
|
|
|
working documents as Internet-Drafts. The list of current Internet-
|
2019-04-11 19:43:18 +00:00
|
|
|
|
Drafts is at https://datatracker.ietf.org/drafts/current/.
|
2017-09-27 07:52:58 +00:00
|
|
|
|
|
|
|
|
|
Internet-Drafts are draft documents valid for a maximum of six months
|
|
|
|
|
and may be updated, replaced, or obsoleted by other documents at any
|
|
|
|
|
time. It is inappropriate to use Internet-Drafts as reference
|
|
|
|
|
material or to cite them other than as "work in progress."
|
|
|
|
|
|
2021-10-01 08:41:51 +00:00
|
|
|
|
This Internet-Draft will expire on 4 April 2022.
|
2017-09-27 07:52:58 +00:00
|
|
|
|
|
|
|
|
|
Copyright Notice
|
|
|
|
|
|
2021-10-01 08:41:51 +00:00
|
|
|
|
Copyright (c) 2021 IETF Trust and the persons identified as the
|
2017-09-27 07:52:58 +00:00
|
|
|
|
document authors. All rights reserved.
|
|
|
|
|
|
|
|
|
|
This document is subject to BCP 78 and the IETF Trust's Legal
|
2021-10-01 08:41:51 +00:00
|
|
|
|
Provisions Relating to IETF Documents (https://trustee.ietf.org/
|
|
|
|
|
license-info) in effect on the date of publication of this document.
|
|
|
|
|
Please review these documents carefully, as they describe your rights
|
|
|
|
|
and restrictions with respect to this document. Code Components
|
|
|
|
|
extracted from this document must include Simplified BSD License text
|
2017-09-27 07:52:58 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-10-01 08:41:51 +00:00
|
|
|
|
Dulaunoy & Iklody Expires 4 April 2022 [Page 1]
|
2017-09-27 07:52:58 +00:00
|
|
|
|
|
2021-10-01 08:41:51 +00:00
|
|
|
|
Internet-Draft PMF - Programming Methodology Framework October 2021
|
2017-09-27 07:52:58 +00:00
|
|
|
|
|
|
|
|
|
|
2021-10-01 08:41:51 +00:00
|
|
|
|
as described in Section 4.e of the Trust Legal Provisions and are
|
|
|
|
|
provided without warranty as described in the Simplified BSD License.
|
2017-09-27 07:52:58 +00:00
|
|
|
|
|
|
|
|
|
Table of Contents
|
|
|
|
|
|
|
|
|
|
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
|
|
|
|
|
1.1. Management and PMF methodology . . . . . . . . . . . . . 3
|
|
|
|
|
1.2. Conventions and Terminology . . . . . . . . . . . . . . . 3
|
|
|
|
|
2. Security Considerations . . . . . . . . . . . . . . . . . . . 3
|
2017-10-15 09:13:58 +00:00
|
|
|
|
3. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 4
|
2021-10-01 08:41:51 +00:00
|
|
|
|
4. Normative References . . . . . . . . . . . . . . . . . . . . 4
|
|
|
|
|
5. Informative References . . . . . . . . . . . . . . . . . . . 4
|
2017-09-27 07:52:58 +00:00
|
|
|
|
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 4
|
|
|
|
|
|
|
|
|
|
1. Introduction
|
|
|
|
|
|
|
|
|
|
In 2011, Zed A. Shaw published a blog post which describes:
|
|
|
|
|
|
2021-10-01 08:41:51 +00:00
|
|
|
|
{align="left"} I think I'm going to create the ultimate software
|
|
|
|
|
development methodology. It'll be revolutionary compared to others
|
|
|
|
|
because it will focus on the one thing that gets software done. Its
|
|
|
|
|
entire focus will be this one, glorious, completely useful activity
|
|
|
|
|
for writing software. It's name even embodies the perfection of this
|
2017-09-27 07:52:58 +00:00
|
|
|
|
programming methodology.
|
|
|
|
|
|
2019-04-11 19:43:18 +00:00
|
|
|
|
The PMF methodology was published as a manifesto later
|
2017-09-27 07:52:58 +00:00
|
|
|
|
[PROGRAMMING-MF-MANIFESTO]. The manifesto clearly describes the
|
|
|
|
|
focus on programming to avoid the surrounding management overhead and
|
|
|
|
|
pivot towards the delivery of the software. The
|
|
|
|
|
[THE-TAO-OF-PROGRAMMING] describes similar methodologies which
|
|
|
|
|
strongly focus on coding, scripting and programming.
|
|
|
|
|
|
2017-09-27 14:04:21 +00:00
|
|
|
|
The overall concept of PMF methodology follows the following process:
|
2017-09-27 07:52:58 +00:00
|
|
|
|
|
2021-10-01 08:41:51 +00:00
|
|
|
|
* Compose a list of features to be implemented and use an iterative
|
2017-09-27 14:04:21 +00:00
|
|
|
|
programming process.
|
2017-09-27 07:52:58 +00:00
|
|
|
|
|
2021-10-01 08:41:51 +00:00
|
|
|
|
* Enhance said features using trial and error programming.
|
2017-09-27 07:52:58 +00:00
|
|
|
|
|
2021-10-01 08:41:51 +00:00
|
|
|
|
* Orchestrate your testing and integration processes using pragmatic
|
2017-09-27 14:04:21 +00:00
|
|
|
|
programming.
|
2017-09-27 07:52:58 +00:00
|
|
|
|
|
2017-09-27 14:04:21 +00:00
|
|
|
|
Repeat the above process until the software is delivered.
|
2017-09-27 07:52:58 +00:00
|
|
|
|
|
2017-10-15 09:13:58 +00:00
|
|
|
|
A simplified overview of the process can be described as follow:
|
2017-09-27 07:52:58 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-10-01 08:41:51 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Dulaunoy & Iklody Expires 4 April 2022 [Page 2]
|
2017-09-27 07:52:58 +00:00
|
|
|
|
|
2021-10-01 08:41:51 +00:00
|
|
|
|
Internet-Draft PMF - Programming Methodology Framework October 2021
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+----------+
|
|
|
|
|
| |
|
|
|
|
|
| idea <------+
|
|
|
|
|
| | |
|
|
|
|
|
+----+-----+ |
|
|
|
|
|
| |
|
|
|
|
|
| |
|
|
|
|
|
+----v-----+ |
|
|
|
|
|
| | | it doesn't work
|
|
|
|
|
| code | |
|
|
|
|
|
| | |
|
|
|
|
|
+----+-----+ |
|
|
|
|
|
| |
|
|
|
|
|
| |
|
|
|
|
|
+----v-----+ |
|
|
|
|
|
| | |
|
|
|
|
|
| release +------+
|
|
|
|
|
| |
|
|
|
|
|
+----------+
|
|
|
|
|
|
|
|
|
|
The PMF methodology covers open source software along with
|
|
|
|
|
proprietary software and can be used interchangeably in both.
|
2017-09-27 07:52:58 +00:00
|
|
|
|
|
|
|
|
|
1.1. Management and PMF methodology
|
|
|
|
|
|
2019-04-11 19:43:18 +00:00
|
|
|
|
A simple management process is a requirement of the PMF methodology.
|
2017-09-27 14:04:21 +00:00
|
|
|
|
The management process is meant to be complementary instead of
|
|
|
|
|
interfering with the programming aspect and solely serves to support
|
|
|
|
|
the PMF methodology.
|
2017-09-27 07:52:58 +00:00
|
|
|
|
|
2021-10-01 08:41:51 +00:00
|
|
|
|
* Collect requirements of the users/customers.
|
2017-09-27 07:52:58 +00:00
|
|
|
|
|
2021-10-01 08:41:51 +00:00
|
|
|
|
* Provide programmers with the desired requirements.
|
2017-09-27 07:52:58 +00:00
|
|
|
|
|
2021-10-01 08:41:51 +00:00
|
|
|
|
* Review whether the software to be delivered matches the
|
2017-09-27 07:52:58 +00:00
|
|
|
|
requirements.
|
|
|
|
|
|
|
|
|
|
1.2. Conventions and Terminology
|
|
|
|
|
|
|
|
|
|
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
|
|
|
|
|
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
|
|
|
|
|
document are to be interpreted as described in RFC 2119 [RFC2119].
|
|
|
|
|
|
|
|
|
|
2. Security Considerations
|
|
|
|
|
|
|
|
|
|
Secure and defensive programming can only come by practicing
|
|
|
|
|
programming and this also includes the act of simplifying or removing
|
|
|
|
|
code to reduce the attack surface.
|
|
|
|
|
|
2017-10-15 09:13:58 +00:00
|
|
|
|
|
|
|
|
|
|
2021-10-01 08:41:51 +00:00
|
|
|
|
Dulaunoy & Iklody Expires 4 April 2022 [Page 3]
|
2017-10-15 09:13:58 +00:00
|
|
|
|
|
2021-10-01 08:41:51 +00:00
|
|
|
|
Internet-Draft PMF - Programming Methodology Framework October 2021
|
2017-10-15 09:13:58 +00:00
|
|
|
|
|
|
|
|
|
|
2017-09-27 07:52:58 +00:00
|
|
|
|
3. Acknowledgements
|
|
|
|
|
|
|
|
|
|
The authors wish to thank all the programmers who program.
|
|
|
|
|
|
2021-10-01 08:41:51 +00:00
|
|
|
|
4. Normative References
|
2017-09-27 07:52:58 +00:00
|
|
|
|
|
|
|
|
|
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
|
|
|
|
|
Requirement Levels", BCP 14, RFC 2119,
|
2019-04-11 19:43:18 +00:00
|
|
|
|
DOI 10.17487/RFC2119, March 1997,
|
|
|
|
|
<https://www.rfc-editor.org/info/rfc2119>.
|
2017-09-27 07:52:58 +00:00
|
|
|
|
|
2021-10-01 08:41:51 +00:00
|
|
|
|
5. Informative References
|
2017-09-27 07:52:58 +00:00
|
|
|
|
|
|
|
|
|
[PROGRAMMING-MF-MANIFESTO]
|
2021-10-01 08:41:51 +00:00
|
|
|
|
Shaw, Z. A., "Programming Motherfucker, do you speak it?",
|
|
|
|
|
, October 2021, <http://programming-motherfucker.com>.
|
2017-09-27 07:52:58 +00:00
|
|
|
|
|
|
|
|
|
[THE-TAO-OF-PROGRAMMING]
|
2021-10-01 08:41:51 +00:00
|
|
|
|
James, G., "The Tao of Programming", , October 2021,
|
2017-09-27 07:52:58 +00:00
|
|
|
|
<http://www.mit.edu/~xela/tao.html>.
|
|
|
|
|
|
|
|
|
|
Authors' Addresses
|
|
|
|
|
|
|
|
|
|
Computer Incident Response Center Luxembourg
|
2021-10-01 08:41:51 +00:00
|
|
|
|
Alexandre Dulaunoy
|
2017-09-27 07:52:58 +00:00
|
|
|
|
16, bd d'Avranches
|
2021-10-01 08:41:51 +00:00
|
|
|
|
L-L-1160 Luxembourg
|
2017-09-27 07:52:58 +00:00
|
|
|
|
Luxembourg
|
|
|
|
|
|
|
|
|
|
Phone: +352 247 88444
|
|
|
|
|
Email: alexandre.dulaunoy@circl.lu
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Computer Incident Response Center Luxembourg
|
2021-10-01 08:41:51 +00:00
|
|
|
|
Andras Iklody
|
2017-09-27 07:52:58 +00:00
|
|
|
|
16, bd d'Avranches
|
2021-10-01 08:41:51 +00:00
|
|
|
|
L-L-1160 Luxembourg
|
2017-09-27 07:52:58 +00:00
|
|
|
|
Luxembourg
|
|
|
|
|
|
|
|
|
|
Phone: +352 247 88444
|
|
|
|
|
Email: andras.iklody@circl.lu
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-10-01 08:41:51 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Dulaunoy & Iklody Expires 4 April 2022 [Page 4]
|