Interestingly, it wasn't until after I left the Army that had the unique opportunity to train with and be taught by some of Military's best. I've trained with and been taught by Green Berets, Army Rangers, Marine Force Reconnaissance, Navy SEALs, and guys whose titles are classified. I learned a myriad of skills, like weapons and tactics, clandestine and covert operations, and small and big team teamwork. While most of the training revolved around the application of these skills and the physical and mental toughness needed to operate effectively in adverse conditions, many of the lessons from a high level view have helped me in my career as a developer. I don't know if these lessons will be as profound for you just hearing them and not experiencing them but I thought I'd share them anyway. Who knew that the best warfighters had great insight into programming.
(Some names have been altered or are call signs as requested by the instructor/cadre)
First lesson, my all time favorite, by one of my favorite instructors, Cleve:
Persistence over all.
I don't feel that one needs much explanation.
A close second in terms of favorite:
Attitude is everything, keeps your positive.
You'd be surprised how many times this one saves my ass, especially while debugging.
Next, some words of wisdom from Big Daddy:
Cool breeds cool.
This one was always handed down to us during hour 10 of a movement. If you're cranky, miserable, or freaking out, everyone else will probably follow. But if you're calm, cool, and collected, everyone else will see that and follow in suit. I feel like this would be a great one for senior devs to know. If you're complaining about a projects, acting like you hate your job/boss, or freaking out about a deadline, you're setting that example for the juniors.
Another Cleve classic:
Fill, flow, and go.
Adaptability is key to overcoming obstacles.
A Marine Corps saying that I heard from Flash (the story behind his name is awesome but you have to earn it):
Never above you. Never below you. Always beside you.
This is all about teamwork and taking care of your own. You aren't better than anyone else on your team, you aren't the worst person on your team, you are part of a team. When everyone acts and feels like they are part of a team, the team can accomplish anything.
Which brings me to another Flash classic:
Stop being a fucking individual.
Seriously, teamwork, people, teamwork. This isn't about crushing your creativity or forcing you to conform or any of the snowflake bullshit. It's about thinking about the team and the mission before yourself.
I couldn't decide if I wanted to put this one on the list because I think sometimes it can be hard for Civilians to understand its meaning:
All it takes is all you got.
Or, anything worth doing is worth overdoing. I see people confuse this with obsession, or giving up everything else, it's not. It's just about fully investing yourself into your goal and not letting excuses hold you back. Maybe it works better in an ultra stressful physical setting but I've been able to apply it in the office too. When I'm writing code, or trying to learn something new, or trying to work through a problem, that's what I'm doing. I'm not also thinking about an upcoming meeting, or what I have to do after work.
I have so many more lessons (Quotes) I could share but these are the ones that stand out. I have a lot of them on post-it notes on my desk and monitors so I can look at them and be reminded of their lessons. Maybe I'll make another post or come back and add some to this one. I'd really like to start writing more posts so this was kind of a test. I hope you enjoyed this first one.
Many times as a mobile developer I have to work on apps without the API ready that was crucial for the feature I was implementing. Either the backend was developed by another team that was not entirely in sync with us or our backend team had no chance to implement those endpoints earlier. For this reason, I was not able to satisfy the Definition of Done but it does not mean that I have implemented the UI only.