Virtualization Technology News and Information
Article
RSS
VMblog Expert Interview: Ahead of Google I/O 2023, Very Good Ventures Provides a Deeper Dive into Flutter
interview-verygoodventures-deremer

Wednesday, May 10 is Google I/O 2023. One aspect of the event includes updates on major open source projects developed within Google. One very popular project within Google is called Flutter. Below, VMblog chats with David DeRemer, CEO of Very Good Ventures, the leading experts in Flutter app development. Of note, Very Good Ventures built the very first commercial Flutter app in 2018 - the Hamilton app (yes, the famous musical)!

VMblog:  For our readers, can you provide a brief background of what Flutter is along with its primary benefits?

David DeRemer:  Flutter is an open-source framework that is focused on multi-platform UI development - that means you can build apps for mobile (iOS/Android), web, desktop (Windows, macOS), and embedded (Linux) from a single codebase. While the Flutter framework itself is mainly developed by a team at Google, the open source community contributes to it as well and there is a rich ecosystem of packages and support libraries. Flutter has become the best way to create beautiful and expressive user interfaces for any screen. This means that a company or team can build a product with consistent look and feel across many devices with little to no code duplication and the overhead that usually comes with multiple codebases. It's a massive efficiency in terms of the cost and effort to build applications with no sacrifice in quality or capability.

VMblog:  With respect to Flutter, please describe what Very Good Ventures offers? Can you list some of the organizations that have worked with Very Good Ventures to create Flutter-based applications?

DeRemer:  Very Good Ventures has been specializing in Flutter since 2018 when we started to work with the Hamilton application, which was the first major commercial app built with Flutter outside of Google, and also partnered with the Flutter team at Google to showcase what's possible with Flutter. Since then we have worked with many organizations to shift their development efforts to be more focused on Flutter and in turn evolve their own standards and practices for their engineering and product development teams. We have been able to work with companies such as Betterment, American Airlines, Dow Jones, and Toyota over the past few years to help them through their Flutter journey. While we excel at building high quality scalable applications with Flutter - after all, we have more Flutter engineers and more experience than anyone out there - we've really focused on building consistent scalable patterns, processes, and developer values. Many of our clients benefit as much from the cultural impact we have on their teams as they do from the code we deliver.

VMblog:  Can you elaborate more specifically about Very Good Ventures processes and best practices when it comes to Flutter development?

DeRemer:  At Very Good Ventures we have a very opinionated way of developing applications, and Flutter multi-platform nature really helped us hone our values and practices. Our team can build apps for almost any screen with the same programming language and developer tooling, so this means we can really focus on how and why we do things. Our best practices have been honed over many different projects to ensure that they can scale from a single developer on a single application all the way up to a global organization with developments spread across many different continents. As a consulting team, the need to scale our people but also have high skill portability so that teammates can move between different projects is extremely important. For instance, we commit to 100% test coverage and have tools to ensure our teams maintain that. The practices we follow ensure each team delivers the quality we expect consistently, and that all teammates know what is expected. As it turns out, the best practices we've developed to help our team grow and scale are just as valuable to our clients.

A lot of our process revolves around the idea that a codebase should be boring. The reason behind this is due to the nature of application development and the fact that apps are a living and evolving product. With our approach it's easier for any developer to join a product team and be up to speed and contribute to a codebase on the same day rather than requiring a long ramp up period to familiarize themselves with the patterns and operating rules of the project.

One thing that sets Very Good Ventures apart is that we do not keep this opinionated and "boring" approach locked in a drawer: it is part of our core DNA to work in the open, following Flutter's principle of being open source. We have a dedicated team working precisely on this philosophy (see vgv.dev), turning our opinionated approach into developer tools, many of which are open sourced, that can be reused and applied in any project. Our goal is to not only make our team better and deliver better results for our clients, but also improve the Flutter community by sharing our tools and methods. By elevating the quality of any Flutter product around the world, we make Flutter a more confident option for businesses, which increases the total addressable market for our skills and services.

VMblog:  How does the use of Flutter impact a software development team's culture?

DeRemer:  We've worked with so many different companies and products that we have seen one consistent change during our time with them - a change in culture to be more focused on collaboration and consistency. Typically, a software organization is split up by platform or codebase in order to drive efficiency. For instance, there may be a dedicated iOS team and a dedicated Android team, and in some cases they might be completely siloed. With a Flutter-based approach, these walls don't exist and instead development teams can be less focused on the platform they develop for and more focused on the product that they are developing. We have seen organizations completely re-orient their development teams, and often their other teams (e.g., design, QA, PM, etc), to be organized around the product or specific feature areas instead of the technology. As a result, a team has more control over the product's experience across device types or touchpoints to a level that has not been typical in the past. It also means that the product can iterate and evolve faster because teams can focus on implementing features rather than coordinating and aligning multiple renditions of what ultimately aims to be the same product. The cultural re-alignment then drives other organizational changes as the bottleneck changes from engineering implementation to some other factor that then needs to be addressed to fully respond to customer and business needs.

VMblog:  If an organization is considering a Flutter based application, what are a few tips you would offer them? 

DeRemer:  Have an open discussion with your engineering team on the topic and lay out the drivers for the decision. In Engineering organizations there tends to be tribes of people that identify with a certain technology choice that may have been made long ago and is now not fulfilling the need. This will be a hard change for some teams but allowing them to hear and understand the need for the change is typically what can get everyone aligned on the new way forward. On top of that, carving out some time for development teams to actually spend a day or two playing around with Flutter and getting them to see the power it provides first hand is a sure trick to convince someone that the change is worth it. We have seen skeptics turn into believers in a matter of days once they sit down, try it out, and realize that a tough problem they have had to solve in the past has become a simple thing to do in a more modern UI framework. Making a technology change can be a career shift for the team, so it's vital that the team sees for themselves that Flutter gives them even more abilities and opportunities than they had before.

Also, it's vital to get some help in the early stages. As great as Flutter is, a team can still architect a terrible codebase that performs poorly. Often times teams try to build a Flutter app with patterns they are familiar with and perhaps borrowed from other platforms - this can lead to serious problems. The community has a lot of great resources and tools to help companies get started, and of course there are companies like VGV that can help set up a codebase and a team effectively to scale from the first commit.

VMblog:  Why should an organization who is considering building Flutter application(s) consider Very Good Ventures rather than go it alone? 

DeRemer:  If your organization is thinking about moving to a Flutter based development path then bringing in Very Good Ventures would be a boost of confidence not just to stakeholders but development teams as well. With our team's extensive experience there are not many problems that we haven't had to tackle already when it comes to a Flutter implementation. We often joke that we've made the mistakes already and learned so that our clients don't have to. We also have a large team of Flutter engineers - far more than most companies will be able to hire or have access to - so that means that if we face an issue, we can usually find someone who has seen or tackled it already.

Most importantly, our designers, product managers, and engineers are there not just to write code, but also to improve the client's team by working with them hand in hand on implementations. We see ourselves as strategic partners that build products, but also help shape teams, process, and culture. Our goal is to ensure that our clients are building the right thing, building it the right way for long term sustainability, and setting up the team itself to be successful long after our engagement.

##

Published Tuesday, May 09, 2023 9:00 AM by David Marshall
Filed under: ,
Comments
There are no comments for this post.
To post a comment, you must be a registered user. Registration is free and easy! Sign up now!
Calendar
<May 2023>
SuMoTuWeThFrSa
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910