Programming as an Art and a Sellable Skill - Part 5
A wallaby in my Garden - I always look to Nature for Inspiration

Programming as an Art and a Sellable Skill - Part 5

Program Debugging + Maintenance

 Background

This is a kind of lesson in the Ancient History for the new aspiring programmers when one single computer covered a big air conditioned room in the early to mid sixties and there were no PCs. PCs based as microprocessors were created in early seventies. I write this because you appreciate what programming meant those days [before 1975] and what was involved in pursuing a career. 

We learnt programming in a FORTRAN like language in our first year undergraduate course. In those days, you have to put your program into punched cards. You will need the help of punched card operators. Wherever there is an additional service, delay is inevitable. The teacher wants our assignment submissions in time and there was a lot of pressure. You would be lucky to get one compilation and/or a program run per day. This mainframe computer was also used for production runs.

 When I started my career in programming in the early seventies; the IT Department structure of a company consisted of:

  1. One EDP Manager;
  2. A number of project leaders/ managers and programmers – the programmers have to gather requirements from documentations and interviews. Analyse the requirements, design the programs, implement and maintain [Full SDLC as described in part 4 of this series of articles].
  3. A number of punch card and computer operators. 

There were no Architects, Business Analysts, Systems Analysts, Solution Designers and Testers. We were writing programs in IBM 1401 Autocoder and then in COBOL.

 You take all the glory and all the blames. The salary of a programmer was very decent. It was comparable to the salary of an Associate Professor of our Institute. If you have established yourself in the industry then in three to five years; you could get the salary of a Professor of our Institute. In short, the reward was excellent and the pressure was extreme. Of course, we all know that the job of a Professor is very secured. 

You need to produce the goods with a limited number of your program compilations and runs and meet the project deadlines. So, you need to do lots of Desk Checking with imaginative inputs in order that you maintain project deadlines and think of some rewards.

 This hard grounding that I got from my early career made me a confident programmer in any programming language. When people asked me what programming language you are an expert; I told them give me a manual and I can write an excellent program in any programming language. This has been my key in whatever I chose to do later on. 

In an interview, the employer will often ask me tricky questions in the language. It was very daunting. However, I know the art of debugging and problem analysis and how to read a manual. That was sufficient.

That is the main thing as you can always refer to the manual for detailed workings of an instruction or statement.  

All a good programmer needs is a foot in the door of an organisation and in course I learnt programming in the following languages with ease [I write this to demonstrate my point as to what is necessary and sufficient]:

  1. Autocoder
  2. ALGOL [taught in the Institute]
  3. Honeywell 400 Assembly Language [called EASY which it was not; try writing some programs in an Assembly Language and you will understand what I mean] – I completed a major project for my Diploma in Computer Science.
  4. COBOL
  5. RPG
  6. IBM 360/370 Assembly Language,
  7. PL/1
  8. Intel 8080 Series [Intel 8 bit microprocessors released in 1974] Assembly Language;
  9. APL
  10. Adabas/ Natural
  11. PowerBuilder
  12. PASCAL
  13. SQL
  14. APT for Sybase
  15. C
  16. Java
  17. Perl
  18. PHP etc

 When a programming language is new in the market and you have the skill; then there is an opportunity to make money. For example, in the mid nineties; a PowerBuilder programmer could make more than $150,000 a year. This is almost equivalent to over $300,000 if you consider inflation. This was a contract rate and did not guarantee any work beyond the project. Of course, you can take a permanent role in the company if they think your skill is mandatory for the project maintenance.

 Debugging

 Debugging a program is at times very complex and stressful and there are a few books of any programming language that cover this aspect well. There are standard tools where you can examine where the program has stopped and work out from there. You also need to comprehend Error Messages if you happen to maintain somebody’s creative art. I tell you some programmers were/are behaving like alchemists with the notion that they can prove their dexterity and indispensability by writing more cryptic scripts. This was and is a nightmare for the people responsible for maintenance. You need to make Error Messages coming from the program meaningful, consistent as discussed below: 

Error Messages

 I recall the days when we were programming under IBM 360/370 Serries computers, we used to get famous OC7 error [data related and messages were cryptic]. 

I emphasise the need for proper, meaningful and consistent error messages from an application or any other systems [e.g. payroll, inventory control etc]. Of course, these days you could argue that we have SAP that can be tailored to suit our need. However, we still write major application that involves several developers e.g. Air Monitoring System in big cities and Town, Pollution Control etc. This will remain in eternity as we create robots, drones etc.

The error messages must also say if it is Informational or Severe etc.

 Cross Platform Conversion 

I talked about gathering information from interviews and documentations as part of Requirements in my previous article. I was part of a project to transfer an application system in VAX environment using COBOL accessing Rdb to MicroFocus COBOL in UNIX environment accessing Informix and the conversion of DEC DCL to UNIX Scripts in the mid nineties. There were no documentations and you could not interview anyone as all the developers had left and people only knew how to run the system

So, start reading COBOL programs and figure out about it and then figure out how all the programs link and draw the system specification. This kind of work is very challenging. 

Acknowledgements 

In the midway in my series of articles, time has come for me to acknowledge some companies especially ORG owned by Sarabhais in Baroda, Gujarat, India where I spent almost a decade as a Systems Engineer and was part of building lots of software for the USSR which were building a clone like IBM 360 and part of building a complete operational computer based on Intel microprocessors. This is where I worked with some of the brightest programmers. I immigrated to Sydney, Australia in 1982 and I had the luck to see a completed operational ORG computer in 1986. I felt very proud to be part of this project. I am not aware of any other company in India that embarked on such an ambitious endeavour.

I was also lucky to get a job as a temporary PL/1 programmer in State Transport Study Group, Sydney in the height of a severe recession. This job was later made permanent that enabled me to get a housing loan.

 Conclusion

 If this article interested you then read all the four that precedes it and the background that prompted me write about this series [also my post on BITSM]. In DTPL/ BITSM we conduct courses on the following:

  1. Database & Programming
  2. Financial Literacy – Most people do not comprehend the power of compound interest. I have said this before and say it again money is not sufficient for your existence; however your ability is both necessary and sufficient. People working in well paid industry often think about their Income and Expenditure and does not worry about their complete balance sheet i.e. Asset minus Liabilities. Good well paid jobs will not last for ever. Your understanding about money is as important as your capacity to earn. Yet how often we see a very bright knowledgeable professional absolutely dumb in Financial Literacy. Learn and teach this literacy to your children along with others as it is very vital. It is far more important than handing over a bundle of money which they are likely to brow it in no time.
  3. Reading & Comprehension
  4. Writing
  5. Leadership Skills
  6. Client Service
  7. Visual Literacy – Yesterday, my wife and I watched about a dozen short films produced by the primary school children in Sydney that made me extremely proud. Yet primary school children in India mostly study what I did sixty years ago [very dull subjects].
  8. Water Proofing – In lots of high rise buildings everywhere this has been causing lots of grief. In conjunction with a Water Proofing Contractor we can run these courses.

 In the next article, I will talk about Program/ Database Performance and Tuning.

 

 

 

To view or add a comment, sign in

More articles by Asis Das

Explore content categories