Software Development Glossary

Software development has a lot of strange terms that you hear around. This is a summary of my personal working definitions and origin stories. I do not know how many of the stories are real.

Bikeshedding

Spending a disproportionate amount of time discussing something that isn't important, but easy to discuss.

There was a committee for a nuclear power station that immediately approved plans for the actual power station for millions of dollars and spend an hour discussing the material for the bikeshed for the sake of hundreds.

Cargo culting

Taking on a tool or practice because you've heard someone else does. Normally from somewhere like Google who have a vastly different situation.

During the Second World War, a military base was set up on a Pacific Island. Planes brought in resources several times a day. After the war ended and the base was abandoned, the islanders tried to bring the planes back by recreating the actions they saw on the base.

Dogfooding

Using your own product. If you make project management software you would use it to manage your own projects. I have heard that Facebook do all of their internal communication on an internal Facebook.

Comes from the phrase "Eating your own dog food."

Duck Typing

Deciding whether an object is of the correct type by the methods and properties it has, rather than the type of the object itself.

If it walks like a duck and quacks like a duck, it's a duck.

Fake door

Pretend that you offer a product or service. You advertise it on your site and that let's you gauge interest, before investing in building a product. The fake door will also give you more confidence than a survey would do. These are real users who've clicked through to a product they believe will cost them money.

Skunk Works

A separate team in a company, dedicated to radical innovation.

A pseudonym for a series of programs in the Lockheed Martin aerospace company that designed many well known planes.