In the previous article we looked at what software engineering is all about. The focus of this article will be to look into the job roles in the software industry and the requirements for this career path!
The commonly known path for software engineering is getting a Computer Science/ information systems/ Electronic Engineering academic qualification. In Zimbabwe this path generally involves you passing an A Level combination with Mathematics/ Computer Science in it. Special entry requirements which accommodate other IT certificates are also available at some universities. This path is straight forward, so I will dwell on alternative options.
Understanding the theory of software development doesn’t take a 4 year degree. If one is in a different field and wants to shift to software development, they can take a short course in software development. This can be done at several institutions or even online. Armed with this foundation it is then key to go on to specialise in the technology which you intend to do your programming in. This is best done by writing certifications. These are quite tough, but with enough study and practise any exam can be passed. Certifications are widely recognised and very rewarding!
Anyone in any field can make a shift to software engineering precisely because every field needs software developed for its unique functions. As an example, I have worked with people with business degrees, accounting degrees and so on who went on to become software developers. If you are customising an accounting software, the best people to do the actual technical designs are accountants with IT skills.
I once bumped into an advert in a local newspaper which required someone with a journalism degree and a minor in I.T. They wanted a consultant who would identify an appropriate enterprise social platform, (much like Facebook but for work), classify and migrate existing media content as well as put up a content development plan. To me this sounded like a perfect fit for SharePoint (a Microsoft product) which I had experience with, I also knew that due to the compartmentalisation of education in Zimbabwe, there would probably be no local candidate who would fit perfectly into this, so I applied for it. I was called for the interview and so were a few other candidates. There were generally two groups, journalists and IT guys. We went into the first interview and it was a written test on web development, needless to say ALL the journalists left. The second portion was of course an oral interview about journalism and content development and none of the remaining interviewees were in journalism. At the end of it, they gave the full time job to a certified graphic designer for the content development bit, then they gave me a consultancy contract for the platform development. The best would just have been a journo with software skills, but hey…
Software skills are to every field what English is to communication! Every professional should take a course in software development and every child should do computers at school. I am happy with the drive towards this by the ministry of primary and secondary education. Even if you end up just being a software user, these skills will come in handy in your workplace.
A Software project involves the following job roles:
- Project Manager: oversees a project with a particular focus on resource management, timelines and budgetary constraints. A successful project is one which is done on time and within the allocated cost. A suitable person for this role has experience with software development models such as waterfall, Agile etc. They will also carry the requisite project management certifications or academic programmes.
- Business Analysts- these are generally architects who document, analyse business processes and translate them into technical requirements. A business analyst generally has experience in a certain business sector. Let’s say someone has a diploma/degree in mining and they write certifications to move their career into Business Analysis. They will then be useful as a consultant when software is being set up at a mining company. If their role also involves designing technical requirements, they will benefit from having knowledge of the actual IT systems to be implemented.
- Development Team- do the actual programming or coding of a system. To be a developer one needs to know a particular programming language and the technologies needed for that project. There are many good certifications offered by different technology vendors and these can take you anything from three months to a year to master depending on the level you are starting at. Short courses and Certifications are very handy if you want to cross from a different field into software development.
- Testing Team- test whether the software produced by the developers meet the business and technical requirements. There are now various software testing certifications which one can pursue. Having a good understanding of the business processes is also key for this role.
How organisations segment these roles in their organogram generally differs. You will often find the roles lumped, for example Project managers may end up also doing the business analysis and testing, whilst the developers then take the role of technical design and coding.
In conclusion, software engineering is a cross cutting discipline. If you go for programming roles then be prepared for continuous studies, lifelong learning as technology changes at a very fast pace. However if you enjoy puzzles, analysis, logic then this is the career for you!
In the next article, I will share my own personal career experience.
Author: E. Munedzimwe (Applications Development Consultant at Microsoft)