Lessons learned during my time in Flywire
I joined Flywire two years ago with the expectation of joining a team in which I could grow both personally and professionally. Before I move on to the next step in my career, I wanted to dedicate some time to writing down the most valuable lessons I’ve learned from working in there.
From the moment I graduated from university, my goal was to achieve technical excellence. Joining an Extreme Programming (XP) team such as the one in Flywire seemed like the right choice. Looking back, I can confirm that it definitely was. It took my technical skills to the next level.
However, the most important lesson I received it wasn’t related to the technical knowledge that I gained. Instead, it involved a mindset shift about how I approach software development. When building a product, software is a means to an end and not an end in itself. I learned that the ultimate goal is to deliver the value contained in the user stories and keep it always just right for the current needs. Here’s when practices such as Simple Design, Pair Programming, Test-Driven Development and Design Improvement deliver all its value.
As I was polishing my technical practices I also noticed the extent to which interpersonal skills play an important role in the development process. Since developing software is a team effort, maintaining communication and a good relationship between team members is key to completing the team’s goal. Ironically, we developers, aren’t known for our soft skills. Hence, I focused on improving my communication in order to become a better team member. For instance, the talk Think Fast, Talk Smart helped me overcome one of my main problems, which was that my speech lacked of structure. Consciously practicing storylines such as “Problem>Solution>Benefit” or “What is it?>Why it’s important?>What do we do now?” made my arguments easier to understand.
In addition to improving our interpersonal skills, I learned the importance of establishing certain dynamics to help the communication flow. Theses processes should keep the engineers, product and the business aligned. Carrying out quarterly planning, applying goal frameworks such as OKRs, or the Planning Game, with dynamics such as Story Mapping, helps to reach that alignment.
Another factor I didn’t take into account before joining Flywire was the importance of releasing early and often. In this manner we deliver the value quickly and we receive feedback from our users. At the end, software that isn’t in production is useless software. Some XP practices such as Small Releases, Continuous Integration, Ten Minutes Build, and, Continuous Delivery help to get this done.
In sum, these two years surpassed my expectations and changed the way I approach software development. I started out by going after the technical excellence, but along the way, I realized that software development is much more than just technical expertise.