Small matter of programming: Difference between revisions

Content deleted Content added
No edit summary
m The IBM Jargon Dictionary URL is dead, update.
 
(46 intermediate revisions by 28 users not shown)
Line 1:
{{short description|Ironic phrase in software development}}
'''Small Matter of Programming''' ('''SMOP''') or '''Small Matter of Programming''' was among the "games" described in an article written [[pseudonym]]ously <ref> {{Citation | last = Shedley | first = Ethan I. | title = [[Big System Games]] | magazine = [[Datamation]] | volume = 17 | issue = 7 | pages = 22–25 | publisher = Technical Publishing Company, 1301 South Grove Ave., Barrington, Illinois 60010 | date = April 1, 1971 }}</ref> as paralleling the ''[[Games People Play (book)|Games People Play]]'' identified by Dr. [[Eric Berne]] in the field of self-help psychology. The game essentially consists of proposing seemingly simple adjustments to a design, and leaving to someone else the problem of fitting the unexpected consequences into the schedule.
In [[software development]], '''small matter of programming''' ('''SMOP''') or '''simple matter of programming''' is a phrase used to ironically indicate that a suggested feature or design change would require a great deal of effort.
 
It points out that although the change is clearly possible, it would be very laborious to perform. It often implies that the person proposing the feature underestimates its cost.
When used in computer science, a SMOP is the smallest unit of software engineering effort which can be allocated at the onset of a project. A SMOP has the curious property that its size increases exponentially as the project progresses. It is not uncommon for a SMOP to grow to man-decades. There is anecdotal evidence of SMOPs encompassing man-centuries.
 
==Definitions==
The implication of using the phrase is either
* to remind one's colleagues that ''every'' design change seems like a small matter of programming, until implementation starts, or
* to reassert by irony one's awareness of the danger of underestimating required effort.
 
The 1983 [[Jargon File]] describes aan SMOP as follows:<ref>[{{cite web|url=http://www.catbjargon-file.org/jargonarchive/html/S/SMOPjargon-1.5.0.dos.htmltxt Simple|title=The MatterHacker's ofDictionary Programming] ([[Jargon File]], version 41.45.7)0] |access-date=2019-03-17}}</ref> as:
 
{{quote|'''SMOP''' (ess'em'oh'pee') noun.
:#A piece of code, not yet written, whose anticipated length is significantly greater than its complexity. Used to refer to a program that could obviously be written, but is not worth the trouble. Also used ironically to imply that a difficult problem can be easily solved because a program can be written to do it; the irony is that it is very clear that writing such a program will be a great deal of work. “It's easy to enhance a FORTRAN compiler to compile COBOL as well; it's just a SMOP.”
:#Often used ironically by the intended victim when a suggestion for a program is made which seems easy to the suggester, but is obviously (to the victim) a lot of work. Compare ''minor detail''.
 
An acronym for "a Small Matter Of Programming". A piece of program code, not yet written, whose anticipated length is significantly greater than its intellectual complexity.
Note that SMOPs are often logarithmic in nature. Each additional SMOP adds another order of magnitude onto calendar time.
 
:#AThis piece of code, not yet written, whose anticipated lengthterm is significantly greater than its complexity. Usedused to refer to a program that could obviously be written, but is not worth the trouble. AlsoIt is also used ironically to imply that a difficult problem can be easily solved because a program can be written to do it;. theThe irony is that it is very clear that writing such a program will be a great deal of work. “It's easy to enhance a FORTRAN compiler to compile COBOL as well; it's just a SMOP.”
 
Example: "It's easy to change a FORTRAN compiler to compile COBOL as well; it's just a small matter of programming."}}
 
The IBM Jargon Dictionary defines SMOP as:<ref>{{cite web|url=https://havantcivicsociety.uk/wp-content/uploads/2019/05/ibmjarg.pdf|quote=SMOP|title=''IBM Jargon Dictionary, Tenth Edition''|publisher=[[IBM]]|year=1990|page=53|access-date=22 March 2019}}</ref>
 
{{quote|'''SMOP''' (''smop'') ''n.'' Something quite possible, but requiring unavailable resources to achieve. "Why isn't that function available in the program?" − "It's just a Simple Matter Of Programming". (The implication being that, given a few person-centuries, all things are possible.) Also '''SMOUP''' (''smoop''), a Simple Matter Of Micro-Programming (if handwritten, using a Greek [[Mu_(letter)|mu]]). See also ''how hard would it be.''}}
 
==Usage==
 
'''Small Matter of Programming''' ('''SMOP''') or '''Small Matter of Programming''' was among the "games" described in an article written as paralleling the ''[[pseudonymGames People Play (book)|Games People Play]]ously'' identified by Dr. [[Eric Berne]] in the field of self-help psychology.<ref> {{Citation | last = Shedley | first = Ethan I. | title = [[Big System Games]] | magazine = [[Datamation]] | volume = 17 | issue = 7 | pages = 22–25 | publisher = Technical Publishing Company, 1301 South Grove Ave., Barrington, Illinois 60010 | date = April 1, 1971 }}</ref> as paralleling the ''[[Games People Play (book)|Games People Play]]'' identified by Dr. [[Eric Berne]] in the field of self-help psychology. The game essentially consists of proposing seemingly simple adjustments to a design, and leavingleading to someone else the problem of fitting the unexpected consequences into theand scheduledelays.
 
Alternative phrases such as '''simple matter of software''' or '''small matter of software''' are occasionally used in the same manner. However, the phrase is also used without irony<ref>{{cite journal |title= ONDI – The ON-line Device Interface |journal= Circuit Cellar INK the Computer Applications Journal |author= John Dybowski |issue= 18 |date= January 1991 |page= 16 |url= http://www.pestingers.net/pdfs/other-computers/circuit-cellar/1990/circuit-cellar-018.pdf |quote= This turns out to be an almost trivial exercise, mainly because the computer is used to compute and the controller to control. Just a simple matter of software. }}</ref> to indicate that straightforward [[Software engineering|software development]] is all that is required to resolve some issue. This usage is often invoked when the speaker wants to contrast the implied ease of software changes with the suggested greater difficulty of making a hardware change or a change to an [[Standardization|industry standard]]. This non-ironic usage is more often invoked by [[senior management]] and [[Hardware architect|hardware engineers]], than it is by software engineers.{{Citation needed|date=August 2017}}
 
The term was also explored and expanded upon by computer scientist [[Bonnie Nardi]] in her 1993 book ''A Small Matter of Programming: Perspectives on End User Computing''.<ref>{{cite book
| last=Nardi | first=Bonnie | author-link=Bonnie Nardi | year=1993 | title=A Small Matter of Programming: Perspectives on End User Computing | publisher=[[MIT Press]] | ___location=Cambridge | isbn=978-0-262-14053-9 | url=https://mitpress.mit.edu/books/small-matter-programming |oclc=874321540}}</ref>
 
==See also==
* {{annotated link|Ninety–ninety rule}}
* {{annotated link|Hofstadter's law}}
* {{annotated link|Hard–easy effect}}
* {{annotated link|Planning fallacy}}
 
==References==
{{reflist}}
 
[[Category:Anti-patterns]]
[[Category:Computer jargon]]
[[Category:Software project management]]
[[Category:English-language idioms]]