Software Development - overview
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.
Indeed, some 90 percent of Services-oriented technology depends on using software development skills. About 80 percent of Systems-oriented technology and 5 percent of hardware makers also use these skills to create models and flesh out ideas. The main goal of these software operations, however, is not the development of code. Instead code is generated in order to create services or products that will be delivered to the enterprise or consumer market. Software developers come into the picture when they take this "raw" code, run and test it, correct errors and further develop it.
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. How certain are the developers that whatever they say will happen actually will be done by the software? What happens if the software doesn't work? What can be done to repair it?
Organizations that have profited from IBM's research into software development include:
- A leading communications and information services provider had to deliver frequent incremental software upgrades as it sought to reengineer its IT model. The company’s Siebel team, which piloted the solution, cut release cycles from four to two months. The development team worked to find defects earlier using automated build and test capabilities, which ultimately helped reduce the number of defects in software systems.
- An online healthcare information provider needed a more efficient, reliable and engaging process to deploy new products. The challenge: To deliver up-to-date health information to consumers via a system consisting of 200+ applications. The provider's existing deployment solution was problematic. It relied on tools designed for other purposes. It also involved many manual steps, which introduced the potential for human error. IBM software developers worked with the provider to automate the deployment of applications, configure middleware and database changes into the software development process, and build out a test environment.
At IBM, these professional interest communities (PIC) comprise Software Development:
- Algorithms & Theory
- Distributed and Fault-Tolerant Computing
- Human Computer Interaction
- Programming Languages and Software Engineering
- User Interface Technologies
|MEDIA||PRODUCTS||RESEARCH||WORK WITH US|
Last updated on July 1, 2104