Julien Lengrand-Lambert bio photo

Julien Lengrand-Lambert

French guy living in the Netherlands. IT Chapter Lead @ING during the day, CoFounder @Skyai at night.

Twitter LinkedIn Github

Is Descartes the father of Agile development?

Methodology coming from Elders : Descartes’s advice

As a scientist, I love reading old books about ways to improve my workflow and get things done. As a french guy, I am especially glad when what I read come from Descartes.

portrait of Descartes

Here is a small part of what Wikipedia says about Descartes.

WIKIPEDIA René Descartes was a French philosopher, mathematician, and writer. He is credited as the father of analytical geometry, the bridge between algebra and geometry, crucial to the discovery of infinitesimal calculus and analysis. As an example, the Cartesian coordinate system — allowing algebraic equations to be expressed as geometric shapes in a two-dimensional coordinate system — was named after him.

In Le discours de la méthode  , Descartes describes 4 principles that (in his mind) people should follow to eventually find a solution to their (scientific) problems.

Cover of le discours de la Méthode

Here is the original (and french) version of those principles:

Et comme la multitude des lois fournit souvent des excuses aux vices, en sorte qu’un état est bien mieux réglé lorsque, n’ayant que fort peu, elles y sont fort étroitement observées; ainsi, au lieu de ce grand nombre de précepte dont la logique est composée, je crus que j’aurai assez des quatre suivants, pourvu que je prise une ferme et constante résolution de ne manquer pas une seule fois de les observer.
  • Le premier était de ne recevoir jamais une chose pour vraie, que je ne la connusse évidemment telle : c’est à dire d’éviter soigneusement la précipitation et la prévention [au sens poids de nos préjugés]; et de ne comprendre rien de plus en mes jugements, que ce qui se présenterait si clairement et si distinctement à mon esprit, que je n’eusse aucune occasion de le mettre en doute.
  • Le second, de diviser chacune des difficultés que j’examinerais en autant de parcelles qu’il se pourrait et qu’il serait requis pour les mieux résoudre.
  • Le troisième, de conduire par ordre mes pensées, en commençant par les objets les plus simples et les plus aisés à connaître, pour monter peu à peu, comme par degrés, jusques à la connaissance des plus composés; et supposant même de l’ordre entre ceux qui ne se précèdent point naturellement les uns les autres.
  • Et le dernier, de faire partout des dénombrements si entiers, et des revues si générales*, (tantôt en cherchant les intermédiaires, tantôt en parcourant les parties des difficultés), que je fusse assuré de ne rien omettre.
René Descartes – Le Discours de la Méthode – Seconde Partie – 1637

And here is an english summary of those 4 principles (excuse my non-fluency in english):

  • Never assume something to be true until proven. Be doubtful and avoid using expectations.
  • Tear your problem down into smaller parts, until each piece becomes trivial.
  • Start solving simple things, and gradually increase difficulty.
  • Keep reviewing your work, so that you are sure not to forget anything.

Those 4 principles seem so essential and indivisible to me that I keep them written right in front of my eyes while coding :). So whenever you feel on the edge of performing a dirty ALT-F4 in your unsaved 2000 python lines vim tab, stare at those four guys for a minut and wait. I assure you they’ll eventually help you out !

Going further, I really feel like 350 years of experience did not bring that much innovation in problem solving methodologies. Or did they ? Small increments, TDD, GTG, . . . Aren’t all those methods/concepts developments of Descartes’s principles?

When I see what he has done for geometry; I would really have loved to know what Descartes would have been able to achieve with a computer in the hands; aren’t you?

And you, which dead genius do you love to get knowledge from?

[source for principles]