During my service in the US Marine Corps I took a special duty assignment in the company armory. The armory was a mysterious place which until my assignment I knew little about. After struggling during my first few months to learn the ins and outs, I felt comfortable enough to start to run things on my own. It was then that I knew the entirely paper-based system had to change. Over the course of the next 12 months I learned, iterated, and launched a successful database program in Microsoft Access dubbed the Armory Manager.
Product Requirements
The Armory Manager replaced entire binders of paperwork and numerous Microsoft Excel spreadsheets which often contained outdated information and were difficult to keep track of. The ultimate goal of the Armory Manager was to increase redundancy, improve accuracy, and ensure uniformity.
Before I ended my service in the Marine Corps, the Armory Manager was capable of
Generating complex forms which were standardized to Navy and Marine Corps orders
Tracking historical inventory, location, status, and assignments of weapons, optics, and accessories
Producing reports of assignments, rosters, maintenance items, and monthly in-depth inventory trackers
Provide the source of truth for items located within the armory
Running independently of any cloud infrastructure or internet connection, an often occurrence for the locations we often occupied
The Armory Manager was capable of generating complex inventory forms which were required for each of the Marine Company’s 180 members. Marines would often change units or need to be issued different items requiring a new form to be generated.
My Role
I started my service in the Marine Corps in the fall of 2011 initially as an Infantry Assaultman, or in simpler terms, the one who employed rocket launchers and demolitions. While I was always interested in technology and systems, I had a strong interest in serving my country and the infantry seemed most appealing to a young 18 old boy. That interest waned however as the wars of the 2010s came to an end and most of our time was spent in garrison. It was in 2014 that I took a special duty assignment in the company armory.
Prior to working in the armory, I had very little experience with database design, SQL-based report generation, and systems architecture. I had been a user of homegrown systems in my previous role at Walled Lake Schools but knew little about how they worked. Since the DOD required all systems to be run on approved mediums, I was stuck using Microsoft Access for the Armory Manager. I was the sole product owner, developer, and oftentimes, the only user. Before I attended college at the University of Houston and had an understanding of Information Systems concepts, I spent many hours on Google learning about table normalization and database design. Early versions of the Armory Manager would often take over 10 minutes to run simple reports because of non-normalized table structures.
The Maintenance Tracker provided a birdseye view for leadership to know which items in the armory were non-operational. As an infantry company, the operation of your weapons is just as important as the skill of the users and with a limited budget, ensuring as few items are non-functional as possible often took high priority.
After a very kind, anonymous web user in a Microsoft Access form shared with me one of the most important skills I have learned to date: data normalization. I spent the next few weeks mastering the skill of table normalization and the use of primary and foreign keys to build a true relational database. My concept then became very simple:
A table for racks or physical locations within an armory
A table for inventory items or a listing of possible items you might find in an armory
A table for personnel who might be assigned items in the armory
A table for assignments linking inventory items to personnel
Using these four tables I was able to generate over 15 different reports, rosters, and trackers which ultimately reduced the time spent in the armory doing administrative work by half. The Armory Manager along with the Custodian Desktop were distributed to other units for their use and I also received the Navy and Marine Corps Achievement Medal for my initiative.
One of the most important time-saving features of the Armory Manager was the generation of the NAVMC 10520 or weapons cards. Prior to the Armory Manager, each of these cards were written by hand. A typical Marine Infantry Company in 2015 had 180 members, each receiving 3-5 cards.