Published: April 29, 2018
Ok first of all of i'm not really telling you that doing software development you would become a Spartan. What i'm saying it's the Spartan mindset and how they operate. Which is shaped by their hash training and their perception on war. Based upon a book that i just finish reading called "Gates of Fire" by Steven Pressfield.
If you had not read the book i would recommend for you to read it especially your into military or had watched the movie "300". Which is loosely based upon the battle for Thermopylae that lead to the death of 300 spartans during the persian empire invasion. It reminds me of the software craftsmanship movement which focus of viewing software development as a craft.
The perception of war to Spartan they treat it as a work that they must do to their utmost perfection. In service to protect their brothers in arms, family, friends and their country.
For me feel that as software developer our main purpose should always be to do work which deliver value for the customers, users and the organisation that uses this piece of software that you had wrote to improve their quality in life.
For Spartans they go on a 4 day field exercise where for the first day they have half rations then incrementally on the last 2 days they are not allowed a single drop of water and food to simulate war time enviroment that they might require to operate despite being hungry or thirsty.
This is could be related on the times where your on tight schedule to release your software to write a new feature. Which might took you days of frustration on how to accomplish it despite you had never done it before.
In order to perform at their best in times of war. Spartans are trained endlessly on their fundamentals in shield formations, how to use their weapons even the position of how they have to place their shields when they are resting.
To me it relates training ourselves to effectively use our tools, processes and habits to deliver software. Like example creating test cases, writing proper documentations, understanding software data structures or software architectures to allow us deliver software as effectively as possible.
We need to adopt the mindset of a spartan on how they view war. Keeping in mind that we need to strive for excellence through continuous learning and being better at our craft for software development.