Investing as a child of the financial crisis

I started high school the September the Lehman Brothers collapsed. As I began the studies that would propel me to university and then onward to a career, news of bailouts, debt crises, and mortgage…

Smartphone

独家优惠奖金 100% 高达 1 BTC + 180 免费旋转




Parallelizing A Feature Across The Team

Recently Peloton introduced a new feature called Programs and Collections. Peloton Programs are curated training plans that take the guesswork out of your training by creating a week-by-week schedule of workouts that incorporate expert instructor insight to help you reach a clearly-defined goal. Collections are classes grouped in our library by a specific theme, like special events, singalong rides, and more. We started off with three programs and nine Collections for our Bike, with plans to add more over time.

Programs and Collections was a huge cross-team effort. This feature is one of the best examples of how our Android Team parallelized work across 4 team members. The final product looks something like this:

Programs and Collections

The feature has two screens. The first screen shows all the programs and collections’ thumbnails, while the second shows the details of a selected program/collection. We broke this down into four sections, and each team member was given the responsibility of one of these components:

Considering the entire feature these four seemed to be logical choices for smaller components because developers could work on their part without any overlap.

Using the divide and conquer approach helped us to keep the development process smooth and stress-free for developers. Some of the specific benefits we saw were:

Case Study: How focused development helped in delivering rock solid feature

The end result looks great, but we also made sure that the user experience and app performance are both great too. When it comes to performance improvements developers often neglect to invest time in reducing Overdraw. As the name suggests Overdraw is the number of times a pixel on the screen is redrawn. Fortunately, you could easily check if your app is redrawing pixels on the screen by enabling Show overdraw areas in Developer options; the official docs give various ways to reduce the number of Overdraws and using this we reduced the number of overdraw on our screens.

For the small number of list items we have now, this doesn’t make a noticeable difference for the end user. However, in the future when we have more list items, performance tweaks like this will help us make the scrolling and overall end-user experience great. Below are some of the before and after screenshots showing the overdraws reduced.

Before fixing the overdraw
After fixing the overdraw

We take pride in our team’s communication. When working on independent chunks that contribute to a bigger feature, it is important to communicate the changes. We often schedule quick chats to discuss the approach on something, which helps keep everyone on the same page, gives consistency to the code, and makes sure there were no surprises in pull requests, ultimately making a review of pull requests quick.

Case Study: How communication made it easy to overcome a technical challenge

Apart from occasional merge conflicts we never really had any major problems related to development. However, there was one technical challenge worth mentioning. The programs details screen required the section details to snap to the top upon clicking a section tab. However, RecyclerViews’ default behavior doesn’t allow this. Everyone had some suggestions, so we had a quick team chat to narrow down to one or two approaches. When the PR was finally created for this task, everyone on the team understood the approach we chose and was on the same page. Below are the screenshots for before and after the changes:

Default scrolling behavior
Expected behavior

This is just one of the examples of how we parallelize work at Peloton. The divide and conquer approach helps in tackling big features, while we prepare for the fact that the implementation will be different for every feature. Regardless of the size of your team, this approach can help build a robust feature.

Add a comment

Related posts:

Hiring Women In Technology

As a leader in technology, I am committed to empowering my organization and teams through the adoption of far reaching goals in diversity and inclusion. Included within that objective is a commitment…

Mirroring your Android display to macOS or Linux

For a presentation I needed to show the audience what was going on on my Android phone. I expected this to be easy, but I ended up spending more than enough time figuring it out. My first idea was to…

A Puff Of Smoke

An excerpt from Sarah Lippett’s new Jonathan Cape published graphic memoir. Out on the 7th November 2019.. “A Puff Of Smoke” is published by Sarah Lippett in A Puff Of Smoke.