Treating Software Development Like Your a Spartan

"Tell the Spartans, stranger passing by, that here obedient to their laws we lie" - "Gates of Fire" by Steven Pressfield

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.   

Purpose in Building Software 

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. 

Building Spiritual Strength Through Adversity

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.

Excellence Through Training

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. 

Conclusion

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.

Reference

Software Craftsmanship

http://manifesto.softwarecraftsmanship.org

Software Craftsmanship – why you should be proud to be a developer

https://jaxenter.com/software-craftsmanship-why-you-should-be-proud-to-be-a-developer-119970.html

Gates of Fire by Steven Pressfield

https://www.amazon.com/Gates-Fire-Novel-Battle-Thermopylae/dp/0553580531