by Andrew Hogan
May 15 - May 20
This summer, I was offered an internship to operate with the Unified Workflow (UW) software team under NOAA -- the National Atmospheric and Oceanic Administration. NOAA is an American scientific agency that forecasts weather, explores the deep ocean, protects marine life, and researches all of the above. My role for the summer will be to work alongside a UW team reviewing and learning code techniques and best practices and to experience and integrate into an agile work environment.
During my first week of onboarding, I was tasked with getting familiar with many of the tools the unified workflow team utilizes as well as to read up on the concept of an agile work environment. What was that supposed to mean?
When I first heard about Agile, I didn't quite know what it was. A program? A framework? An adjective to describe the workflow? As it turns out, I wasn't too far off the mark. It's actually a combination of all of these, in addition to it being an almost cult-like philosophy on the most meaningful way to develop software.
The story goes that 17 "heads of software," as I'll call them, came together on a business trip to discuss software development practices and find common ground on its process-- and to go skiing. The result of this summit is a manifesto defining principles of the software development culture many industries use today, creatively named "The Agile Manifesto."
On first appearances, Agile can feel very overwhelming. So many tools and techniques to learn, so much organization to adjust to, new terms and words for team management. Right away, I felt the need to begin treading water. Thankfully, my peer advisor, Christina, pulled together and centralized much of the information I'd ever need to know about the process into a concise wiki for my perusal.
The Friday of this week was the end of a sprint for the team, and I was invited to experience the the retrospective for the end of one sprint and planning for the next one. It was here that I was briefly introduced to the team and met the many personalities I would be having the privilege to work with, as well as experienced an introductory firsthand account of the retrospective stage in development.
Overall, I feel my first week with NOAA was a good mix of all the emotions I would expect. I felt bombarded with some of the new tools and websites I signed up for, namely JIRA, Confluence, Slack, Scrum, and even some I've used before but will need to brush up on, like GitHub and conda. These will just come with time.
I definitely had my moments of imposter syndrome and wanting to remain humble regarding my skills. The language of choice for applications is Python, and I made the good mistake to examine a schedule application written with very elegant Python that I had not seen before. I don't imagine this will be the first time I'll feel out of my depth, but I also yearn for the opportunity to learn where such code can be learned. I at least can pride myself on being a quick learner, but I believe immersion and willingly challenging myself to move out of my comfort zone will be key to mastering all sorts of new techniques, and I'm excited to dive in.
I'm looking forward to what Week 2 brings.