How We Grow and Learn

How We Grow and Learn

Continuous learning is our motto. We share how we foster an environment in which learning is encouraged and most importantly materialised.
Olivier Robert
Olivier Robert
March 05, 2018
Company

Being a software developer, UX/UI designer or product manager nowadays require spending a fair chunk of time and efforts to stay up-to-date with the current trends and best practices. What has been taught in formal education institutions is only the foundations onto which — and thanks to which — new learnings will be acquired continuously later on.

Sometimes this can feel like an arduous and never-ending quest 😰 New technologies and applications are continuously being released with each new tool asserting to be better and more suited than all the existing ones. As geeks, we also naturally tend to be attracted to the new shiny things. The Fear Of Missing Out can fuel the anxiety of being out-of-date or not knowing the latest methodology to do something. But that’s not all. There is no denying that software development has become more complex. This trend is not going to stop anytime soon. For someone new to the industry, the road ahead to just get started can seem overwhelming.

At Nimble, as we wrangle around different stacks and systems, the need for continuous learning is even more exacerbated. Whether we are architecting new applications from scratch or transforming existing applications, we strive at providing the best solutions to our clients.

Thus, we are entrusted to research and select the best-suited technologies and tools for the applications that we will build. But this trust and freedom come with the responsibility to make the right decision. We take this very seriously as we believe applications must have strong foundations — often the “invisible” parts of an application — to build experience users will love. In addition, we want to build applications that last and scale over time. Knowing and picking the right technologies is paramount.

We need to keep honing our craft so that we are always able to deliver the best product that can be built. In this post, we will share how we foster an environment in which learning is encouraged and most importantly materialized.

Continuous Learning

One of the very first thing that every new teammate does when joining us is to spend a few weeks on training. This initial assignment covers both internal resources such as our knowledge base — named “Compass” — and external resources such as online courses and technical books.

Through Compass, new teammates learn how we do things internally. Our knowledge base covers technical topics such as style guides for many stacks (Ruby, JavaScript, Swift or Java), version control and code reviews. But it also covers non-technical topics including our UX/UI, product management and team processes. We continuously update our knowledge base so that it stays in sync with how we work as a team. Compass is truly a living document edited by the whole team.

As for external resources, every teammate has access to a handful of curated platforms such as PluralSight, Ray Wanderlich (iOS) and Upcase (Ruby), plus our large library of digital books from The Pragmatic Bookshelf, Leanpub or Gumroad to name a few.

Initially, the goal is to bring new teammates up to speed on a few topics they might be lacking knowledge in. But afterward, everyone is encouraged to pick any courses or learning tracks they are interested in. Sometimes, the learning could be tied to the preparation for a new client project or side projects. Other times, the learning needs have been discussed during quarterly one-on-one sessions.

Easy visual management of continuous learning efforts via a Trello board
Easy visual management of continuous learning efforts via a Trello board

We make these resources continuously available to everyone as we believe that learning is an integral part of our work. Everyone can manage freely when and what they want to learn. The progress on learning is tracked via our aptly-named Trello board: Nimble University.

Growth Sessions

We like to build things. All the time. That’s what motivates us as individuals and as a team. Therefore, every teammate has the possibility to work on a side project of their choosing. Progress and time allocation is managed on a monthly basis. Then everyone has to present their project at the end of a Growth Session.

These sessions have been architected to be a mix of investment and hacking time.

Some of the initiatives that have been undertaken aimed at improving our internal processes (e.g. setting up a CI/CD server for web or mobile applications, defining our JS ESLint rules or reviewing the existing monitoring tools for Ruby on Rails applications). These projects are an investment in ourselves as we are working on ways to improve what we are doing.

Other projects allowed us to investigate new tools and libraries, or even venturing into entirely new territories. For instance, we did our initial forays into React Native, AR or VR during one of these sessions. So we get to learn new tools, frameworks, and languages on a regular basis in a practical way: by building something with it. We go beyond the theory and try to face real-life issues as early as possible.

We 💙 Open Source Software (OSS). That’s why all the results of our learning during Growth Sessions are open sourced on our Github organisation account.

Retrospectives

As one of the tenets of agile methodologies, retrospectives are a relatively new addition to our team processes but now play an important role. They are held every two weeks and organized by stack(Web, iOS, and Android). We use these sessions not only as an opportunity to review the achievements and blockers but also for knowledge sharing.

Because our teams work on different projects and applications, they face different situations and challenges. Individuals or teams might regularly find a better way to do something, or work on something entirely new. In this case, everyone is encouraged to share how we could improve our processes, and what they have learned.

Presentations are usually done in a short format (15 minutes) with lots of demo time so it requires minimal efforts to prepare. The most important is to bring this new knowledge to the team. And sometimes to the outside world ;-)

So, even though we don’t all work together, we learn from each other and grow stronger as a team. Through the diversity of systems and stacks, we believe that every teammate can acquire new knowledge at a faster pace than they would in other environments.

Conclusion

If you have chosen the path of software development — whether you are a developer, a designer or a product manager — you need to be a continuous learner. Practice and learning go hand in hand.

We live in a truly global world where technology evolves very fast, people keep on finding better ways to do things and satisfying users becomes increasingly difficult. As the saying goes: “change is the only constant”. And the best way to face change with confidence is to be armed with knowledge and grow better each day. That’s what we are striving to do every day 💪

If this is the kind of challenges you wanna tackle, Nimble is hiring awesome web and mobile developers to join our team in Bangkok, Thailand, Ho Chi Minh City, Vietnam, and Da Nang, Vietnam✌️

Recommended Stories:

Accelerate your digital transformation.

Subscribe to our newsletter and get latest news and trends from Nimble