The field of Software Engineering is relatively new and introduction of scientific approaches for software development has been a recent phenomenon. As software use proliferated in late 70s and early 80s, and as programming languages evolved from assembly languages to higher level procedural and object oriented languages, software development experts in industry and universities started looking for ways to improve quality and reliability of their products. The result was introduction and refinement of Software Development Life Cycle (SDLC) and other formal development methodologies that were based on SDLC.
Today most of the big corporations and military organizations either follow industry standard processes or their slightly modified versions to guide their internal development. Rational Unified Process (RUP) is an example and is one of the most widely used development process, though more and more companies are experimenting with Agile Process that promotes faster development cycles. Readers can search for SDLC on the web to get more details on different stages of SDLC and the importance of each phase. While big corporations recognized the importance of SDLC and adopted it early, the Small and Medium Businesses were not really aware of the changes. The reasons were obvious. Either they were too small to need any automation that software brought, or if they needed any software they bought it off the shelf rather than developing it internally. Understanding SDLC was not really of any use to them. The exception to this was any SMEs that were specifically developing and selling software to other companies.
However, the technology landscape started to shift earlier in this decade and more affordable software development platforms started becoming accessible to SMEs. We covered the popularity of open-source technology stack in an earlier blog and how it helped SMEs adopt new web based software. SMEs are now increasingly using web based applications and mobile applications to run their daily operations. In this environment where more software systems are becoming part of their business operations, it is becoming important for SMEs grasp the importance of Software Development Life Cycle and why they add value to their business.
It is important to note that most SMEs still are not developing their own software. They do not have internal development resources to do so but they are increasingly partnering with outside providers to develop internal systems. Understanding SDLC principles will better equip them to select and sustain better relationship with their outside software development partners. They would better understand different phases of development and what to expect after the provider finishes each of these phases. Completion of each phase can formally require a document that would need to be signed off by both parties. For example, if the provider mentions that it has finished the testing phase, then the customer can ask for formal documentation, such as written test plans, that would indicate that thorough testing has been performed and the results have been added to those test cases. In addition, SMEs would also better comprehend what their responsibilities are in making these software projects a success.
Documenting requirements would force them to think hard about what exactly they want in their product. Discussing test plans would also make SMEs aware of the importance of formal testing, both on the provider side and also on the customer side. We have seen, quite a few times, when SME owners driven by cost or time pressure, insisted on rolling their projects or changes to their existing systems to production environment without going through their own acceptance procedures. While life as an SME owner can be chaotic, it is imperative that they grasp the importance of following processes, since these processes will actually reduce chaos in their operations and will serve them better down the road.
Moreover, SDLC, is not a technical document – rather it’s a process document. So, as such, it is not a very technically challenging read and most readers should be able to understand the basic concepts of phased approach to software development. Time and effort they put in understanding SDLC would definitely be a worthwhile investment for their businesses.