Software developer
From Wikipedia, the free encyclopedia
A software developer is a person or organization concerned with facets of the software development process. They can be involved in aspects wider than design and coding, a somewhat broader scope of computer programming or a specialty of project managing including some aspects of software product management. This person may contribute to the overview of the project on the application level rather than component level or individual programming tasks. Software developers are often still guided by lead programmers but also encompasses the class of freelance software developers.
Other names which are often used in the same close context are software analyst and software engineer.
With time and a little luck, differences between system design, software development and programming are more apparent. Already in the current market place there can be found a segregation between programmers and developers, being that one who actually implements is not the same as the one who designs the class structure or hierarchy. Even more so that developers become systems architects, those who design the multi-leveled architecture or component interactions of a large software system.[1] (see also Debate over who is a software engineer)
A 'programmer' is responsible for writing source code,[1] but a 'developer' could be involved in wider aspects of the software development process such as:
- Participation in software product definition, including Business case or Gap analysis
- Specification
- Requirements analysis
- Development and refinement of throw-away simulations or prototypes to confirm requirements
- Feasibility and Cost-benefit analysis, including the choice of application architecture and framework, leading to the budget and schedule for the project
- Design
- Implementation (e.g. installation, configuration, programming/customization, integration, data migration)
- Authoring of documentation needed by users and implementation partners etc.
- Testing, including defining/supporting acceptance testing and gathering feedback from pre-release testers
- Participation in software release and post-release activities, including support for product launch evangelism (e.g. developing demonstrations and/or samples) and competitive analysis for subsequent product build/release cycles
- Maintenance
In a large company there may be employees whose sole responsibility may consist of only one of the phases above. In smaller development environments, a few, or even a single individual might handle the complete process. In a small company, the typical involvement of software developers includes every step from initial specification of a project to the completed system. Typically it includes:
- Initial Meeting - where requirements are discussed in detail.
- Proposal - a proposal based on the initial conversation and recommendations on the best approach
- Detailed Design - for most projects, there is usually more design work to clarify exactly how a system should work.
- Update Financials & Agree Contract - if the requirements have changed during the detailed design process, this is the stage to update the project costs.
- Development - software developers start work on the system.
- Functionally Complete - at the end of the development system, a system is delivered which is “functionally complete”, but may need further testing to iron out any bugs.
- Security tests
- System Completed - testing is complete, and the system is ready for use.
[edit] See also
- Bachelor of Science in Information Technology
- Software development
- Software engineering
- Software development process
- Computer and video game development
- Custom software
[edit] References
- ^ a b Eric Sink. "Small ISVs: You need Developers, not Programmers". sourcegear. http://software.ericsink.com/No_Programmers.html. Retrieved 2008-06-06. "A programmer is someone who does nothing but code new features and (if you're lucky) fix bugs. They don't write specs. They don't write automated test cases. They don't help keep the automated build system up to date. They don't help customers work out tough problems. They don't help write documentation. They don't help with testing. They don't even read code. All they do is write new code."
| This computer programming-related article is a stub. You can help Wikipedia by expanding it. |