2020 could very well be the inflexion point where online education really takes off and may even overtake in-person education in some sectors like tutoring, language education, and distance education. In order to teach live online classes, a business will need a virtual classroom made for education.
Should an education company build or buy/rent the online classroom solution? This article aims to help business/product owners like you, to uncover and evaluate the trade-offs so that you can make the best decision for your company.
The first section will help you scope out the project. The second section will help you understand the tradeoffs.
Scope: What’s involved in building a virtual classroom?
A virtual classroom is different from a web-conferencing tool. Why? Because it’s been designed specifically for facilitating a class by a teacher with different "superpowers" vs an online meeting where all participants are considered equal. For a teacher to be effective in an online classroom, these are the essential tools:
1. Reliable audio and quality video
2. Chat
3. Interactive online whiteboard
1. Reliable audio & quality video.
The most common way of enabling live video conferencing inside a virtual classroom is through a technology called WebRTC (web real-time communications). This technology allows users to stream live video and audio through their web browser without the need to download an external app like Zoom.
Some developers have the skills to manage the video/audio quality themselves but, are you really going to be able to outperform billion dollar companies like Agora, Vonage or Twilio that have teams of dedicated, experienced developers that focus on WebRTC and scaling infrastructure?
Even companies like LearnCube, who deliver millions of minutes every year, use a variety of third-party suppliers to deliver the highest quality video/audio while offering multiple redundancy options to limit downtime.
As an example, Vonage is one of the most well-known suppliers and known for their reliability but they’re not cheap without serious volume.
For example, as of writing this, even if you’re doing 500,000 minutes per month @ $0.0045 per minute, Opentok is charging you $0.27 per hour per participant. So for a 1:1 private class, you’re paying $0.54 per hour. Oh, and it's an extra $1.50 per hour of video recording.
The even bigger problem is when you’re wanting to deliver group classes. The costs are not always linear in relation to the number of participants; it can be exponential. For 6 students, it may cost (price per hour x n x n-1) so as an example, $0.27 x 6 x (6 -1) = $8.10. This doesn’t work so well for education and, while there is hope for price decreases, it’s still a major challenge.
There are other providers too but it’s worth realising that virtual classrooms still have a fairly high variable cost.
2. Chat
While not a huge technical challenge, it is hard to get the user experience right for both the teacher and student. Where is this actually positioned in the virtual classroom? There’s limited “real estate” in a virtual classroom so how do you expose this functionality but not take over space for the video or whiteboard?
However, you may wish to offer a more sophisticated experience for the student:
Do you want both group chat and private chat for students that are shy and may not feel comfortable asking a question in front of everyone?
Do you need students or the teacher to be able to save the chat for future reference? For example, some teachers like to have students participants write answers or send links through the chat
3. Interactive online whiteboard
This is where it gets a lot more difficult technically…
If you’re starting out then using a separate whiteboard might work. The teacher would enter your web-conferencing session, maybe even on Skype, and then share a link to an online whiteboard. The student would need to click on that link or open up on a new tab or login to a different system. The problem with a separate whiteboard is that it feels clunky and adds extra work to the exchange which reduces the perceived value of the class.
The goal of an online whiteboard is to get the student and teacher “on the same page” (virtually). So for example, if a teacher wants to explain something, both the online student and teacher need to be able to see and collaborate on a page on the internet. The teacher will want to be able to at least type, draw, delete, on a blank whiteboard.
But most professional online classes are structured around a learning material. That might be a pdf, power-point, google doc or even YouTube video. How do your students get on the same page and still see your teacher?
You’ll need a whiteboard that can embed uploaded materials, which you’ll need to save and store somewhere on the internet, that only teachers can search for and ideally reuse. Companies will want to control this a little and provide a library of materials for their teachers to be able to provide a consistent learning experience. Some companies may also want the option for students to be able to upload their own materials, for example, past exam papers and assignments.
Don't forget the user experience. It needs to be an attractive, functional and effortless experience for your students and teachers. Getting a whiteboard 80% right is the easy bit. The remaining 20% is the really hard bit to get right. Frustrations can push students and tutors away. I can tell you from experience that this is where a lot of your development and QA time will go.
The last 20% takes 80% of the time
Now that you’ve got the basics, you may want to think about how to manage the different situations:
How do you support multiple browsers? Chrome, Firefox, Safari, Opera, etc
How do you give your online teachers “superpowers” in the class? To turn off student mic (when noisy), student video (when distracting), to delete student information (the teacher needs to be in charge), etc
Are you going to support the most popular/common devices? Computer, iPads, Android tablets, and possibly smartphones.
How are you going to scale your infrastructure as you grow? The more students and concurrent classes you have, the more servers you'll need. Recording and saving sessions to the cloud can add further complexity and cost. Do you need to hire another person just to do DevOps?
What about all the different possible scenarios? How do you allow some functionality for teachers and others for students? What if the user tries to use a strange character? What about foreign language characters? How to deal with multiple size/multiple format files? Where to store those? How to access those? What is the user flow? What design conventions to follow? What happens when a student and teacher attempt to write on the whiteboard at the same time? What if someone has a poor internet connection? What if someone doesn’t allow their microphone? How do you test for that? How do you resolve that? How are you tracking data? How do you access that data? And the list goes on…
Then there’s testing.
You’ll need to invest in a strong coverage of unit testing to ensure reliability. You may need a way of ensuring smart, helpful classroom logs to extract useful information (e.g. teacher punctuality, student attendance, user technical issues) and build a number of preventative measures to avoid technical fails (e.g. test student equipment, internet connections, user error, etc).
Who’s going to provide and resource customer user support?
You have to consider customer support for your virtual classroom experience. How are you going to provide live user support for your less tech-savvy users? What coverage can you provide? How trained do staff need to be with this?
Does your team have the bandwidth to deal with technical issues that will arise? What happens if your video provider goes down for an hour? What happens when a number of your users start complaining of an issue that you can’t reproduce?
Finally, you’ll need to have the money and team left over to invest into innovation. If the reason you’re investing in a virtual classroom is to “stand out”, how are you going to do that? What is it about third-party virtual classrooms that you don’t like and will those failures stay unresolved?
You can tell that creating a virtual classroom is not an insignificant task or decision. That’s what the next section of this article aims to deal with.
The tradeoffs of building your own online classroom
Every company is different, with different strengths, different teams and different priorities.
There are upsides to building your own virtual classroom:
Some virtual classroom API providers like LearnCube offer a white-label option to promote your brand.
However, it’s worth going through the numbers to see if it makes sense to invest in developing your own virtual classroom:
Can you fund 2 - 4 developers that can work on this full time for an MVP or a project manager, a back-end developer, a front-end developer, QA tester, Designer as a minimum team for a standard virtual classroom? This could cost, $160,000 (MVP) — $1M (what you may really want) + ongoing service costs, innovation, maintenance, customer support, etc.
What team members already have experience in developing a virtual classroom? What skills or experience gaps might you need to fill? If it took you 6–18 months to get something live, can the business afford to wait that long?
Is your online school or tutoring business delivering enough classes that you can be more profitable investing in $160k — $1M in development per year and dealing with third-party providers directly? There will be operating costs on top of the development costs. The main ways to reduce operating costs are to purchase minutes in bulk or negotiate volume discounts.
How many minutes/hours of classes will you be completing per month over the next 1 - 2 years? Let’s say there was a way you could save as much as $0.50 per class, you would still need to deliver 320,000+ hours more classes each year to break-even on the investment of doing it yourself.
What projects would you be saying ‘no’ to in order to say ‘yes’ to building your own virtual classroom? Can you afford the “opportunity cost”? If you invested $160k — $1M in another part of the business, would this have a lower ROI than investing in this virtual classroom?
What can you offer in the virtual classroom that students would perceive as especially valuable and is different from what existing virtual classroom provides? For example, maybe you want 7 students in every class? You may be wanting to provide English tuition to students that speak Farsi if there is not already a virtual classroom to support that use-case? You may want to be able to teach an architectural drawing program like CAD and enable the teacher to take control of the student’s mouse?
What if something goes wrong or it takes you twice as long to build your own virtual classroom than you think? If something goes wrong when it is live, do you have the capacity to own it and fix it?
What if the market requirements change? Are you able to keep up with the market leaders?
Your virtual classroom, your choice.
Some companies have the team, excess capacity and particular use-case where it makes sense to build a virtual classroom from scratch.
For example, LearnCube currently provides the virtual classroom API to Tutorful, one of the largest online tutoring companies in the UK. Mark, their CEO, was transparent from the start that LearnCube would be a bridge for them to create their own online classroom after successfully raising a multi-million-pound funding round. They were half-way when they joined us in April 2020, and as of October 2020, they are still going. While we're excited to see what they build, and they've been very happy with LearnCube (see Mark's review here), it does show the commitment required to build from scratch.
If that’s you, no problem! Hopefully, you’ve found this article helpful to scope the project ahead.
If you’ve done the math and have found that speed-to-market, profitability and reliability are more important, have a look at what a virtual classroom API can do for you. If you’d like to simply have a chat, then please email me at info@learncube.com.
PS: Don't forget to comment below if you’ve got something to add or share with a colleague.