A Developer and Ex-Naval Officer’s Guide to Team Management and Agile Deliveries – this is the first piece of a two-part story.
Introduction (Part I)
Before my current life as an Engagement Manager at Outfit by Devoteam, I was an Engineer Officer at the Portuguese Navy for 8 years. Despite the clear differences between the two jobs, there are a significant amount of tools, mindsets and soft skills that I’ve learnt as a military person and as a crew member of a fighting frigate.
As a Damage Control Officer in the frigate N.R.P. Vasco da Gama, I had the opportunity to participate in a NATO training exercise called Operational Sea Training, where we fought along and against other NATO ships, for 1 month, to train our battle organization procedures and improve our skills throughout the required fighting standards.
That period was one of the most engaging months that I had in my life. The ship crew was constantly challenged with exercises during battle scenarios which allowed everyone to increase their learning curve and achieve the standards desired.
Here, I will bring the top 3 mindsets that allowed us to accomplish our goal in the exercise as a crew, which can also be used in our daily lives delivering IT projects.
Mission and Priorities
Every time we went to the sea, our command established the Mission and the Top 3 Priorities. On the battle exercises, we also had this procedure. A typical mission on those exercises would be:
Protect the High-Value Unit, through the navigation plan, with an available maximum speed of 32 knots
Also, based on the intel gathered for the scenario, in case of having higher threats from fighting jets and other ships, the possible Command Priorities would be:
1. Anti-Aircraft Warfare
2. Anti-Surface Warfare
3. Anti-Submarine Warfare
And so, with those sets of Mission and Priorities, all crew members would know the ship’s goal in that fight. It is usual for you to think that these actions were just standard procedures without any real effect on the operational teams, so let me show you how these were key success factors to achieve our goals.
My team belonged to the Internal Battle organization, where the main goal was to maintain the ship ready for battle, in terms of systems, sustainability and crew management. In a possible scenario of having limitations in some weapon systems (for example, Air Defense or torpedos launcher) and in propulsion and steering, by looking at the Command Priorities established before, it becomes clear what our Internal Battle Priorities should be. If our threats come from air and surface, then we would need air defence, speed and agility. And so, the priorities should be:
1. Recover Air Defense Weapons
2. Increase Available Speed
3. Recover Max Steering Capacity
These 3 priorities were only possible to establish and measure by looking at the Command Priorities and knowing the systems to focus the attention to maintain the battle capacity. This top-bottom priorities establishment ensures that everyone works towards the same goal. Considering the Internal Battle priorities, it was also possible for me to build the Damage Control priorities based on the air defence capability, speed and steering. For that reason, I established these priorities for my teams:
1. Extinguish the fire in Phalanx Command Room
2. Finish the shore in Gyro Room
3. Repair the Steering Pump nr2
The first priority ensures that a repairing team can access the Phalanx control (which is an air defence weapon) to repair it. The second ensures the speed by preventing the entrance of water in the Gyro Room with the ship’s velocity. And the third ensures the steering capacity.
The IT Project Delivery World
By comparing these battle scenarios with the challenges we daily, it is possible to find some common points between them. Imagine we have a project with this goal:
Deliver the Medical Management application with quality, ensuring the budget and calendar control
And since we are in the middle of a sprint in the development phase, we might have the following Delivery Priorities:
1. Define Sprint 3 backlog
2. UAT Bug Fixing
3. Align Budget Status
With these priorities, it is possible for the Delivery Specialist to know where we are in the project and what needs to be done to achieve the next phase. Also, using the same top-bottom strategy from the battle organization, the Tech Lead can analyse and build his own tasks and priorities that are aligned with the delivery and with the project goal. For example, in this case, he could consider as Tech Lead Priorities:
1. Manage Bug Fix effort with Sprint 1 development
2. Define JSON Structures for Hospital APIs
3. Support Delivery in Sprint 3 backlog
By looking, you can see that these are completely aligned with the delivery of the current project phase. For sure it was easier and more direct for the Tech Lead to know his priorities by having a map from the top. And, once again, we can even go more top-bottom as we did in the navy. With the Tech Lead engaged with the priorities, the development team and each developer can define its tasks accordingly with delivery alignments and, more closely, with the Tech Lead’s priorities. This could reflect, for example, on the following Developer Priorities:
1. Finalize US35 and US36 to close the backlog
2. Deliver the Bugs list fixed in DEV
3. Update Sprint status in Jira
You can see that these tasks are much more operational than the delivery priorities and it makes total sense since the developers are the core operational team that builds the solution. So, if they are the ones setting the stones to build the cathedral, the more their mindsets and tasks are pointing towards the delivery and the project goal, the more likely it is for them to help the Tech Lead achieve his priorities.
This line that flows from the delivery to the development, that finishes in the project goal and glues all the priorities together, is a huge key success factor for a high-performance team. But establishing the priorities is not enough for the plan to work. If you only do that, they are just words on paper. To bring an effective engagement of each team member and a perfect alignment, it is necessary to communicate and ensure an understanding of the priorities. We are not robots. Each person needs to believe in the goal to fully be engaged.
If the team works on the goal, establishes and updates their priorities, and add to that, communicates and ensures an effective understanding, it will be pointing to a decentralized leadership, where everyone has the knowledge to be his own leader and to decide the best path towards the goal of delivering the project with quality.