Software Development Methodologies

Software engineering is considered as the practice of using selected techniques of process to improve the quality of a software development effort. This is based on the supposition, subject to infinite debate and supported by patient experience that a methodical approach to software development results in fewer defects and therefore, finally provides better value and shorter delivery times.

The documented collection of processes, procedures and policies used by a development organization or team to practice software engineering is called as its software development methodology or SDLC i.e. system development life cycle.

The challenge in following and selecting a methodology is to do it sensibly — for providing sufficient process disciplines to bring quality required for success of business, while avoiding steps that squander productivity, waste time, create useless administrivia and demoralize developers. The best approach to apply a methodology is to regard it as a way to manage risk. You can make out risks by looking at past projects.

If your organization has been snowed under problems resulting from management of poor requirements, then a healthy requirements management methodology would be advisable. Once this problem has been solved by way of a repeatable process, the organization might then make its process more efficient, while ensuring that the quality is maintained.

Every step along the system development lifecycle consists of its own risk and numerous techniques are available to improve resulting output quality and process discipline. Moving through development life cycle, you might come across the following main steps:

  • Business case and project charter
  • Definition of the business requirements and business process
  • Documentation of function, user and system requirements
  • Top level architecture, system design and technical approach
  • System decomposition into component and unit design and specifications
  • Unit test planning, coding and unit test
  • Generation of test data for system testing and unit testing
  • System testing and integration
  • Delivery, implementation and cut-over
  • User support and training
  • Routine software maintenance and system upgrade

Following are the main methodologies of software development:

Waterfall methodology: Every project can be managed in a better way when segmented into a hierarchy of chunks like stages, phases, tasks, activities and steps. In system development projects, the simplest version of this is called as the waterfall methodology.

Spiral methodology: The spiral methodologies basically reflect the relationship of tasks with increased parallelism, rapid prototyping and concurrency in design and build activities. The spiral method must be planned methodically, with deliverables and tasks identified for every step in the spiral.

Documentation: Documentation is also considered as an important part of software development. Many a times this step is ignored, only to end up in problems whenever future additions and maintenance are a necessity.

Thus, there are different methodologies of software development which are required to be followed in the process of software development.

Leave a Reply

Your email address will not be published. Required fields are marked *