Creating a project amidst a world crisis

The day we settled on this project

May, 20, 2020
The past three months were a completely new experience to us; We (13 CSE undergrads) set out to build an Open online Quran reciting and teaching platform.

We didn’t know of the upcoming global circumstances when we planned the project. We haven’t seen each other (physically) in the project’s entire lifetime. Due to social distancing. The project was initially a school assignment. We were to simulate a database project, and the school set the deadline to be 2 months. Till our final exams original date. But we wanted to build a real-world application.

We planned to finish phase 1 of the project in 2 months, 8 sprints. But things would have been different if we had a fortune teller in the team. But they don’t actually exist. It’s no secret that we were under-prepared. Our first sprint was basically “studying”. We knew it isn’t enough. But it should give us a modest kick start. And it did.

Besides my role as a team lead, I was the scrum master (and it was a new role for me). I had to take Coursera’s 5-Course Product Management Specialization to better understand the role. But I consider this project the real course in product management.

Morale was the toughest factor to keep up

Our team was completely new to the agile manifesto process. We had to adapt and change some habits in these trying times. We experimented with different approaches in managing the project and adapting to the current horrible circumstances. Morale was the toughest factor to keep up; things seemed to only go worse. Besides our morale and psychological health, we also faced physical health issues in Ramadan. Coordination and communication grew even harder.

Despite all these horrible facts, we didn’t (completely) fail; though we didn’t deliver phase 1 in time. We didn’t blow up what was completed, quality was always the priority. Testing wasn’t optional. Every functionality is considered done after code review and automated tests have been written and passed. Client interaction was maintained as much as we could.

Though we are in our final sprint, and though we failed from the project’s point of view, but we gained a lot of knowledge. And now that we have this experience. We will resume working on the project after taking what we’ve learned, and what went wrong into consideration; after making the necessary changes.

Six of our weekly-sprints. Progress bars tell a story of sorts

Key points that we’ve learned

  • Naïve, premature estimates and preparations only lead to the slow, painful death of the project
  • Requirements quality isn’t negotiable
  • Increasing the team count /= increasing the velocity and the performance. It can so easily become an obstacle
  • Team Morale is the “Mana” as gamers call it; without “Mana” you can only go so far
  • The team should always experiment practices to further enhance their productivity and performance, and to see what suits their needs the most
  • All team members should always seek to be on the same page; they should have relatively equal knowledge of the project requirements and scope. I couldn’t stress this enough
  • Team rotation and flexibility is a strong weapon; if handled with care, great things will happen to the project

What would you change if you were in our team? What do you think about the project and the circumstances? Please share your opinions with us!

Notes

Our stack is: PostgreSQL, Flask, and ReactJS.
Originally published on LinkedIn.