The tech landscape shifts constantly, with new ideas and approaches emerging all the time. Thoughtworks stays ahead of such technology trends by tracking the latest developments and assessing the implications of emerging technology - to help our clients create a strategic advantage for their business.
Let us look at how this actually translates to on-the-ground project work. There were a few projects, in quick succession, where I worked on new, different and emerging technologies. This blog delves into how my team and I succeeded at ‘building capability’ while delivering high-quality code, upholding the best engineering standards.
I helped build the dating website of a leading newspaper in London, leveraging the tech stack of Scala, MongoDB and AWS
- My next project was to build an online booking website for a metropolitan cultural organization using RubyonRails and Postgresql
- Then, I helped build a large-scale global CMS platform for a leading consumer electronic company using the Play framework with Scala, Apache Camel and MongoDB
A key part of our teams' successes lie in the strength of our cultivation culture. This is what makes us unique as an organization; we truly believe all opinions and perspectives should be heard and this comes to life by:
- Regularly requesting, giving and receiving feedback
- Spotting and nurturing potential
- Teaching and learning from others
- Creating safe spaces where everyone is respected
Following is how we have adapted the principles of our culture of cultivation to building capabilities that help adopt new emerging technologies:
Extreme programming engineering practices for every kind of technologist
We follow the agile methodology to build software and adopt engineering practices, such as test-driven development (TDD), clean code and refactoring, continuous integration and delivery, pair programming, user stories, etc. These practices enable us to deliver high-quality code irrespective of language or framework.
Our focus on engineering practices that have won the test of time and complexity is evident in customized initiatives like the ten-day technical workshop called Bootcamp. The workshop is designed for all new joinees across roles at Thoughtworks.
We also run a program called Neev for entry-level hires. This program functions as a transition space from academia (or a non-technical background) to a professional tech consulting environment. The Neev core team works closely with program attendees throughout the cultivation and integration phases during the candidate's first year at Thoughtworks. And a Leadership XP Champion workshop is carried out for senior employees at the company.
Focus study groups for project teams on a learning curve
During development, project teams create focused learning groups. An example is the groups for Scala, MongoDB, AWS and Solr that my project teams and I formed aligned to the aforementioned projects.
These groups spend time:
Reading, learning, exploring and researching the topics in question
Implementing best practices on codebase based on their new learnings
Conducting knowledge-sharing sessions on related topics, organizing regular brown-bag and lunch-and-learn sessions. In fact, every week, teams would take turns to present their learnings, best practices and suggest changes. We would also run mob-coding sessions
Identifying a technology guide or advisor or mentor to validate our approach where we would incorporate their suggestions and guidance into our learning journey
Curating learning paths for new joinees to the project teams
Most Thoughtworks projects have one or more relevant tech stack experts who function as anchors. Our approach is to build the team around technologists proficient in other required languages and frameworks. This way, we encourage a more generalist approach when it comes to developing technical skills.
Accounting for ramp-up/onboarding during project planning
Such learning journeys are not only about the individual. We work on effective team learning plans and accurate accounting for the team's ramp-up and onboarding when on the learning curve for new technology stacks.
When working on new technologies, we begin by assessing the team’s capabilities, strengths and gaps. For instance, in such a scenario, an individual’s contribution to the team velocity is ramped up only in stages.
In such situations, the client’s role is very important. Their support for the proposed ramp-up plan and the learning paths for new team members is critical to the project’s success and team morale as well.
Organizational support for continuous learning journeys
Numerous learning opportunities are available within organizations and outside for self-paced learning. Here are a few examples:
Every Thoughtworker has access to multiple global online learning platforms designed for professionals
We also have access to an internal learning platform that features in-house-built online learning courses alongside instructor-led workshops. All the in-house courses are curated by Thoughtworkers. An example is the Rise of the Containers (ROTC)
Every Thoughtworker has an individual budget for learning and development with which they can buy books, pay for additional online courses and attend external workshops
Community-driven social learning at project, function and organizational levels
Aligned with our culture of cultivation, we are proactively community-driven and that applies to how we look at learning and upskilling as well. Personally, I am encouraged and motivated by listening, pairing, talking and brainstorming with fellow Thoughtworkers.
We have several forums to share knowledge like the lightweight technology forum, Stackoverflow. We also use simple mailing groups and chatting on slack-like channels for skill-specific groups – this helps us connect, share and collaborate globally. We promote speaking at internal and external technology events like Geeknights, Quick bytes, VodQA, XConf etc.
For technologists, it is always exciting to work on a new, emerging technology stack. Part of that experience is also making the stretch on-the-go to ensure high-quality delivery of technical solutions. Proactively leveraging avenues for self-paced learning, learning and development budgets, online learning platforms and skill-based workshops to build capabilities fulfill not just project requirements but further technologists’ career growth as well.
Disclaimer: The statements and opinions expressed in this article are those of the author(s) and do not necessarily reflect the positions of Thoughtworks.