Few weeks back, our Database Systems lecturer, Dr. Shehan, asked for a couple of volunteers to work on developing a volunteer management system. Me being the adventurous programming enthusiast that I am, volunteered at once. Along with me, Yasiru, Amitha, Dinusha, Kasun, Riyafa, Chathura and Lasantha also volunteered. The project was actually a project done by a student of the senior batch (Ridwan) as a part of his Software Engineering course module in the 5th semester. He had wanted to move on from the project and therefore, is handing over the project to us.
The project is to implement a volunteer management system for the newly instated National Volunteering Secretariat (NVS). This is an initiative of the Ministry of Social Services and the United Nations Volunteers (UNV). UNV is handling the project on behalf of the NVS and we had our first meeting with the UNV project team last Monday. This was our first proper meeting with a client and I must say, it was may more interesting than they make it sound in lectures on requirements gathering 😛
The meeting was mainly to introduce us to the UNV team and vice versa and to give a full demonstration of the system. Ridwan started the demonstration and at points the project team would raise questions and point out short comings or bugs they are experiencing in the current implementation of the system. The issues were discussed in detail and the demonstration moved forward only after agreeing upon a solution for them. We were also encouraged to put forth our ideas and suggestions. But we were quiet for the most part, occasionally raising a question or giving a suggestion 😛 The meeting came to an abrupt end because of time constraints and another meeting was scheduled for Wednesday.
The Wednesday’s meeting continued on with the demonstration from where we left off on Monday. This meeting was more interesting and productive since everyone was focused on what needed to be done rather than worrying about the time. We have studied software development methodologies in previous course modules and in this semester as well. But when learning those in lectures, I always felt that the requirements gathering and related stuff were boring and time consuming processes of which I was sure I did not want to be a part of. But sitting there at an actual requirements gathering meeting, I felt that it was actually interesting work! 😀
In my mind, there are several reasons that made it interesting. First of all, the team from the UNV we were working with, were a lively bunch and therefore, the atmosphere in the room had a vibrant feel. Second, coming up with the requirements, refining them, coming up with a solution and agreeing upon it required a remarkable amount of attention, creativity, attention to detail, ability to see how everything fit in with the bigger picture, communication skills etc. Something that I noticed was that you can not let your attention drop even a bit! It should be at 100% at all times, if you want a productive outcome from the meeting. There were times during the meeting that my attention dropped a bit and I realized a little later that I had absolutely no idea what the others were talking about during that time! :O Needless to say, I had a bit of trouble getting on track again afterwards 😛
The other challenge was in communication. We are so used to explaining things to people with the necessary technical background that when faced with the prospect of having to explain a technical thing to a non-technical person, we are often at a loss for words. We have to rethink how we are going to present our ideas/solutions to them. We should be able to convey our ideas effectively, without confusing them. Luckily for us, the project team from the UNV were tech savvy and for the most part, we didn’t have trouble explaining technical things to them. But still, it was a refreshing change and challenged us to articulate our thoughts and present them in an easy to understand manner.
Another interesting area we were tested was when agreeing to what the system should do. When I heard the term volunteer management system, I had an idea what sort of thing it should be like but when we actually heard the requirements of the UNV team, it was very different to what I had in mind. And when suggesting features and improvements I had to keep reminding myself that they are the client and we should just develop according to their requirements; not based on what we feel like is the best way to do it 😛
All in all, it was a really great experience and I’m looking forward to many more opportunities like that in the coming weeks 😀