Adding Epicycles

In Ptolemaic cosmology, a small circle, the center of which moves on the circumference of a larger circle at whose center is the earth and the circumference of which describes the orbit of one of the planets around the earth. Later refinements of the idea added yet more levels of circles in order to match observed motion as observations became more precise over time.

More info and animations:

If you have a bad design (such as trying to work out the motion of planets on paper while constrained by dogma to pretend that the sun moves more than the earth), and if you then find you keep having to add more bad design to add features to that design, then you are "AddingEpicycles".

As Renaissance astronomers got better at recording the exact locations of planets (relative to the surface of the earth at given times), they kept trying to plot these locations back to presumed coordinates (and offsets) on traditionally decreed "celestial spheres" that carried the planets. But the more precise they got, the more complicated their offsets were as they added epicycles. These eventually became celestial spheres bearing epicycles bearing epicycles bearing epicycles bearing planets. Obscured within the numbers, the planets were - of course - really going around the Sun.

The cure, of course, is to fix the root bad design. If you get it right, the change will ripple thru all the subsidiary designs and simplify them, possibly by making them go poof.

Similarly, if you use a methodology based on unsound assumptions (such as DocumentDrivenDevelopment? or WaterFall), and if you then try to make it work in real life, you will typically need to start adding "more rules" or "more paperwork" or "more CodeReviews". You await the simplifying re-initialization of your process to become more agile.

Just as a matter of interest, fixing the bad (geocentric) design did not initially remove the problem of epicycles. The heliocentric Copernican system also needed epicycles to reach the same accuracy as the Ptolemaic. It wasn't until Kepler that we had a heliocentric, epicycle-free, non-fattening solar system. Kepler was a strong supporter of the heliocentric system for religious reasons. It took him six years to come up with a system that supported his Pythagorean beliefs and matched the data provided by Tycho Brahe. In other words the problems did not just disappear.

The conclusion one might draw from this is that IdeasAreWorthless. After all, heliocentricism as an idea was not new by any measure. Not only did cosmology need a better design, so to speak, it also needed a stroke of genius and a lot of hard work. And even Kepler's efforts would have been lost without the masterly rhetoric of GalileoGalilei to keep it afloat. -- ChrisSteinbach

Good Enough For Purpose?

You have to admit, though, that epicycles are a pretty clever approximation. And one could argue that "they worked" for the purposes that they needed to. Where it got too smelly though is when they started adding "offsets" or "bars" to the circles to compensate for problems that yet-more-circles could not handle alone. Elegance went on vacation when the offsets came in.

[Yes, epicycles were great in their time, even though they described an ultimately incorrect view of things.]

It is probable that astronomers at the time were using the Ptolemaic system mainly as a predictive system and not as a physical model. Which might explain the lack of effort in finding something more elegant. Epicycles and the like were not necessarily seen to be a problem. -- ChrisSteinbach

That's exactly what happened. The physical model was constrained by philosophers, who insisted planets moved in perfect circles, because the heavens were perfect. This was tied closely to contemporary religion, making disagreement rare and risky.

PredictiveSystemVsPhysicalModel? (it would be fun to explore that more)

If it weren't two in the morning here, I would love to explore this further :-) You are right, however, with your observation re perfect circles. It makes me wonder if there could have been a realist/instrumentalist dispute even back then. Offsets, I'm sure, would have been distasteful to a realist. Epicycles perhaps not so. -- cs

Epicycles should have been distasteful to realists. If the planets moved in epicycles, what were they revolving around that in turn revolved around the Earth?

Well maybe. Although even realists hardly need everything to be explained in physical terms. Newton, if you remember, had the Almighty down as a kind of cosmological system administrator. -- cs (almost falling asleep at the keyboard)

Epicycles are roughly comparable to regression formulas, such as polynomial regression. In fact, epicycles could perhaps be used to create a formal system for "polar/circular/periodic regression". The regression formula is generally not assumed to model physical reality itself, but rather match observations regardless of the underlying causes. If a simpler model can be found, then indeed regression isn't necessary; but otherwise regression isn't necessarily "bad". In complex systems we don't always know all the underlying causes. A perfect model of the domain may be elusive such that matching observations may be less effort than trying to dig up all the underlying casual factors. The mistake the originators of the idea made is to assume or claim that it reflected the actual universe. Regression and it's cousins are a tool. Tools have limits and it's up to the user to know its limits and use it appropriately. (One could claim that since there was no decent alternative at the time, it was the best explanation of the day. Hindsight is nice, but not always available.) --top

Strangely enough, there are such things as orbits that are like EpiCycles called "Horseshoe Orbits" - see

Watches with calendars don't use models of gravity & momentum either. They are perhaps a modern-day equivalent of epicycles. The watches use a "fake" model and nobody complains (except maybe for fastidious drunk grouchy astronomers or physicists).

A watch isn't an attempt to model reality; it's only intended to provide a useful measure of time that parallels reality. You're thinking of an orrery, but I don't think I've ever seen a Ptolemaic orrery.

I'm not sure those are truly different things, or least for our topic. Some fancy watches even have little pictures of the moon or Earth showing their phase (light angle from the sun). Would that change anything? A gear-driven orrery is still likely not using physical planet/satellite models to compute position and phase.

Actually, that's precisely what an orrery does do. No parallel can be drawn between the gears of a clock and the orbits of planets. The moon phase displays rely strictly on timing; there is no modelling of the moon's orbit outside of that.

The planets' motions can likewise be modeled with gears. The more elaborate the gear-work, the more accurate the prediction. And "relying strictly on timing" is not necessarily a bad thing. The model is a tool. If it does the job the tool is intended to do (predict planet position), then such words like "timing" don't matter here. It's a forecasting engine. If you try to use a planet-position-forecasting engine as a general space gravity simulator, for example, THEN you have problems. But then you are going outside of the intended goal/use of the tool.

Who knows, even gravity may turn out to be a UsefulLie and something more powerful/accurate may someday replace it. Newton's gravity models have been superseded by more powerful Einsteinian models already, but the Newton model is "good enough" for a good many purposes, just like the gear-work was "good enough" for planet position forecasting in the medium-term. Tools are tools.

There is often a 3-way tradeoff between simplicity, accuracy, and scope of the tool. Ideally we want super-simple, 100% accurate, and unlimited scope, but IwantaPony.
See also:
CategoryAntiPattern CategoryCodeSmell CategoryDevelopmentAntiPattern

View edit of October 21, 2013 or FindPage with title or text search