In this third unit about jobs in the Information Technology field we will speak about software development 1
The IT professionals involved in the development of software applications can be generically called software engineers. Software engineers design and develop various types of software, including computer operating systems, business applications, computer games, industrial control systems or the embedded software that controls devices as smartphones or cars; they apply the theories and principles of computer science and the procedures of engineering to create, test and evaluate this software. Software engineers can be broadly classified as system software engineers, that are the ones that make the software that interacts directly with hardware, as drivers and operating systems, and application software engineers, that create applications that interact with the user and access the hardware using the services of an operating system. 2
In big software projects a previous analysis stage is needed to structure and control the development process. This work is done by senior software engineers that are known as software analysts or application architects. Software analysts and application architects meet with application users, study business processes and create the application framework for software developers to work. They define how data is going to be organized and stored, the flow of information within the application and how the interaction with the user is going to be, among other things. Depending on the size of the project several specialized analysts can be involved in the design, as Business System Analysts or Data Analysts for example. A Bachelor s or Master s in Information Systems, Information Technology Software engineering, Computer Science or in a related field is required. 3
Once software architects have created the application framework, software developers, that are also called computer programmers sometimes, translate their specifications into logical series of instructions that computers can follow. To do this they code a series of instructions in a programming language, such as C++, Java, Python or PHP. Depending on the language and the programming environment this code will be directly executed by computers (in interpreted languages) or go through a translation process to be converted in machine code (in compiled languages). Some of their duties are: Write, modify, integrate, debug and test software code. Make modifications and corrections to existing programs. Identify and communicate technical problems. One important specialization in the field of software development is software testing. Very often, the work of software developers is thought as the art of programming, the implementation of source code, but as projects become larger and larger, the need for the abilities such as testing, debugging, maintenance among others become more important. All medium to big software companies have a software testing department. A bachelor's degree in computer science or in another discipline with a significant programming component is required. 4
An important part of application development is the design of its interface with humans. Interface design is so important that can determine if an application is adopted or abandoned by users. There are a lot of well documented examples in which a good application deployment was a failure because it had a bad interface and users did not accept it. There are a lot of IT professionals involved in interface design that are not software engineers; graphic designer, multimedia designer, interface designer or usability consultant are the most general definitions for this jobs, but there are other more specialized. In the special case of videogame development, as it has a lot in common with digital film creation, we find a lot of other professional profiles shared with the film industry, as editors, producers, storyboard designers, artists, animators, 3D modelers and audio engineers, among others. There are even more specialized jobs as game mechanics designers and level designers. We could include in this group the technical writers that write application manuals. 5
Web development is a broad term for the work involved in developing a web site for the Internet (World Wide Web) or an intranet (a private network). Web development can range from developing the simplest static single page of plain text to the most complex web-based internet applications, electronic businesses, and social network services. Some tasks of web development involve software development, while others not. Web creation usually includes web design, html and css coding and web content development, but it may also include client-side or server-side scripting, web server and network security configuration or e-commerce development. Among web professionals, "web development" usually refers to the main non-design aspects of building web sites: writing markup and coding. In this area we find professional profiles as web designer, web developer, javascript programmer, server side developer, e-commerce developer, web content creator or web administrator. 6
7