All Topics  
Software development

 

   Email Print
   Bookmark   Link






 

Software development



 
 
Software development is the set of activities that results in software products. Software development may include research, new development, modification, reuse, re-engineering, maintenance, or any other activities that result in software products. Especially the first phase in the software development process may involve many departments, including marketing
Marketing

Marketing is defined by the American Marketing Association as the activity, set of institutions, and processes for creating, communicating, delivering, and exchanging offerings that have value for customers, clients, partners, and society at large....
, engineering
Engineering

Engineering is the discipline and profession of applying Technology and science knowledge and utilizing natural laws and physical resources in order to design and implement materials, structures, machines, devices, systems, and process that safely realize a desired objective and meet specified criteria....
, research and development
Research and development

The phrase research and development , according to the Organization for Economic Co-operation and Development, refers to "creative work undertaken on a systematic basis in order to increase the stock of knowledge, including knowledge of man, culture and society, and the use of this stock of knowledge to devise new applications [sic]" ...
 and general management
Management

Management in business and human organization activity is simply the act of getting people together to accomplish desired goals. Management comprises planning, organizing, staffing, leadership or directing, and Control an organization or effort for the purpose of accomplishing a goal....
.

The term software development may also refer to computer programming
Computer programming

Computer programming is the process of writing, testing, debugging/troubleshooting, and maintaining the source code of computer programs. This source code is written in a programming language....
, the process of writing and maintaining the source code.

e are several different approaches to software development, much like the various views of political parties toward governing a country.






Discussion
Ask a question about 'Software development'
Start a new discussion about 'Software development'
Answer questions from other users
Full Discussion Forum



Encyclopedia


Software development is the set of activities that results in software products. Software development may include research, new development, modification, reuse, re-engineering, maintenance, or any other activities that result in software products. Especially the first phase in the software development process may involve many departments, including marketing
Marketing

Marketing is defined by the American Marketing Association as the activity, set of institutions, and processes for creating, communicating, delivering, and exchanging offerings that have value for customers, clients, partners, and society at large....
, engineering
Engineering

Engineering is the discipline and profession of applying Technology and science knowledge and utilizing natural laws and physical resources in order to design and implement materials, structures, machines, devices, systems, and process that safely realize a desired objective and meet specified criteria....
, research and development
Research and development

The phrase research and development , according to the Organization for Economic Co-operation and Development, refers to "creative work undertaken on a systematic basis in order to increase the stock of knowledge, including knowledge of man, culture and society, and the use of this stock of knowledge to devise new applications [sic]" ...
 and general management
Management

Management in business and human organization activity is simply the act of getting people together to accomplish desired goals. Management comprises planning, organizing, staffing, leadership or directing, and Control an organization or effort for the purpose of accomplishing a goal....
.

The term software development may also refer to computer programming
Computer programming

Computer programming is the process of writing, testing, debugging/troubleshooting, and maintaining the source code of computer programs. This source code is written in a programming language....
, the process of writing and maintaining the source code.

Overview

There are several different approaches to software development, much like the various views of political parties toward governing a country. Some take a more structured, engineering-based approach to developing business solutions, whereas others may take a more incremental approach, where software evolves as it is developed piece-by-piece. Most methodologies share some combination of the following stages of software development:

  • Market research
  • Gathering requirements for the proposed business solution
  • Analyzing the problem
  • Devising a plan or design for the software-based solution
  • Implementation (coding) of the software
  • Testing the software
  • Deployment
  • Maintenance and bug fixing


These stages are often referred to collectively as the software development lifecycle, or SDLC. Different approaches to software development may carry out these stages in different orders, or devote more or less time to different stages. The level of detail of the documentation produced at each stage of software development may also vary. These stages may also be carried out in turn (a “waterfall” based approach), or they may be repeated over various cycles or iterations (a more "extreme" approach). The more extreme approach usually involves less time spent on planning and documentation, and more time spent on coding and development of automated tests. More “extreme” approaches also promote continuous testing throughout the development lifecycle, as well as having a working (or bug-free) product at all times. More structured or “waterfall” based approaches attempt to assess the majority of risks and develop a detailed plan for the software before implementation (coding) begins, and avoid significant design changes and re-coding in later stages of the software development lifecycle.

There are significant advantages and disadvantages to the various methodologies, and the best approach to solving a problem using software will often depend on the type of problem. If the problem is well understood and a solution can be effectively planned out ahead of time, the more "waterfall" based approach may work the best. If, on the other hand, the problem is unique (at least to the development team) and the structure of the software solution cannot be easily envisioned, then a more "extreme" incremental approach may work best. A software development process is a structure imposed on the development of a software product. Synonyms include software life cycle
Software Lifecycle Processes

Software lifecycle processes are methods and standards for improving and mastering development processes, supporting processes and management processes throughout the software lifecycle....
 and software process. There are several models
Software development process

A software development process is a structure imposed on the development of a software product. Synonyms include Software_Lifecycle_Processes and software process....
 for such processes, each describing approaches to a variety of tasks or activities
Software development process

A software development process is a structure imposed on the development of a software product. Synonyms include Software_Lifecycle_Processes and software process....
 that take place during the process.

Software development topics


Marketing

The sources of ideas for software products are legion. These ideas can come from market research
Market research

Market research often refers to either primary or secondary. In secondary research, the company uses information compiled from various sources which appears applicable to a new or existing product....
 including the demographics
Demographics

Demographic or demographic data refers to selected population characteristics as used in government, marketing or opinion research, or the demographic profiles used in such research....
 of potential new customers, existing customers, sales prospects who rejected the product, other internal software development staff, or a creative third party. Ideas for software products are usually first evaluated by marketing
Marketing

Marketing is defined by the American Marketing Association as the activity, set of institutions, and processes for creating, communicating, delivering, and exchanging offerings that have value for customers, clients, partners, and society at large....
 personnel for economic feasibility, for fit with existing channels distribution, for possible effects on existing product lines, required features, and for fit with the company's marketing objectives. In a marketing evaluation phase, the cost and time assumptions become evaluated. A decision is reached early in the first phase as to whether, based on the more detailed information generated by the marketing and development staff, the project should be pursued further.

In the book "Great Software Debates", Alan M. Davis
Alan M. Davis

Alan Mark Davis is Professor in the College of Business at the University of Colorado at Colorado Springs. Davis earned his Ph.D. in Computer Science from the University of Illinois at Urbana-Champaign in 1975....
 states in the chapter "Requirements", subchapter "The Missing Piece of Software Development":

Because software development may involve compromising or going beyond what is required by the client, a software development project may stray into less technical concerns such as human resources
Human resources

Human resources is a term with which organizations describe the combination of traditionally administrative personnel functions with performance, Employee Relations and Resource planning....
, risk management
Risk management

Risk management is activity directed towards the assessing, mitigating and monitoring of risks. In some cases the acceptable risk may be near zero....
, intellectual property
Intellectual property

Intellectual property are law property over creations of the mind, both artistic and commercial, and the corresponding fields of law. Under intellectual property law, owners are granted certain exclusive rights to a variety of intangible assets, such as musical, literary, and artistic works; ideas, discoveries and inventions; and words, phra...
, budgeting, crisis management
Crisis management

A crisis is a major, unpredictable event that threatens to harm an organization and its stakeholders. Although crisis events are unpredictable, they are not unexpected ....
, etc. These processes may also cause the role of business development
Business development

In the field of commerce, the specialist area of business development comprises a number of techniques and responsibility which aim at gaining new customers and at penetrating existing markets....
 to overlap with software development.

Software development methodology

A software development methodology
Software development methodology

A software development methodology or system development methodology in software engineering is a framework that is used to structure, plan, and control the software development process an information system....
 is a framework that is used to structure
Structure

Structure is a fundamental and sometimes intangible notion covering the recognition, observation, nature , and stability of patterns and relationships of entities....
, plan
Plan

A plan is typically any procedure used to achieve an objective. It is a set of intended actions, through which one expects to achieve a goal.Plans can be formal or informal:...
, and control
Control

Control is used in a variety of contexts to express "mastery" or "proficiency": e.g. "Music students attending a master class are expected to have full control of basic skills such as rhythm and pitch" and more generally an ability to purposefully direct change....
 the process
Process

Process may refer to:Biology*Process , a projection or outgrowth of tissue from a larger body* Biological processScience and technnology*Process , a computer program or an instance of a program running concurrently with other programs...
 of developing information systems. A wide variety of such frameworks have evolved over the years, each with its own recognized strengths and weaknesses. One system development methodology is not necessarily suitable for use by all projects. Each of the available methodologies is best suited to specific kinds of projects, based on various technical, organizational, project and team considerations.

Recent trends in the sector

Given the rapid growth of this sector, several companies have started to use offshore development in China
China

China is a Culture of China, an ancient civilization, and, depending on perspective, a national or multinational entity extending over a large area in East Asia....
, India
India

India, officially the Republic of India , is a country in South Asia. It is the List of countries and outlying territories by total area country by geographical area, the List of countries by population country, and the most populous liberal democracy in the world....
 and other countries with a lower cost per developer model. Several new Web 2.0
Web 2.0

The term "Web 2.0" refers to a perceived second generation of web development and web design, that aims to facilitate communication, secure information sharing, interoperability, and collaboration on the World Wide Web....
 platforms and sites are now developed offshore while management is located in Western countries. The advantages mostly revolve around better cost-control over the process, which means that there is lower cash-outflow (often the biggest struggle for startups). Furthermore, the time difference when working with India and China for the Western world allows work to be done round the clock adding a competitive advantage. Notable firms that are involved in development include Tata Consultancy Services
Tata Consultancy Services

Tata Consultancy Services Limited is an Indian software services and consulting company. It is India's largest provider of information technology and business process outsourcing services....
, Infosys
Infosys

Infosys Technologies Limited is a Multinational corporation information technology services company headquartered in Bangalore, India. It is one of India's largest IT companies with over 100,000 professionals as of Sep 30, 2008....
, Wipro, and Satyam.

See also

  • Alliances between product software firms
  • Application software
    Application software

    Application software is any tool that functions and is operated by means of a computer, with the purpose of supporting or improving the software user 's work....
  • Aspect-Oriented Software Development
    Aspect-oriented software development

    Aspect-oriented software development is an emerging software development methodology that seeks new modularizations of software systems. AOSD allows multiple concerns to be expressed separately and automatically unified into working systems....
  • Computer programmer
  • Custom software development
    Custom software development

    Custom software development, also known as custom software engineering, defines omitting of predeveloped solutions and views. If a customer wants to believe that their favour is unique and putting their ideas into practice, custom software development technologies are custom approaches to solving their problems....
  • Incremental funding methodology
    Incremental funding methodology

    The Incremental Funding Methodology is an Rate of return-informed approach to software development in which software is developed and delivered in carefully prioritized chunks of customer valued functionality....
  • Functional specification
    Functional specification

    A functional specification in systems engineering and software development, is the set of documentation that describes the requested behavior of an engineering system....
  • Marketing strategies for product software
    Marketing strategies for product software

    Marketing strategies for product software assist software firms to determine the type of market analysis that is needed for decision-making. Two general strategies that are well known in the marketing discipline are:...
  • Offshore software development
  • Search Based Software Engineering
  • Service-Oriented Modeling
    Service-oriented modeling

    Service-oriented modeling is the discipline of modeling business and systems, for the purpose of designing and specifying service-oriented business systems within a service-oriented architecture....
     Framework
  • Software blueprint
    Software blueprint

    A software blueprint is the final product of a software blueprinting process. Its name derives from the analogy drawn with the popular use of the term blueprint ....
  • Software company
  • Software design
    Software design

    Software design is a process of problem-solving and planning for a software solution. After the purpose and specifications of software are determined, software developers will design or employ designers to develop a plan for a solution....
  • Software developer
    Software developer

    A software developer is a person or organization concerned with facets of the software development process wider than design and coding, a somewhat broader scope of computer programming or a specialty of project manager including some aspects of Software product management....
  • Software development effort estimation
    Software development effort estimation

    Software development effort estimation is the process of predicting the most realistic use of effort required to develop or maintain software based on incomplete, uncertain and/or noisy input....
  • Software development process
    Software development process

    A software development process is a structure imposed on the development of a software product. Synonyms include Software_Lifecycle_Processes and software process....
  • Software development rhythms
    Software Development Rhythms

    The approach of software development rhythms seeks to answer the key question of whether programmer productivity is impacted by the various agile practices, rather than by any single software development method....
  • Software distribution
  • Software engineering economics
  • Software industry
    Software industry

    The software industry includes businesses involved in the software development, software maintenance and software publisher of computer software using any business model....
  • Software project management
    Software project management

    Software project management is a sub-discipline of project management in which software projects are planned, monitored and controlled....
  • Software publisher
    Software publisher

    A software publisher is a publishing company in the software industry between the software developer and the distribution . In some companies, two or all three of these roles may be combined ....
  • Software user experience design
  • System software
    System software

    System software is closely related to, but distinct from Operating System software. It is any computer software that provides the infrastructure over which programs can operate, i.e....
  • Video game development
  • Web application development
    Web application development

    Web application development is the process and practice of developing web applications ....
  • Web development
    Web development

    Web development is a broad term for any activity related to developing a web site for the World Wide Web or an intranet. This can include e-commerce business development, web design, web content development, Client-side scripting/server-side scripting programming, and web server configuration....
  •  


    Further reading

    • Jim McCarthy (1995). Dynamics of Software Development.
    • Dan Conde (2002). Software Product Management: Managing Software Development from Idea to Product to Marketing to Sales.
    • A.M. Davis (2005). Just enough requirements management: where software development meets marketing.
    • Edward Hasted. (2005). Software That Sells : A Practical Guide to Developing and Marketing Your Software Project.
    • Luke Hohmann (2003). Beyond Software Architecture: Creating and Sustaining Winning Solutions.
    • John W. Horch (2005). "Two Orientations On How To Work With Objects." In: IEEE Software. vol. 12, no. 2, pp. 117-118, Mar., 1995.
    • John Rittinghouse (2003). Managing Software Deliverables: A Software Development Management Methodology.
    • Karl E. Wiegers (2005). More About Software Requirements: Thorny Issues and Practical Advice.
    • Robert K. Wysocki (2006). Effective Software Project Management.