A software developer is a person directly involved in the design and programming of computer software, i.e. software development. While a programmer will be responsible for turning technical software specifications into code, a software developer will be more involved in the design, engineering, and specifications processes, as well as the programming.
A software developer may perform a variety of tasks and fill a wide range of roles:
- Software engineering
- Software maintenance and customer support
- Communicate with business analysts and other interested parties
- Write documentation, particularly
A developer can be involved in every stage of the software lifecycle.
Software developers require good communication skills. Within their own team they need to share architecture and implementation ideas. They often interact with non-programmers, such as business analysts and end users.
The core task of a software developer is to program, actually building the software system. At a high level a developer may be involved in designing the architecture and interfaces of a system. They may also be involved at any level of detailed implementation. Therefore software developers need solid programming skills at every level.