We presented a session at the Agile India conference on the 19th of Feb. We spoke about our experiences of using the agile discipline that enabled the success EduNxt within Manipal Global Education (MaGE). MaGE, is India’s largest provider of education in the private sector with over 220,000 students enrolled in more than 700 courses, three universities, more than 30 institutions and one very large distance learning department. Four years ago, we signed on as their CTO Manipal Education to – as defined by CEO Anand Sudarshan – “figure out how technology can enable learning and help us scale lock in step with quality”. However, beyond this it was greenfield territory – the domain of large scale higher education, especially distributed learning, was (and still is) emerging. It was in this context that we set out to develop EduNxt that today is used by over 220,000 students and operates at a one tenth of the cost of ownership of comparable commercial offerings from world leaders in the learning technologies space. EduNxt has won several awards, the most prestigious of which was the Golden Peacock award it won last year for the most innovative product.
Our session was titled Whirligigs and Mountains and was in the Agile in the Enterprise stage. By Whirligig we meant the spiral, iterative and seemingly innocuous path traced by those whirling, swirling thingies people hang in their porches. The mountain referred to the traditional way of building IT systems in enterprises – long requirements, many features, roadmaps, budgets and plans up front etc. The story we narrated was how our “whirligigy” approach based on opening our architecture helped us surmount a fairly large mountain in the development of EduNxt.
The crux of our presentation was about the agility bought to the enterprise by incrementally making our architecture more open and – to borrow a term from Joel Spolsky – more horizontal. The choice of this architecture principle arose from two fundamental realizations we had while conceptualizing EduNxt:
1. That we are working in what the architecture community today calls an “unprecedented” domain. Education, unlike a domain such as banking is not IT-enabled to the extent that there are accepted and well established standards, reference models and so on. Education is after all a very individualized activity where the final measure of performance is the development of a human being and not absolute measurable things like revenues and profitability. Therefore there are many disconnected approaches and very little to tie these approaches together into models. In other words, it is very difficult to find an answer to the question “how do I teach statistics effectively to 56,000 first year MBA students in a distance mode” and even more difficult to articulate how this is different from teaching say anatomy. Therefore incremental evolution and making very little assumptions on what exactly someone would use technology for is key. We knew that we would one day need to build our own Technology Enabled Learning Platform
2. That we would need to gradually move our faculty from being reluctant technology users to participating stakeholders . When we started, the distance between the vision of technology enabled learning as articulated by Anand and the understanding of technology enabled learning at the level of the users – our faculty and others – was very large. There was no way they could assimilate the vision and articulate projects that would help accomplish it. We realized that we would need to help our users evolve as technology enabled teachers, assimilate technology and enjoy small wins. This way they would participate in the evolution of the system as stakeholders rather than being forced to use an overwhelming large scale application.
This architectural principle was naturally aligned with Open Source tools. The power of Open Sources is not in that the sources are open or that they are free. Instead it is in their architecture principles (especially manifested by content management tools like Drupal or MediaWiki or even Moodle that phenomenal LMS) of being based on simple information models and being programmable platforms.
A simple information model means that sufficient generalization has already gone into the design so that different people can use it to solve their own problems in different ways. For example, Moodle is based on courses, activities and resources. You can use it to create whatever type of course offering you want. The process you want to adopt as a teacher is not dictated by Moodle. In fact you may even create a course where there is no teacher. Likewise in Drupal everything is a node. You could build a blog or a online grocery store on top of nodes – up to you.
A programmable platform means that a Drupal or a Moodle is designed to be extended by programmers at a platform level itself. So I could contribute a module that does for example drop-case formatting using JavaScript and you could develop a blog module. By implementing Drupal provided hooks, both your functionality and mine is now available as part of the platform workflow such as creating or displaying a node and thereby makes it more capable for someone else who is say building a magazine site.
Another huge change that has happened with OpenSources tools over the last decade or so is that they are now friendly enough to enable even novice programmers with a smattering of PHP skills to be able to use and configure them and even develop a module or two. Gone, perhaps, are those days when Open Sources always required the best C and C++ programmers you could find.
Now what all of this means is that Open Source tools today have huge contributing communities. The beauty is that these contributors work almost independently of each other. Almost any problem one may think of has perhaps a particular solution available or if generalized one will find a solution. As the old saying goes “there is an app for that”. Even more beautiful is the fact that one can pick and chose contributed modules to build an application with more or less only the functionality needed and not an overwhelming mass of features.
This is what enabled us to iteratively develop EduNxt using Open Sources tools with a small team. We started with simple requirements as we understood them at that time – show course content, do quizzes, enable discussions etc, put together a learning management system (LMS) using Moodle and went live. In the process, our users understood what an LMS was and what they could and could not do with it in their unique context of large scale distance education. Thus at some point our user outgrew their own requirements and started talking about communities to enable learning and content. Basically stepping out from the confines of course management. It was then that we iterated our architecture – in keeping with our governing principle, we decided to become more generic – more horizontal. We generalized our problem to being more one of managing collaboration and activities around content rather than courses and thus moved to Drupal. This became the basis of the award winning EduNxt 2.0. We are now working on the third such iteration and becoming even more horizontal.
In the presentation we also spoke about certain design techniques required to build such platform especially as a set of services. I will write up a different post about these techniques in the Library of Techniques series. In the last part of our presentation we spoke about the need for expertise in the team as a pre-requisite for agile discipline. Agile is founded on the basis of collective commitment to producing a quality deliverable in a fixed time. Being collective, there can be no ambiguity about either what is the quality expected or what is the completion of work. In such an environment, if for example estimation is done based on functionality and not based on the work to be done the stress on time or on quality or on completeness becomes too much to bear. Again, the method of estimation referred to in the presentation and the engineering techniques are themselves subjects of longer posts in the future.
We had fun putting this presentation together and gleaning the insights presented here. I am sure we would not have been able to articulate these so well 3 years ago but they were present and shaped the direction of EduNxt for sure. The presentation is available here.