|
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.
|