Software development
Each of the available methodologies is best suited to specific kinds of projects, based on various technical, organizational, project and team considerations. Given the rapid growth of this sector, several companies have started to use offshore development in China, India and other countries with a lower cost per developer model. 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.Davis 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, risk management, intellectual property, budgeting, crisis management, etc. The level of detail of the documentation produced at each stage of software development may also vary.
Several new Web 2.0 platforms and sites are now developed offshore while management is located in Western countries. 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.
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). One system development methodology is not necessarily suitable for use by all projects.
The more extreme approach usually involves less time spent on planning and documentation, and more time spent on coding and development of automated tests. A wide variety of such frameworks have evolved over the years, each with its own recognized strengths and weaknesses.
Notable firms that are involved in development include Tata Consultancy Services, Infosys, Wipro, and Satyam. The end of the 1990 provided W3C standards. This approach finds its justification in the use of semantic technologies with substitution of www data with verified production data.
There are several models for such processes, each describing approaches to a variety of tasks or activities that take place during the process. The sources of ideas for software products are legion. In the book Great Software Debates , Alan M. More “extreme” approaches also promote continuous testing throughout the development lifecycle, as well as having a working (or bug-free) product at all times.
One business case for this developement method is available at the finance ontology website. Development models: Agile • Iterative model • RUP • Scrum • Spiral model • Waterfall model • XP • V-Model Other models: Automotive SPICE • CMMI • Data model • Function model • Information model • Metamodeling • Object model • Systems model • View model . Synonyms include software life cycle and software process.
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.
These processes may also cause the role of business development to overlap with software development. A software development methodology is a framework that is used to structure, plan, and control the process of developing information systems. Software development may include research, new development, modification, reuse, re-engineering, maintenance, or any other activities that result in software products. The term software development may also refer to computer programming, the process of writing and maintaining the source code. There are several different approaches to software development, much like the various views of political parties toward governing a country.
Different approaches to software development may carry out these stages in different orders, or devote more or less time to different stages. Software development is the set of activities that results in software products.
A software development process is a structure imposed on the development of a software product. 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.
Most methodologies share some combination of the following stages of software development: These stages are often referred to collectively as the software development lifecycle, or SDLC. 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).
