In recent years, would be because of recession or because of any other cumbersome cause, the productivity or the quality delivery by majority of the companies and software engineers have been producing an ineffective measurements towards a true engineering discipline. Let it be a Collaborative Software Development Process, Rational Unified Process or may be adoption of a proper Agile methodology, non-disciplinary and hazardous matrices for evaluating the effectiveness of these methods has become harder than it should be.
Under performance companies talk about best practices and don’t put efforts to meet their poor phrase, but it becomes an embarrassing point when software needs to bear it. Facts speak – the majority of claims for these best practices have not been based on solid measurements using valid metrics.
Taking a step further, we take a brief insight for overcoming this gap by following some disciplinary actions to improve efficiency of software engineering.
- Software security needs to be improved organically by raising the immunity levels of applications and including better security features in programming languages themselves. Access control and permissions are weak links in software engineering.
- Software quality needs to be improved in terms of both defect prevention methods and defect removal methods. Poor quality has damaged the economics of software for 50 years, and this situation cannot continue. Every major application needs to use effective combinations of inspections, static analysis, and testing. Testing alone is inadequate to achieve high quality levels.
- Software measurements need to be improved in order to gain better understanding of the true economic picture of software development and software maintenance. This implies moving to activity-based costs. Better measurement also implies analyzing the flaws of traditional metrics such as “cost per defect” and “lines of code,” which violate the rules of standard economics.
- Due to the recession, new development is slowing down, so the economics of software maintenance and renovation need to be better understood. Methods of preserving and renovating legacy applications are increasingly important, as are methods of mining legacy applications for “lost” requirements and business rules.
- Accurate measurement is the key that will unlock better software quality and security. Better software quality and security are the keys that will allow software engineering to become a true profession that is equal to older engineering fields in achieving successful results.
- Measurement of software engineering results will also lead to more and better benchmarks, which in turn will provide solid proofs of software engineering methods that have proven to be effective. The overall themes of the book are the need for better measurements, better benchmarks, better quality control, and better security as precursors to successful software engineering.