What is a Software Development Process?

A software development process or life cycle is a structure imposed on the development of a software product. There are several models for such processes, each describing approaches to a variety of tasks or activities that take place during the process.


More and more software development organizations implement process methodologies.

The Capability Maturity Model (CMM) is one of the leading models. Independent assessments can be used to grade organizations on how well they create software according to how they define and execute their processes.

There are dozens of others, with other popular ones being ISO 9000, ISO 15504, and Six Sigma.

Process Activities/Steps

Software Engineering processes are composed of many activities, notably the following:

  • Requirements Analysis
    • Extracting the requirements of a desired software product is the first task in creating it. While customers probably believe they know what the software is to do, it may require skill and experience in software engineering to recognize incomplete, ambiguous or contradictory requirements.
  • Specification
    • Specification is the task of precisely describing the software to be written, in a mathematically rigorous way. In practice, most successful specifications are written to understand and fine-tune applications that were already well-developed, although safety-critical software systems are often carefully specified prior to application development. Specifications are most important for external interfaces that must remain stable.
  • Software architecture
    • The architecture of a software system refers to an abstract representation of that system. Architecture is concerned with making sure the software system will meet the requirements of the product, as well as ensuring that future requirements can be addressed.
  • Implementation
    • Reducing a design to code may be the most obvious part of the software engineering job, but it is not necessarily the largest portion.
  • Testing
    • Testing of parts of software, especially where code by two different engineers must work together, falls to the software engineer.
  • Documentation
    • An important task is documenting the internal design of software for the purpose of future maintenance and enhancement.
  • Training and Support
    • A large percentage of software projects fail because the developers fail to realize that it doesn’t matter how much time and planning a development team puts into creating software if nobody in an organization ends up using it. People are occasionally resistant to change and avoid venturing into an unfamiliar area, so as a part of the deployment phase, its very important to have training classes for the most enthusiastic software users (build excitement and confidence), shifting the training towards the neutral users intermixed with the avid supporters, and finally incorporate the rest of the organization into adopting the new software. Users will have lots of questions and software problems which leads to the next phase of software.
  • Maintenance
    • Maintaining and enhancing software to cope with newly discovered problems or new requirements can take far more time than the initial development of the software. Not only may it be necessary to add code that does not fit the original design but just determining how software works at some point after it is completed may require significant effort by a software engineer. About 60% of all software engineering work is maintenance, but this statistic can be misleading. A small part of that is fixing bugs. Most maintenance is extending systems to do new things, which in many ways can be considered new work.

Process Models

A decades-long goal has been to find repeatable, predictable processes or methodologies that improve productivity and quality. Some try to systematize or formalize the seemingly unruly task of writing software. Others apply project management techniques to writing software. Without project management, software projects can easily be delivered late or over budget. With large numbers of software projects not meeting their expectations in terms of functionality, cost, or delivery schedule, effective project management is proving difficult.

Waterfall processes

The best-known and oldest process is the waterfall model, where developers follow these steps in order. They state requirements, analyze them, design a solution approach, architect a software framework for that solution, develop code, test, deploy, and maintain. After each step is finished, the process proceeds to the next step.

Iterative processes

Iterative development prescribes the construction of initially small but ever larger portions of a software project to help all those involved to uncover important issues early before problems or faulty assumptions can lead to disaster. Iterative processes are preferred by commercial developers because it allows a potential of reaching the design goals of a customer who does not know how to define what he wants.

Agile software development processes are built on the foundation of iterative development. To that foundation they add a lighter, more people-centric viewpoint than traditional approaches. Agile processes use feedback, rather than planning, as their primary control mechanism. The feedback is driven by regular tests and releases of the evolving software.

Agile processes seem to be more efficient than older methodologies, using less programmer time to produce more functional, higher quality software, but have the drawback from a business perspective that they do not provide long-term planning capability. In essence, they say that they will provide the most bang for the buck, but won’t say exactly when that bang will be.

Extreme Programming, XP, is the best-known agile process. In XP, the phases are carried out in extremely small (or “continuous”) steps compared to the older, “batch” processes. The (intentionally incomplete) first pass through the steps might take a day or a week, rather than the months or years of each complete step in the Waterfall model. First, one writes automated tests, to provide concrete goals for development. Next is coding (by a pair of programmers), which is complete when all the tests pass, and the programmers can’t think of any more tests that are needed. Design and architecture emerge out of refactoring, and come after coding. Design is done by the same people who do the coding. The incomplete but functional system is deployed or demonstrated for the users (at least one of which is on the development team). At this point, the practitioners start again on writing tests for the next most important part of the system.

While Iterative development approaches have their advantages, software architects are still faced with the challenge of creating a reliable foundation upon which to develop. Such a foundation often requires a fair amount of upfront analysis and prototyping to build a development model. The development model often relies upon specific design patterns and entity relationship diagrams (ERD). Without this upfront foundation, Iterative development can create long term challenges that are significant in terms of cost and quality.

Critics of iterative development approaches point out that these processes place what may be an unreasonable expectation upon the recipient of the software: that they must possess the skills and experience of a seasoned software developer. The approach can also be very expensive, akin to… “If you don’t know what kind of house you want, let me build you one and see if you like it. If you don’t, we’ll tear it all down and start over.” A large pile of building-materials, which are now scrap, can be the final result of such a lack of up-front discipline. The problem with this criticism is that the whole point of iterative programming is that you don’t have to build the whole house before you get feedback from the recipient. Indeed, in a sense conventional programming places more of this burden on the recipient, as the requirements and planning phases take place entirely before the development begins, and testing only occurs after development is officially over.

The are many other methods to those listed above, and you can find out more by visiting the websites below.

Support for Software Development Processes

Select has been a major player in the development of iterative and incremental development processes over the last 20 years. Our tools therefore provide relevant facilities for those looking to use such processes.

Related posts

25 Replies to “What is a Software Development Process?
  1. 香港物業按揭. 無論您是首次置業或是換樓,工銀亞洲都能夠為您提供度身訂做的按揭貸款計劃,切合您的真正需要。 全面樓宇按揭服務. 一般按揭貸款計劃. 適合購買 …

  2. 9合1升級保護,提升全面防護!!! 相比之前四合一的疫苗只能預防四種hpv病毒,70的相關癌症。 九合一可以預防9種hpv病毒,可預防高達90以上的子宮頸癌、外陰癌、陰道癌和肛門癌及癌前病變等。 HPV9合1子宮頸癌疫苗 Gardasil 功效 100 預防高危致癌的 HPV 16、18、31、33、45、52 及 58 型號 (可減低 90 患子宮頸癌、、90-95 肛門癌、85-90 外陰癌、80-85 陰道癌及相關癌前病變的風險) 100 減低引致生殖器官濕疣 (俗稱「椰菜花」) 的 HPV 6、11 型的感染 (可減低超過 90 患生殖器官濕疣的風險) 男性方面,能減低患上肛門癌、生殖器官濕疣 (俗稱「椰菜花」) 及傳播 HPV 病毒的風險 注射位置紅腫及痛、輕微發燒和頭痛,至今未有嚴重副作用記錄高濃度透明質酸

  3. Annie`s Way 【舒緩面膜系列】燕麥溫和隱形面膜 Oats Soothing Invisible Silk Mask的商品介紹 Annie`s Way,舒緩面膜系列,燕麥溫和隱形面膜 Oats Soothing Invisible Silk Mask光纖

  4. I want to get across my respect for your kind-heartedness supporting men and women who should have assistance with this particular matter. Your very own commitment to passing the message all around came to be remarkably productive and has specifically made others much like me to attain their objectives. Your own useful hints and tips indicates a great deal a person like me and even further to my mates. Warm regards; from each one of us.

  5. I am only writing to make you be aware of what a perfect experience my princess enjoyed reading through yuor web blog. She came to find many things, with the inclusion of how it is like to have a wonderful teaching mood to make certain people with ease gain knowledge of several specialized topics. You actually did more than people’s desires. I appreciate you for presenting the productive, trusted, explanatory and also unique guidance on your topic to Tanya.

  6. My spouse and i were really ecstatic when Louis could finish up his reports by way of the ideas he made out of the web pages. It is now and again perplexing to just find yourself giving freely tips and tricks that many people could have been selling. And we also take into account we have got the writer to be grateful to for that. These explanations you’ve made, the simple blog navigation, the friendships you will help to promote – it is mostly awesome, and it’s aiding our son and us feel that this theme is enjoyable, and that is exceedingly essential. Many thanks for the whole thing!

  7. I not to mention my buddies happened to be examining the excellent information located on your web blog while at once I had a horrible feeling I had not thanked you for those tips. Most of the women ended up certainly excited to read them and have now seriously been having fun with those things. Thank you for actually being very accommodating as well as for utilizing this kind of perfect tips most people are really needing to understand about. My sincere apologies for not expressing appreciation to sooner.

  8. I’m commenting to let you be aware of what a superb discovery my friend’s child went through reading through your webblog. She discovered a lot of issues, with the inclusion of how it is like to have a very effective coaching mindset to get certain people clearly thoroughly grasp a variety of advanced issues. You really exceeded visitors’ desires. Thanks for presenting such practical, safe, educational as well as cool tips about the topic to Evelyn.

  9. I would like to show some thanks to you for bailing me out of this circumstance. Just after surfing throughout the search engines and seeing ideas that were not powerful, I believed my entire life was over. Living minus the solutions to the difficulties you have resolved all through your good guideline is a crucial case, and the ones which might have in a wrong way damaged my career if I hadn’t encountered your web site. Your primary capability and kindness in handling everything was precious. I am not sure what I would’ve done if I hadn’t discovered such a subject like this. I can now look ahead to my future. Thanks very much for this impressive and results-oriented help. I won’t hesitate to suggest your web sites to anyone who ought to have assistance on this problem.

  10. I am commenting to let you know of the wonderful encounter my wife’s daughter encountered visiting yuor web blog. She came to find many things, which included what it is like to possess a very effective coaching spirit to let the rest with no trouble learn about specified tortuous subject areas. You really surpassed people’s desires. I appreciate you for supplying such necessary, healthy, revealing and as well as fun thoughts on the topic to Mary.

  11. Thank you a lot for providing individuals with such a pleasant possiblity to discover important secrets from this website. It is often so beneficial and also full of a good time for me and my office peers to visit your site more than 3 times in a week to learn the latest issues you have got. And definitely, we’re always fascinated with all the awesome things you serve. Certain two facts in this posting are unquestionably the finest we’ve had.

  12. I wish to get across my respect for your kind-heartedness giving support to women who really want help with this area of interest. Your personal commitment to passing the solution throughout appeared to be pretty beneficial and have surely allowed girls much like me to get to their ambitions. Your new valuable key points entails a whole lot to me and much more to my peers. Warm regards; from all of us.

  13. I am only writing to let you understand what a wonderful experience my child experienced viewing your site. She mastered a wide variety of pieces, most notably what it is like to have an excellent teaching style to let the mediocre ones very easily know several advanced subject matter. You undoubtedly surpassed people’s expected results. I appreciate you for providing the insightful, trustworthy, edifying and also easy thoughts on this topic to Tanya.

  14. I have to point out my admiration for your kind-heartedness giving support to individuals who really need help on this one concern. Your special dedication to getting the message along turned out to be remarkably interesting and has truly permitted ladies just like me to arrive at their goals. Your amazing informative instruction denotes a lot a person like me and extremely more to my mates. Thanks a lot; from each one of us.

  15. My wife and i were so thrilled that Emmanuel could round up his inquiry from your precious recommendations he acquired while using the weblog. It is now and again perplexing just to be giving away tips and tricks that many others might have been trying to sell. And now we already know we’ve got the blog owner to be grateful to because of that. The main illustrations you’ve made, the simple web site navigation, the friendships your site make it possible to instill – it’s most extraordinary, and it’s really facilitating our son in addition to the family believe that that situation is awesome, which is certainly rather essential. Many thanks for everything!

  16. I definitely wanted to develop a brief message to thank you for the lovely points you are sharing at this site. My long internet research has at the end of the day been paid with useful strategies to go over with my partners. I would mention that many of us site visitors actually are extremely lucky to be in a fabulous place with very many awesome individuals with interesting hints. I feel rather lucky to have encountered your web page and look forward to plenty of more brilliant moments reading here. Thanks a lot once more for a lot of things.

  17. I and also my friends happened to be reviewing the excellent information and facts on your web blog while all of a sudden I got an awful suspicion I never thanked the web blog owner for those secrets. All of the women ended up as a consequence stimulated to read through them and have in effect definitely been loving these things. Many thanks for turning out to be simply considerate and for making a decision on certain marvelous subject matter most people are really wanting to understand about. My sincere apologies for not saying thanks to sooner.

  18. I want to express my affection for your generosity supporting those people who should have help on the niche. Your special dedication to passing the message up and down appeared to be quite invaluable and have consistently enabled others much like me to reach their targets. This warm and helpful facts entails so much a person like me and substantially more to my office workers. Thank you; from all of us.

  19. My spouse and i ended up being absolutely excited that Jordan managed to conclude his inquiry through the ideas he acquired through the web site. It’s not at all simplistic to just choose to be offering guidance that many many people may have been trying to sell. And we all know we need the blog owner to be grateful to for that. The main explanations you’ve made, the easy site menu, the relationships your site help to create – it’s got all extraordinary, and it’s leading our son in addition to our family reason why that subject is pleasurable, which is tremendously mandatory. Many thanks for all!

  20. I wish to express my appreciation to the writer for rescuing me from such a condition. As a result of surfing through the the web and meeting views which are not powerful, I was thinking my entire life was done. Being alive devoid of the answers to the problems you have sorted out by way of your short post is a serious case, as well as those that would have negatively affected my entire career if I hadn’t encountered your site. Your actual know-how and kindness in dealing with all the things was tremendous. I am not sure what I would have done if I hadn’t come across such a subject like this. I can at this point look ahead to my future. Thanks a lot very much for the high quality and amazing guide. I won’t hesitate to recommend the website to anybody who will need care on this issue.

  21. I in addition to my buddies came reading through the best points on your web blog and so all of a sudden came up with an awful suspicion I never thanked the blog owner for those secrets. Most of the young boys came absolutely stimulated to read through all of them and now have quite simply been taking pleasure in these things. I appreciate you for really being considerably considerate and for obtaining variety of nice subjects most people are really desperate to be aware of. Our own honest apologies for not expressing gratitude to you earlier.

  22. I actually wanted to construct a small remark in order to express gratitude to you for those splendid suggestions you are posting at this site. My incredibly long internet investigation has finally been recognized with extremely good tips to share with my guests. I would point out that we website visitors are truly endowed to dwell in a very good network with many outstanding professionals with interesting secrets. I feel quite lucky to have encountered your entire website and look forward to some more exciting moments reading here. Thanks a lot once again for everything.

Leave a Reply