Posted on December 19, 2015

In the same way a dog needs to poo on the footpath not long after starting its morning walk, the software development industry is compelled by its nature on a regular basis to leave vague appropriations of existing terms out in public view.

The people who step in it ask “why did this have to happen?”

Some people don’t realize what they have stepped in and so bring it inside and spread it all over the loungeroom carpet.

So I thought it would be interesting to pick up some of these terms, analyze their scent or origin, and deposit them in this catalogue. Some of the terms are quite old now, like an old dog poo that has gone all crusty and bleached white from the sun. On the other hand, others are fresh and warm with a tendency to stick to whatever they touch.

… Enjoy …

Agile (adj)
Describes the process of fixing the bugs which users have reported instead of implementing the features you imagined them to want.
CS (Computer Science) (n)
The name of a university degree which software developers can obtain. Usually involves a very basic overview of Java and attempts to get notoriously introverted students to program together in groups. There is only one experiment performed in a computer science degree. The hypothesis is “the student will become so bored that switching course to economics seems like a good idea.”
Git (n)
A tool that you commit to. Had a reputation of being difficult to work with among people who should have known better.
GitHub (n)
Something that you push to and make pull requests on. Pull requests are a social activity and can involve two or more people.
Land (v)
Declaring that a change to the software is complete and suitable for use. The word’s origin brings connotations of skill, training, years of professional experience. It need not be said that this term is designed to serve its user more than anyone else.
Scaling (v)
The act of increasing the size of a program’s inputs and/or outputs. Often this is to accommodate a larger number of users. It’s a problem I would really like to have.
Scrum (n)
I seriously don’t know what this means but the word is in use.
Software Architect (n)
A job title used to claim a higher salary in return for designing large monstrosities that the designers love and the users their opinion doesn’t matter. In this aspect, quite similar to the conventional architect.
Software Engineer (n)
Another job title used to claim a higher salary. Actual engineering degree doesn’t seem to be necessary.
Sprint (n)
Conventional usage of this term relates to something most software developers rarely do. Although many developers sprintf frequently, it has been known to cause injuries and snprintf is now recommended. In terms of agile software development, a sprint is the short period of software development between the other periods of procrastination.
Technical Debt (n)
Can also be considered as a leveraged technical investment, and the interest deducted from taxable income.

Do you have any ideas for new items in this glossary? Please contact me with your suggestions.