“The art of teaching is the art of assisting discovery,” Mark Van Doren said once. Every student’s journey to knowledge is unique and different. This applies to Flutter as well. Whether you are a small startup trying to find your place in the world or a large corporation exploring new ways to provide value faster to your customers, your “journey to Flutter” might look different. All reach the same result: performant and delightful experiences getting built in record time!
It is impossible to deny that agencies play a vital role in this mission. By working with various partners, agencies develop a unique point of view on how to successfully drive the adoption of new stacks, frameworks, libraries, and patterns. That’s what makes agencies serve as partners of incalculable value in the “journey to Flutter”: Their exposure to dozens of projects at the same time means that they have seen it all. Agencies have already made the mistakes and learned how to recover, so they can keep you from falling into the same traps.
How it all started
Back in 2018, Very Good Ventures (VGV) built the official Hamilton mobile app. This app was the first large-production app built with Flutter outside of Google. Since then, we have reunited some of the best talent worldwide and developed a vast amount of high-quality products. We’ve helped all kinds of companies to deliver outstanding Flutter products while upskilling their product teams. Every time we do this, there remains one constant: Flutter.
We’ve partnered with more than 50 companies in their journey to Flutter. VISA, American Airlines, SlickDeals, Policygenius, Tyson Foods, and Accenture represent just a few that benefited from our Training program. This five-day workshop focuses just on the fundamentals of Flutter, plus a multitude of office hours, code-pairing sessions, exercises, and code reviews.
If it works for us, it must work for our partners…
In 2018, when VGV started its journey to Flutter, little content on Flutter and Dart could be found. Still, its rapid success and growth demanded a new internal approach to upskill new developers joining the team. It didn’t matter if these developers were at the beginning of their professional journey or well seasoned. This resulted in our VGV onboarding program. This two-week internal program showcases how to become a VGV employee and obtain the necessary knowledge, processes, and standards on the effective use of Flutter and Dart.
The onboarding program succeeded and rapidly helped our engineers master Flutter and Dart! Many of our partners, curious about our success when welcoming new teammates at VGV, asked us if they could use the same onboarding program to upskill their developers: Thus, Very Good Training was born!
Similar to our approach when creating new open source tools, we realized that if an internal initiative adds value to VGV, it will most likely add value to our partners. As we use our own approach internally, it is in our best interest to keep our training approach relevant, up-to-date, consistent, and effective.
Our training program assumes that every developer has covered the fundamentals of object-oriented programming. These developers know classes, objects, functions, visibility, mutability, and installation of dependencies. After all, this training takes place in a professional setting. Still, students receive a list of prerequisite activities: As an example, we always request our students to watch the fantastic talk from Brian Egan, Keep It Simple, State: Architecture for Flutter Apps.
The goal is to let developers explore some of the most basic Flutter concepts so we can start our training on a solid foundation.
Over the course of five days, we dedicate ourselves to upskilling our partners through our training program. Students attend presentations, do hands-on exercises and code labs, and have full access to a group of experts ready to answer any questions. At the end of the program, students will have completed a fully tested and functional complex application, available for Android, iOS, macOS, Linux, Windows, and the web. They will receive a certificate of completion for the Very Good Training program and be ready to take their company’s product to the next level in record time!
Tips and tricks for an effective Flutter training program
It’s all about culture! A trainer must be the first cheerleader of the group, must be patient and gracious, and be able to inspire and awaken the student’s minds. A trainer must be the ultimate example of a healthy, engaging, and empowered engineering culture. An excellent teacher can do magic with horrible content, but a horrendous teacher will do an awful job even with superb content.
Be consistent and develop a point of view. You can build a successful Flutter product in many ways. This can be impressive unless you choke on so many options and don’t know which one you should pick. For example, consider state management. Many good options are available, but in our experience, invest in to one and build expertise on it. Since 2019, VGV has committed to use and invest in flutter_bloc. While we are familiar with many other tools, growing with flutter_bloc has allowed us to build standards, upskill our developers, find consistent and develop scaling solutions that the whole team understands.
Allow yourself to be vulnerable. Trainers are constantly exposed! While presenting a topic and sharing their knowledge, the audience can ask any question. This can be tremendously intimidating. A great trainer needs both an enormous amount of confidence in themselves and humility in their interactions. When they have an answer, they share it with grace, but when they don’t know something, they simply respond, “I don’t know the answer yet, but give me a little bit of time, and we can figure it out together”
Practice, practice, practice! Balancing the ratio of presentations to exercises creates a successful training program. After all, engineers add value by writing code (well, many times by deleting code too!), not by watching presentations! The best educational approach uses lectures to plant the knowledge seed, while writing code allows students to solve the problem, watering their knowledge plant.