Mandating Development Methods
Mandating particular software development and testing strategies
What does it mean???
It means to mandate any approach, procedure, or execution that aims to reduce software defects through collaboration among software programmers. This process includes testing methods, code reviews, and affirmation. This also includes the R&D cycle and regular QA sessions which further solidifies the methodology framework. Although there is no one “best methodology,” the processes play a huge role in mandating the various methodologies. These processes are probably the best practice methods during the software development stage. They serve to ‘prevent’ and ‘reduce’ software defects rather than identifying them. Some of the common practices include writing code and testing codes. Writing codes are usually done after software programmers come up with a feasible software project. Upon verifying that the project is doable, then the coding of the product begins to guarantee that no coding flaws are present in the final product. After that comes the code testing process where testing methodically, programmers examine through repeating the tests, and ensure that there really aren’t any coding defects. Though there really isn’t a ‘silver bullet’ for eliminating software bugs, the processes during the software development phase play a key role in mandating the testing strategies for better software development.
PROS TO STANDARDIZED DEVELOPMENT
- The way in which code is made will be standardized to a high level and therefore it can be expected that fewer bugs will remain in the final product’s software.
- With products produced with the same requirements in mind, users and developers can come to know what to expect from products and code that they might use. This would allow for greater ease of use for consumers and future users of the code base.
- Collaborating project teams can more easily understand code if it is standardized. This will consistently make code easier to build for coding teams of all sizes.
CONS TO STANDARDIZED DEVELOPMENT
- Cost of Development
The process of catching and fixing software bugs already covers a majority of the cost. The earlier programmers notice a defect, the less expensive it gets. Bugs have to be identified by where they were found or show up during the software development process.(testing and maintenance stages) So the longer it takes to find the bug, (which happens in most cases) the more expensive it becomes for debuggers.
- Poor Quality
One of the most bothersome issues in mandating software development and testing is the prevalence of bugs and errors that appear after the material has been produced and send to the market. Software malfunction not only leads to loss of business and customers, but also in name of the company. The below table is the damage taken by the aerospace corporation throughout the past two decades due to poor quality software.
- Timing Issue
Passing legislation also increases the time for products to be available in the software market. The longer a product is in development, the more it will cost. Also, this problem often causes the loss in profit for certain products as the market is extremely competitive these days.
Panama’s Cancer Institute: In November of 2000, 28 patients were exposed to massive overdoses of gamma rays. This was due to poor software design in the radiation machinery. 21 of the patients have died and although many might have died from cancer anyways, it is estimated that at least 5 died from radiation poisoning. Multidata Systems International has been subject to lawsuits consistently since this happened. Creating a standard product development method with many quality assurance tests would allow for such unfortunate occurrences to be avoided.
Raytheon: The corporation responsible for production of the Patriot Missile System, Raytheon has been subject to serious scrutiny recently. In 1991, during Desert Storm, a malfunction in a Patriot Missile battery resulted in the deaths of 28 Americans. A SCUD missile was fired at an American barracks, which the Patriot missile should have been able to fire down. More recently, during Operation Iraqi Freedom, 2 friendly planes were shot down by a malfunctioning Patriot Missile battery. Both of these situations might have been avoided if a greater amount of quality assurance tests were used.
Poor Quality: Not many companies find it easy to manufacture a top quality product with low defect rates. Studies have shown that reducing the number of software bugs will most likely increase the amount of development time. A finding made by IBM a few decades ago showed that products with fewer defect counts will take less time to make. After surveying a few companies and their software products, IBM reported that poor quality was one of the main reasons for not finishing a product in a given time.
Bugs and Mistakes: Justin Vincent, who authored the ezSQL library found that by using testing teams and testing cycles correctly entrepreneurs allow their developers to produce code as fast as possible without having to get slowed down in the minute details of testing all the potential possibilities as they go forward. Standardizing development of code to require numerous tests will slow down production by a great amount. Although it may be painful to see a buggy/imperfect product emerge, this is likely a cheaper and quicker way to develop their software.
The proposed alternative is to slow down developers by 80% and grind productivity to almost a stand-still. It also risks stifling developers creative output, which can put out the spark and cause a developers job to be much less satisfying. As the saying goes, “Only one company in the world makes bug free code. It’s NASA. It costs them a $1000 a line”. This is an unrealistic expectation for any project team.
Conclusion We Drew
We found that although it would likely increase overall code quality and therefore product quality, mandating development methods is not a perfect solution. The cost to the companies effected by these mandates would be far too great for this solution to be considered efficient.