Software Development Process

Abstract

 A software development process also called software development lifecycle imposes the development approach that will be used in developing a software product. There are several models that can be used for such process that usually describe the approach, and its activities or tasks that such model has to go through during the development process.

Software Process

Software engineering or development process encompasses many activities such as: requirements analysis, specifications, software architecture, implementation, testing, documentation, training and support, and maintenance. Selectbs.com (2011) explained that each of the above activities required certain tasks that need to be achieved to complete the development lifecycle. For example, one of the requirements analysis activities is the extracting of the desired software product requirements while in the specification process activities one of the tasks that need to be achieved is describing precisely the specification of the software that will be written.

As the process model adopted within the software development lifecycle dictates how the development process will be achieved, and represents predictable; and repeatable process or methodologies, such model can lead to improving software quality and productivity. Selectbs.com (2011) explained that the oldest process model is the waterfall model where the development team follow specific steps in certain orders (e.g. requirements elicitation; system analysis, design; choosing the solution and architecture approach, code development, testing, deployment, and software maintenance).

Another process model that can be used within the software development process is the iterative processes model which is used within small software development projects. Such model can help the software development project to identify early the important issues or faulty assumptions that can lead to problems within the project.  Selectbs.com (2011) explained that such process allows of reaching users with the potential software design goals where requirements are hard to be identified by users.

Agile process represents more efficient methodologies than the old approaches where such model adds more user-centric viewpoint than the traditional approaches. In such model user feedback rather than planning is used as a primary control mechanism that promotes different releases and tests of the software involved. The Agile process produces higher quality software and more functional, and user friendly software. However such process from the business perspective has its drawback where the process doesn’t provide the long-term planning capability that can include future opportunity for the business to grow (Selectbs.com, 2011).

Steps to improve the software process

Westfall (2005) explained that part of the steps required to improve the development process is the continuous application of measurement-based techniques that can lead to improve the final product and the development process.  In measuring such process, it is important that the entities, and their attributes within such process to be identified. It’s also essential that the goal of such improvement to be identified through different questions that can promote the quality of the process.

 Kandt (2002) argued that one of the approaches that any organization can take to improve its software quality is improving the software process, however most process models purely identify the technical approaches for the process improvement without considering the organizational structure or its culture. To overcome these barriers in such models, the following are the proposed steps to improve the development process:

 

  • The organization has to define an organizational vision that can state the organization’s uniqueness, and set the high quality, and productivity standards that can guide such organization to a better improvement in the software process.
  • That organization has to articulate a compelling need for change to identify business opportunities and threats.
  • Organization should focus on the change effort on the new projects since it’s difficult to change the processes of existing projects.
  • Organization need to recognize what the customers are value most, and determine what strategies, policies, and processes required for improvement to add such value to the organizations’ customers.
  • Organizations must adopt certain approaches to implement changes to their software process.
  • Culture and technical risks usually exist when an organization attempts to change. Technical risks occur when the required changes don’t work as expected, and as such; it’s important for any organization to identify such risks, and establish the plan that can deal with these risks.
  • Organizations must align the training program to their development team along with the change effort required for the software process improvement.
  • Establishing the right communication channels within the organization that can be used to obtain acceptance of the change, and its essential for any improvement.
  • Using the right metrics within any organization that can measure the personal productivity and the product quality within the organization is an important task for software process improvement.

Conclusion

Software development process required many steps and tasks that should be included based on the model used for such process, and as such; missing any part of such tasks will lead to chaos within any Software development project. Also, it is imperative that the development team understand the value of each step required within the development lifecycle.

Finally, improving the software process required a dedication from the organization to set the goals, and the vision that can lead to the software process improvement.

References

Kandt, R. (2002) Ten Steps to Successful Software Process Improvement [Online]. Available from: http://trs-new.jpl.nasa.gov/dspace/bitstream/2014/7182/1/03-0842.pdf (Accessed: 21 June 2011).

Selectbs.com (2011) What is a Software Development Process? [Online]. Available from: http://www.selectbs.com/analysis-and-design/what-is-a-software-development-process (Accessed: 21 June 2011).

Westfall, L. (2005) 12 Steps to Useful Software Metrics [Online]. Available from: http://www.westfallteam.com/Papers/12_steps_paper.pdf (Accessed: 21 June 2011).

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: