Over the past two releases, the current group of Telescope maintainers is slowly starting to find their way. The process takes time, and there are bumps along the way. But we're becoming more of a team with each passing week.
I find that those who have trouble getting deeply involved usually misunderstand what it feels like to work on code like this: it's never comfortable or easy. We're not doing an assignment that has a solution. Nor is this a test–I don't know what the answers are! Instead, we're building a way forward, trying things, improving and iterating as we go. The way is unclear, even for me. Being OK with not knowing takes practice, and learning how to move "forward" when you're not sure which direction "forward" is can be challenging. The key is to break problems down into small enough pieces that you can slowly build both an understanding of the problem as well as a solution. Both of these can change, and likely must, so we can't stop to worry about being perfect.
Some people are starting to understand this, and their output and confidence is growing as a result. I need to find ways to bootstrap the rest into a similar way of working, especially in the way of "working open." In many of our courses the students aren't allowed to work together. It's cheating to collaborate on a test, for example. But here, in the open source courses, I desperately want them to collaborate and help each other. The years of conditioning in other courses works against me here.
With the pandemic, we're all at our computers on a more regular basis. It's meant that pair- and group-programming sessions on Teams are easy to start and join. We had a 5-hour session on Friday that helped unblock one of our final next.js PRs. I'm going to push myself and the team to use these more. In the 1.7 release I'd like to try and find a way to pair a bit with as many of the students as are willing. We'll see how that goes.
Another thing that's starting to happen is that the focus of our 2.0 is becoming more clear. I'm seeing the following themes emerge:
- Front-end Redesign. We began with a port from GatsbyJS to next.js, but that's expanding to also include new UX and UI. Pedro, Tony, Minh Huy and others have shown a lot of leadership here, and I want to support them to see this work through to completion.
- Microservices. We've started to think about how to break-up the back-end into smaller web services. We're beginning with some new services to prototype the idea and get the DevOps side figured out. This work is being led by Ray, Abdul, Calvin, Josue, myself and others. I'm excited to see where this takes us.
- Data Layer Improvements. We've got a bunch of different data needs, from cache (Redis) to search (Elastic) and now we're thinking about long-term storage. Chris is going to lead us toward using Firebase as a cloud provider. Meanwhile, Mo is thinking about how we can expand our data to include GitHub info from the GitHub API.
- DevOps/CI Improvements. Anton has already been pushing us forward with release automation, and I'm hopeful we can streamline the way the app is tested, deployed, and managed.
- Accessibility and Localization. Anton has chellenged us to think more about localization and accessibility, and I think it's a great idea.
This week I want to hear from each of the students about the area(s) of focus they have for the coming releases. Moving them from being passive participants to leaders on the project is the next frontier. If we can do that, I think we're going to be able to get some excellent work shipped in the 2.0 timeframe.