It has been over a year since I started serving in the Armed Forces of Ukraine (ЗСУ), and more than 9 months since I assumed my position at the Military Institute. Our department is responsible for training IT specialists for the AFU, National Guard, and other defense forces. As our instructors often say, “We are preparing intellectual special forces.”
Within the computer science education program, cadets learn a wide range of technologies, information and computer basics, operating system fundamentals, data structures, algorithms, databases, programming languages, frameworks, and methodologies. Sounds impressive, right? While that’s true, it’s not the complete picture.
The predicament is that many cadets, upon graduation, will not serve as IT developers or even system administrators. There is a substantial demand for minor officers and communication commanders in our army.
Conversely, our military also requires many skilled IT specialists with robust development experience. During my tenure at the Institute, I have often been approached by headhunters encouraging me to transition to another position within the Department of Defense, since they are always looking for qualified specialists who have already been mobilized.
That’s why I conceived the idea of enhancing our education program to train cadets to work as a team. The Institute, and, frankly, most computer schools, predominantly focuses on technologies, rather than processes, so students may not have a real-world understanding of how to carry out projects. To shift our approach to team-based learning, I enlisted one of our most adept educators, and we have recently initiated it as a pilot project with a select group of cadets. We have focused on teaching about the full development lifecycle and how processes are executed while a team is creating and delivering a product to a customer.
Our project encompasses several roles: cadets as developers, our teacher as the customer, primary product owner, and stakeholder, as well as the primary source of feedback and challenges (akin to the real world). I am assuming the roles of team leader, solution adviser, and, temporarily, a project manager to provide them insight into the responsibilities associated with these positions. The cadets are also assigned roles such as a designer, front-end and back-end developers, and a database maintainer/administrator. Among them, team leaders are appointed for the back-end and front-end teams. The PM will take over after me soon.
From the outset, we explained the requirements – the objective is to create an online marketplace for used military equipment. That’s it; that’s our startup. We gave them the freedom to select the technology, framework, and database of their choice.
Our aim is to replicate the real-world development lifecycle right from the start. Their initial task was to craft their own resumes. I informed them that typically, they would undergo technical and customer interviews. However, for the sake of this project, we would skip those steps and assume that they have already been approved and selected to participate.
Presently, our initiative includes:
- Daily meetings
- Sprint planning sessions
- Team communication through chat
- Trello board (with plans to transition to Jira soon)
- Story point-based estimation using planning poker
- Figma board for UI / UX design
- Sprint retrospectives
- A local development environment
- Team meetings to address ongoing issues
- A wealth of enjoyable moments and a truly distinctive experience, not only within our Institute but, I believe, across other IT education institutions as well.
My principal intention was to provide them with a taste of how software developers operate in the real world. Moreover, from the perspective of military education, this initiative resembles polygon training, closely simulating a battlefield environment. Currently concealed from the cadets, our strategy involves orchestrating unexpected alterations to our demands, aiming to challenge them and simulate the unforeseeable dynamics of real-world software development.
In this approach, what we are doing takes a back seat to how we are doing it. Cadets are learning how to estimate their tasks, collaborate as a team, devise plans, communicate effectively, pose questions, and take responsibility for their choices, and of course how to implement their knowledge in practice. In the future, they will also delve into deployment and practical implementation of CI/CD processes.
I deliberately refrained from influencing their choice of framework and database. As a result, I now find myself leading a Java development team, which presents an additional challenge since I am unfamiliar with Java and must now acquire proficiency to align with my backend developers.
What truly fuels my enthusiasm is witnessing my cadets’ inspiration, motivation, and determined effort. This endeavor offers them an unparalleled experience that cannot be replicated elsewhere.
In my opinion, this represents my most significant achievement thus far.
August, 2023