Professional societies around the world are grappling with how to elevate the status of ICT practitioners – here’s a recent post: http://www.computer.org/portal/web/execdirectorblog/home/-/blogs/focus-on-computing-professionals
by Prof Barry Dwolatzky
The discussion at this week’s JCSE “Architecture Forum” got me thinking about the future of programming. Some of the software architects present seem to believe quite strongly that the art of writing a computer program – something I’ve been doing since the early 1970’s – will soon be automated. Images of the recent fossil discoveries by scientists from my own University flashed into my mind. Will palaeontologists of the future display the fossilised remains of the long extinct “Computer Programmer”?
Programming is about abstraction. At the heart of the computer – or “programmable device” – is some low level binary machine code. Some of us may have learnt to craft these instructions by hand at some point in our careers, but since the 1960’s programmers have worked at a higher level of abstraction. The so-called “general-purpose languages” – FORTRAN, Cobol, C, Java and C# – allow the programmer to focus on relatively high-level issues when translating a design into a program. Using these languages we write our programs using assignments, loops and conditionals. Various structuring mechanisms have been introduced to help us deal with complexity. These include functions, procedures, classes and methods. Libraries of reusable functions and classes have also long been available to simplify the task of programming.
At a level of abstraction higher than these general-purpose languages are domain-specific specialised languages. Do we still use the term ‘4th generation languages” – or 4GL? These languages allow the programmer to think about the problem to be solved at a higher level. While these certainly gained some level of adoption, millions of computer programmers around the world still develop software using languages like C, C++ and Java.
In the 1990’s the concept of “model-driven development” appeared. Programs were designed using a modelling language like UML and tools were then used to automatically generate programs in the language of choice. These generated programs were in fact structured shells – a programmer still had to write a lot of C++ or Java code. The UML tools did not automate the detailed programming, but rather the high-level structuring.
The discussion at the Architecture Forum centred around architectural representations. Some of these are at higher levels of abstraction than the detailed design expressed in UML. The issue raised was this: Using modern architectural representation notations the “business rules” of the required software can be captured. Is it possible now, or will it soon be possible, to automatically generate running software from these representations? If this is possible and becomes widespread the computer programmer as we know him/her will become extinct.
My own view is that this will not happen – at least in the foreseeable future. The work of writing the detailed steps of a program is best done by a skilled human programmer. The variation and complexity of detailed programming does not lend itself to machine automation. But maybe I’m just a dinosaur of the information age refusing to accept my own imminent extinction!!??
by Prof Barry Dwolatzky
The ICT “Skills Crisis” – and how to solve it – is an issue that has been my major preoccupation over the past decade (or more). I was therefore interested to read an article in ITWeb (19th April 2010 ) headed “Holes in ICT Skills Pipeline” , written by Leigh-Ann Francis. Continue reading “Don’t complain about the broken “skills pipeline” – fix it!!”
by Adrian Schofield
Brenda Scholtz’s cry for more professionalism and stricter standards among the practitioners in the software/information systems field is one that resonates around the world.
What is it about the IT industry, that it perpetuates the gulf between the desirable, accountable, professional development of systems and the casual, cowboy approach that results in wasted time and money (or worse)? It is estimated that more than 80% of the traffic on the Internet is spam or malware – is this the clearest symptom of our global lack of discipline in information systems development?
We are all familiar with the sequence of jokes that started in 1997 with this story: There’s word in business circles that the computer industry likes to measure itself against the Big Three auto-makers. The comparison goes this way: If automotive technology had kept pace with Silicon Valley, motorists could buy a V-32 engine that goes 10,000 m.p.h. or a 30-pound car that gets 1,000 miles to the gallon — either one at a sticker price of less than $ 50. Detroit’s response: “OK. But who would want a car that crashes twice a day?”
Underlying that “humour” came the growing realisation that the builders of “new generation” computer systems were not applying the rigorous standards that typified the approach to enterprise software running on mainframes and their smaller brethren. The age of the PC ushered in the ability for anyone to teach themselves how to write programs, to connect to the network and to market their “skills”. The buyers, in their eagerness to ride the wave of this new freedom of access to technology, seemed to be more than willing to accept errors and unreliability as the norm. The simple standards that applied to the purchase of tools for business (such as typewriters and calculators) were waived when it came to buying computers for the same purpose.
In the “good old days” (when slavery abounded and steam valves controlled Babbage engines), you had to have a degree AND membership of an approved “society” (IEEE-CS, ACM, CSSA, BCS) if you wanted to pursue a career in systems development. In the “good new days” and in spite of the dot.com bubble, many of the industry’s multi-millionaires never made it past school-leaving certificate. Add the ingredient of “freedom” into the mix (as in freedom to join a previously elite group of workers, as in freedom to use free, open source software) and it becomes difficult to convince decision-makers that standards are vital to successful acquisition of information systems. Never mind that those freedoms lead to the equivalent of allowing strangers to plant weeds in your flower beds or to steal your video records of family history.
Can the industry restore the balance? Quite a few initiatives around the world are attempting to do so. From the Software Engineering Institute in Pittsburgh, to the re-branded BCS Chartered Institute for IT in UK and to the Australian Computer Society, via the IEEE and the ACM – these and many other groups are upholding the value of proper learning and disciplined standards in keeping the practice of systems development as a true profession.
Are they winning? What more can and should they be doing?
by Prof Barry Dwolatzky
Here is a short version of a video produced by the JCSE and DTI to promote the SA ICT Sector. I used this video as part of my presentation at the recent SEPG Conference in the USA. It is a 5 minute version of a longer (17 minute)video promoting the Sector. If you want high definition versions of either video please let me know
Welcome to “The Software Engineer” – a blog for those who are passionate about the South African Software Industry.
In the 1950’s, when the first digital computers appeared, South Africans were among the first in the world to embrace this exciting new technology. In 1957 the Computer Society of South Africa (CSSA) was set up to support South African software professionals – only the second such society in the world (Britain beat us by a few months!).
Over the past 50 years South Africans’ enthusiasm for computers has continued to grow. Our software industry has notched up numerous world-firsts. South African software engineers will be found working in companies and universities in almost every corner of the world.
I aim in this blog to provide a specialised platform for the South African software engineering community. In it we will discuss the local software sector– its opportunities and challenges. We will discuss skills and how the broader ICT sector can position itself to create significant numbers of new and sustainable jobs. We will discuss how South Africa can export software products and services.
Initially I will be inviting individuals to contribute. I’m hoping that others, with thoughts and insights to share, will come forward and either comment on the blogs I publish, or offer to contribute their own blogs.
I look forward to hearing from you
Prof Barry Dwolatzky (firstname.lastname@example.org)