The Reluctant Programmer
“But I am a manager – or going to be one very soon – not a programmer ! Why do I need to learn all this technology ?”
For the cross-over community of young line managers and would-be managers studying MBA or PGDBM in B-Schools, this is the first question that pops up when they are confronted with the idea of learning about computer technology. Since this book is meant for this community, we will address this concern upfront and head-on before anything else.
Let us go back in time – say thirty years – and see what a manager, then, was supposed, or not supposed to do. Would you have expected a manager to type out a report ? Of course not … that is what typists were for ! Would you have expected a manager to open his mailbox, look at the mail that has been delivered, sort out the important from the trivial and respond appropriately ? Of course not … that is what secretaries were for !
But would any manager today – with or without an MBA – think twice before typing out a report or creating a presentation or check the mail ? Of course not ! The email box on the desktop – the computer version, not the wooden one – is perpetually open and so is perhaps MS Word or MS Powerpoint. Why is this ? Why, oh why is it that a manager has to stoop so low as to become a typist and a secretary ?
There are two reasons for this.
First : Technology, in the form of word processors and email systems, has become so easy to use that unless you have a double-digit IQ, it is far easier to do the job yourself rather than explaining the job to someone else and then going through a number of iterations to get the job done to your satisfaction.
Second : Even if you have others to do such things for you, you cannot afford the time required to have it done. The corporate ecosystem – clients, business partners, vendors – would not like to wait while you go about explaining that your secretary has still not accessed your mail for you, or that you are waiting for the typist in the typing pool to give you a draft of the report that you had asked to be typed yesterday.
So net-net there are tasks that the manager in the past would have had others to do on their behalf but today, they have no option but of doing it themselves – or risk being viewed as obsolete : by clients, by colleagues, by team members and – most ominously – by the boss! So it is much better to learn to do these things yourself and thankfully there are tools that can really help you actually do so without going insane ! Such is the case with building computer applications.
This is not to suggest that managers today will build, or be expected to build, a full fledged ERP system like SAP. Nor would they be expected to develop the next version of Windows or Linux. Far from it. That is for the techies, the geeks, the professional programmers.
But what if your company wants to create a blog through which you wish to reach out and have a dialogue with your customers ? What if you need to have your customers fill out a questionnaire in a manner such that the responses can be analysed in a spreadsheet ? What if you want a very basic system that will allow a temporary sales staff in the field to fill in the orders that they intend to pick up during a special promotional drive during the festival season ?
You could of course get all this done through your company’s IT department or through an external vendor but would it not be far nicer if you – as the manager – could do it yourself ? And more importantly the time, the money – and the financial approvals for the same – required to get it done through any of these channels may prove to be rather daunting. Think of how frustrating it could be for a manager today to WAIT for his or her report to be typed out by the company’s typing pool – if such a thing still exists!
But is it possible for a manager – busy chasing clients or deadlines – to do all this ? Would it not mean getting bogged down with arcane programming languages and database management systems ? Fortunately technology is at hand to make things really simple.
Just as it has become so easy to use word processors and email, so is the case with application development and that is what this book is all about. Unlike traditional textbooks that are used in engineering colleges to teach programming languages like C, C++ or Java or – god forbid – complex stuff like algorithms or data structures, that is staple fodder in computer syllabi, this book addresses all that – and just about all that, nothing more – a manager would need to put together simple, smart computer applications that will aid and assist the process of managing a business.
But this does not mean that the topics are covered in a trivial or superficial manner. Being a hard core and hands-on programmer, the author believes that it is impossible – if not unethical – to teach a subject like this without actually getting the student to create and deploy a non-trivial computer application. Hence there are sections and chapters that will help the student to put in practice what he or she has learnt in theory.
Which platform – language, database, server – should the student use to practice the skills that they have acquired ? There are hundreds of computer languages, development platforms and databases that one can use and the popularity of each combination changes over time. However, at is core, all programming languages are basically equivalent. For a person who knows Pascal, learning C, C++ or Java is not too difficult. So is the case with Oracle, DB2 or SQL Server. Then there is the spectrum of integrated platforms from Microsoft Visual Basic to freeware like Ruby-On-Rails or Eclipse. For the purpose of this book we have chosen Zoho. But why Zoho ?
First Zoho is free, there is nothing to buy or even to get a pirated copy of.. So the student can start practising without any investment or feeling of guilt. Second Zoho does not need any software to be installed on your machine, which is a big plus point for the kind of people who are expected to read this book. The open source movement provides many other excellent yet free platforms that can be used to teach and learn application development but installing these on a desktop can be quite challenging and might need intervention and assistance from technically inclined people – and that would go against the you-can-do-it-yourself philosophy that has motivated this book.
Zoho provides a visual development environment plus a relational database and all that you need to use it is a machine with a web-browser that is connected to the internet. Since it is totally web based your internet connection should be rugged – a broadband would be nice 🙂 You can think of Zoho as a combination of MS Visual Basic + Access Database that runs on and off the web! Another extraordinary feature that this platform provides is that it allows you to actually deploy your applications on the internet at the click of a button ! Doing that with any other platform would involve considerable investment or technical expertise, neither of which may be readily available to the kind of people for whom this book is written.
Finally, Zoho is an excellent introduction to the cutting-edge of concept of Cloud Computing. The idea of doing away with a tangible server and replacing it with a service hosted “somewhere” in the Internet was first mooted by Sun Microsystems with their slogan – the Network is the Computer ! Infrastructural challenges had limited the appeal of this innovative concept but with broadband becoming affordable and Google itself offering this service through Google Apps, it is more likely than not that Cloud Computing could become the dominant architecture in the future. By learning to use Zoho, the reader will get a preview of what this new architecture is all about.
But if Zoho is all that good, why is not widely known or universally popular ? Where is the catch ? Actually there is no catch – the product or service is too new to be widely known and – more importantly – has not been proven in a commercial sense. But as a learning tool, that is of little consequence. Working with Zoho would allow a non-technical person to acquire the expertise – and the confidence – to build useful computer applications and even if the product dies out tomorrow, the skill that is acquired can be easily transferred to the platform that is the next flavour-of-the-month ! The investment made in time and effort will not be lost.
But this book is not about Zoho and the author has no relationship – except one of admiration – with the product or its creators. This book is being written to bust a myth : that you need to be technical person to develop computer applications.
Developing applications apart, the manager must also understand that software technology is no more a means to a business goal but is be a significant driver in transforming the business itself. In the past, we have had business processes re-engineering enabled by enterprise wide ERP software but the emergence of Web 2.0 could lead to a virtual deconstruction of the organisation. The last chapter introduces the concept of Web 2.0 and explains why it is going to be so important in the days ahead.
The author believes that in today’s environment it is impossible to survive and succeed without being comfortable with software technology and living in denial is foolish. The manager of tomorrow must do what is required to keep in step with the world. The journey of a thousand miles begins with a single step. That single step would be to purchase 🙂 and read this book!
This book has been created as a persistent version of the lectures that have been delivered in a classroom and so the style is that of a dialogue – between a student and teacher. Mature students today do not like to be taken for granted, nor should they be happy with a didactic monologue from a know-it-all guru. This book readily acknowledges this fact and recreates the spirit of a discussion – based on actual classroom experience – in a manner that reflects the conversion of the “The Reluctant Programmer” from a state of contempt, contradiction and confusion to that of confidence in and conviction about the inevitability of computer technology.
Prithwis Mukerjee, PhD.