Careers in software engineering

Recently a friend asked me what I actually do at work, so I thought that might be a good idea for a career guidance article.  For us to understand what a software engineering is, we have to know what a software is!

A software is just a packaged set of instructions that operate a task on a computer. A popular example of a software would be WhatsApp. When you go on to your phone, you tap an icon, the instruction behind that icon is that this action should open the WhatsApp interface. During the loading process WhatsApp has instructions to pick contacts from your cell phone. Other instructions it contains would be:

  1. to pick up messages that were sent to you
  2. give you a platform to type your messages
  3.  Send messages when you click “send” and so on.

Software engineering is the process of building a software. Software is needed in every area of a business, examples include:

  1.  Human Resources Management Software: for storing employee data and running payrolls
  2.  Accounting Software: for managing an organisation’s financial records
  3.  Customer Relationship management systems: for tracking and managing interactions or communications with customers and would be clients
  4. Information Management Systems e.g. School Management Systems
  5. Maintenance Management Systems: used by companies which have large machine plants to tell them which machines are due for maintenance and to keep track of stocks required for those maintenance jobs

Now someone might also wonder why these products are not just sold off the shelf. Why is there a need for software engineers to continually build such products? Some areas like accounting have very uniform standards, so it’s rare that one would need to build a new accounting package. However in other sectors, businesses have different ways of doing things.  Ordinarily a company should not change its processes to suit a software, because these processes represent the company’s learnings and competitive advantages. Software has to follow the existing processes of a business. So for example, there can be as many versions of University Management Systems as there are Universities.

Another common task for software engineers is to write custom modules for off shelf systems. A university might use an off shelf Customer Relationship Management System to house student data. This task would involve software engineers writing custom modules in the CRM to make it more suitable for their scenarios. They might develop or customise forms to capture study programmes (which are the organisation’s products) and student data (which are the customers).

Another task is systems integration. So say an organisation buys an accounting system, an HR system and a Customer Relationship Management System (CRM). A software engineer might then write modules to link these systems so that they can pass records to each other.

Broadly you can classify software into:

  1. Desktop- which is installed and runs on PC’s or Laptops
  2.  Web Applications- runs on a server somewhere and is accessed in a browser
  3.  Mobile applications- apps which run on cell phones, tablets etc.

In the next article, I will look at what you need to become a software engineer.

Author: Edmore Munedzimwe