I am sharing this information with everyone out there because after 5 years in web development it seemed impossible to me that building a virtual classroom web application could take only one month. I was wrong. I so much love to be wrong in cases like this.
It was a full and robust web application development from scratch. The sad story of our customer was about his previous dev who started website development for him and then disappeared into a thin air leaving my customer with 2 months of wasted time, which is quite common. So my customer was in need of a reliable web developer who can build a website in a very short time.
It was quite risky to sign up for the development of a virtual classroom platform in such a tight deadline. It was WebRTC based solution and at that time WebRTC was not such a widely used technology. We were worried about possible pitfalls. It's today that we have quite a few WebRTC development items in our portfolio and back then we only had one. But the guy sounded really desperate and we decided to take this challenge of developing a virtual classroom web application in one month.
First thing one needs to do is to plan. How many people should be in the team: we need a graphic designer, we need a frontend developer, we need a backend developer, and of course we need a tester. This highly efficient web development team was what we needed if we were determined to complete the project in one month. Of course, we started with describing the scope and making a rough estimation of it. As soon as we defined the scope that was possible to be implemented and tested the development team started working on UI/UX and landing page design. We came up with something like this
Website concept sample was approved which allowed us to start with UI/UX for the website. It was live video streaming platform development and we had to make sure it can support multiple users. Our server solution was Kurento and OpenTok application development. It was a very good solution which saved a lot of development time.
Designer and backend developer started working simultaneously. As soon as we had a good piece of backend development complete, our Angular.js developer joined the team. It created some traction. As the Angular.js developer started frontend development work he also needed some attention from the backend guy. They had to test backend communication with the frontend in order to make sure things work properly and web module development is actually complete. That's where a tester came in and proper product documentation. We could write down things which needed to be changed by backend developer and let him return to them after he would finish his current assignment. By not fragmenting his time we were able to reach max efficiency.
As soon as we have established the proper workflow for the development of virtual classroom platform, things started developing themselves =) In about 3.5 weeks we had our MVP complete with the following features
- User create Tutor/Student profile
- Teacher create a one-time or recurring class
- Teacher to view calendar with scheduled classes
- Students to apply for a class
- Teacher to approve applicants (Accept/Decline)
- Teacher to initiate a class through video streaming classroom
- Students to communicate through text chat during the class
- Students to rate teacher
It was a win for us! We were proud to have done it in time, with so many features and available for deploying it to production server! Today we can say that development of virtual classroom web application is something we can accomplish within one month without sweating it. Feels pretty good to push your limits.
This experience of developing a website within a very tight deadline was a valuable lesson of how much methodology means for the process. It also taught us that backend development and frontend development approach (when two devs work in pair) is a way to create a highly efficient website within a small period fo time. We are also now adamant that developers should have their time properly structured, without any tiny distraction. Losing the focuse is something that creates bugs which should not be there.