Tuesday, November 8, 2011

CS & IT Academia: Should 'Customize' Instead of 'Build' be Taught?

Last Updated On December 28th 2011

This post captures a slightly edited email exchange with a friend on the "CS & IT Academia: Inform Students About Software Contribution Record of Faculty" post.

Friend wrote: I am not sure if I understood the problem definition and therefore the solution. But let me put it in my words and if it is not what you meant, then please ignore my email ...

This is what I think is the problem that you are describing:
1) Teachers in universities don't have enough expertise in software development and thus can't teach students well enough.
Eklavya Sai responded: They can't teach software development well enough but can teach theory & research oriented stuff in their area of expertise very well.
Friend wrote:
2) Students can't appreciate and learn software development skills no matter which university they approach.
Eklavya Sai responded: That's the case with most universities in India though not all.
Friend wrote:
3) Employers don't get to recruit skilled people.
Eklavya Sai responded: The employers that are looking for software development soldiers don't get to recruit the right people and so have to educate them by having in-house fresher training.
Friend wrote:
4) Result - we are all a bunch of losers!
Eklavya Sai responded: Students (& their parents) who want to learn software development skills by doing a CS / IT degree are losers. Students (& their parents) who want to become theory and research Generals are winners. Employers don't invest time & money like students and parents, and so they cannot complain about being losers. Though overall as a country we lose out as the educational system is a pipeline which feeds skilled manpower into the industrial economy.
Friend wrote: As I said before, if what I am saying does not correctly capture what you said, please ignore my email. But if it does say what you are thinking, then I have a slightly different take on software development needs of today's world - at least the business world as most of the software development that employers do is focused on achieving competitive advantage.

Let me tell you a very short true story. Recently a retailer was facing tough competition in the market (and continues to do so today). It was closing store after store. One particular store was in the red for a few months and was facing the possibility of being shut down. But just ten days before the month ended, they went live with a supply chain initiative that enabled the store to fulfill parcel shipments and came out a winner. Essentially, it got business that it could not have got otherwise. Such was the power of the supply chain improvement.

Now that supply chain improvement initiative involved customizing a packaged solution and not building a software from scratch. The reason why I am emphasizing this is because the people who were required to or asked to "build" the software were mainly required to be able to "configure" the software rather than build it. Along the way they were required to be able to "figure" out what custom code needs to be built and build just that little code here and little code there. Employers prefer solutions to be built to deploy today rather than designed with zero defect for tomorrow.
Eklavya Sai responded: I think this has been the reality of the business app. world for at least a decade. Maybe it has become more prevalent now.
Academia has Component Based Development courses which I feel should handle such 'customize' solutions rather than reinvent the wheel, and live with 'acceptable quality' today rather than 'perfect quality' tomorrow. I recently taught an Open Source Web Development course using Joomla, Moodle, Al Fresco, MySQL, Apache ... and a software developed by a major IT firm of India using these tools.
Most students loved the power of component based development which allows you to produce solutions at unbelievable speed.
So what I am saying is that 'customize' as against 'build from scratch' can also be taught in a university.
Friend wrote: One can question such practices but businesses are run for customers of today who can walk out on you if they find solutions elsewhere even if those solutions have defects. Loss of customer can imply going out of business to employers. A software consultant who ignores such business priorities will get thrown out of business. So essentially, employers are looking for software consultants who understand their pains and provide pills for now rather than later.
Eklavya Sai responded: And students have to be trained with skill sets that match the needs of employers. As most students desire such job-oriented skill sets.
Friend wrote: Universities can teach algorithms and languages and even business processes. But real-world exposure has no substitute.
Eklavya Sai responded: Sure, real-world exposure has no substitute. But universities can prepare students for the real-world to the extent they can.
Friend wrote: One may be very good in algorithms but have no desire to understand the business priorities and you might find school drop-outs who have an unusually good understanding of the market as a whole and can drive the solution the market needs.
Eklavya Sai responded: Sure. But why can't a university IT graduate also excel at understanding business priorities? Of course he can. He simply has to be taught properly in university.
Friend wrote: My point is that businesses demand clear deliverables from software companies. Software companies in turn rationalize this into the 80-20 rule and hire people who can deliver the goods (an acceptable quality software). ...
...
Friend wrote: We might then think that perhaps it is not the business world that students should concentrate on. But is it [business world] really that bad? Innovations normally lead commercialization. But once you champion the commerce part of it, it fuels further innovation. Logistics at one time was thought to be an integral part of the army. But now it has taken a whole new dimension and not only new business models have come up but also it is being outsourced from army to businesses. If space exploration is to be left only to academic oriented organizations, innovative and cheaper solutions for space flight would not be available as some of the businesses are trying to achieve. If CROs had not rolled up their sleeves, drug discovery would continue to be indefinitely slow to achieve by universities and hospitals.
Eklavya Sai responded: I feel IT students can certainly concentrate on the "business world" software solutions.
...

Friend wrote: Have fun with what you do!
Eklavya Sai responded: What I am learning is that even "peaceful & amicable activism" can generate a lot of unwanted heat. I mean there is always resistance to change - and I am questioning the big Profs - they don't like such questions. So this is not really a 'fun' thing :(. But I feel I must do it as I have seen so many students & parents suffer from this mostly dysfunctional CS & IT academic teaching system in India.

No comments:

Post a Comment