Software Development refers to a set of computer science activities dedicated to the process of creating, designing, deploying, and supporting software. At IBM Research, software development addresses all facets of writing and running software code.
While development involves the tools, methodologies and processes necessary to create software, it also concerns the code and algorithms that physicists, device fabricators, service scientists, chemists, and hardware makers need to write in the course of doing their work. That is, software development also involves the activities of skilled individuals who develop project-specific software code even though they themselves are not primarily software developers.
Software development touches on other core computer science issues:
- Interactivity and interoperability. Software developers need to anticipate what can go wrong and what preemptive measures can be taken to make sure disparate software programs can work together. They also need to take into account the “mashup” of new software technologies with legacy software systems.
- Security and privacy. Software developers must secure the integrity of software operations; ensure user privacy; prevent data security breaches, and accommodate redundancies to protect against unwanted outcomes.
In short, if human beings could create error-free systems, nobody would have to worry about software development. The fact is software programs are still written by people, not machines – which are worse in some ways because they make the same error many times over. To the extent that people and systems are fallible, software development will concern itself with how people are writing code and what the consequences of that code will be.