Home Why Computing? Job Types Getting a Job Degree Types Course Questions Example Careers

Jobs with Software Companies

Most companies do not write all of their own software. For some of their needs, they buy packages (e.g. Microsoft Office) and configure them to their own requirements. For other needs, often the more complex ones, they pay other companies to build or adapt software to their requirements.

These kinds of companies range from multi-national companies such as Microsoft that produce shrink-wrapped software for a mass market, through companies that make software for legal practices or hairdressers, to specialist companies that build one-off software for NASA’s latest space probe.

 

Development of new software packages

Software is produced for many purposes - office productivity software, games, software to support hobbies such as making genealogies, internet browsers, educational software. All these types of software need people to decide what the software should do, to design how it will do it, to implement it, to test whether it works properly, and to keep it up to date as changes in the software package are needed. Computing jobs exist in all of these areas of software development. Often, you will work with a team of software developers that cover the different roles outlined here.


Operating system level design and programming

There is a more technical level of programming that involves knowing about how things work in the depths of the computer’s operating system. For example, a software development team building software which enables a computer to print to a new type of printer would need to understand how the computer deals with printing queues, and how the printer deals with characters that are sent to it, and then would write software to make what is shown in a document print correctly on that type of printer. Such work can be very challenging, but is also very rewarding for those who enjoy complex technical puzzles.
Bespoke development. Some software is too specialist to be developed as a package sold shrink-wrapped to everyone who wants it. For example, an air traffic control system (software to help people track and land planes), or software to run the rides at Disneyland, would be developed specially for each customer. Software companies in the bespoke business need to have people capable of understanding the customer’s requirements, of stating them in a way that an agreement to develop the software can be made, of working with the customer during the development, as well as all the other skills needed in software development.


Human factors

How do you design your software so that it is easy to use, and make sure that your design decisions are correct? Human factors experts are skilled at designing interfaces appropriate for a particular task, and at evaluating those interfaces with a group of representative users of the software in order to make sure that the design decisions are correct.


Sales / marketing

Software can range in price from £4.99 for a budget game to many million of pounds for a purpose-built air traffic control system. At the lower price levels, little support is expected, but for more expensive and more complex software, sales and marketing needs people who understand the technical details of the software, at least in outline, as well as the business context in which the software will be used. Computing graduates are frequently encouraged to move into such jobs if they show an aptitude and an enthusiasm for working with customers.


Customer support / technical support

This term covers a variety of jobs, from being on the end of a phone advising customers on problems with the software supplied by your employer through to working on site at a customer company, adapting the software to meet the customer’s changing needs.


Consultancy

To some extent, consultancy is a posh way of saying technical support. It suggests a higher level of technical expertise than customer support. If a company wants you to change a computer package to produce a report in a slightly different format, that is technical support. If it wants you to recommend what its strategy should be for developing a high profile new web site, that is consultancy. The importance of the consultant’s role is often reflected in high salaries. This means that being a consultant is not really a job you can start in as a new graduate in Computing. As you develop expertise that is highly valued, it may become an option as your career progresses.


Quality assurance

Quality assurance staff are responsible for ensuring that the quality of the software produced by the company is appropriate - that it is safe, secure, reliable, maintainable and usable.


Project management

Large software projects can have 50 or 100 people working on them. The best people to run such projects are ones that understand how software developers work, and the processes for making sure that the software is built properly. This means that one career path for Computing staff is into project management - managing other people building software. This tends to happen gradually, perhaps beginning by leading a small team of 2 or 3 other, less experienced project people, then increasing the size of the team supervised and the project tackled as experience and training are gained.


Running a company

A surprising number of our graduates end up starting a company at some point in their lives. Sometimes, this is just a convenient way of working as a consultant to other companies, but sometimes it is because they have seen a niche in the market for some specific software product or some skill that they have. In the latter case, the company may employ a number of other people, and they may then spend their time as Managing Director rather than as a programmer. It is not a career path for everyone, but for those who are attracted to it, a degree in Computing provides good opportunities.

 



©2004 Chris Price HomeJob TypesInfo about degreesYour questions