|
Plans that come true |
| Andersen blog | ||||||||||||||||||||||||||||||||||
Quality, Developers and Testers: what is the best ratio? 28.08.2009 In software development industry it is often discussed if it is necessary to have quality assurance on the projects. And what is the most effective presence of testing part in projects. In other words what is the most effective ratio of programmers and testers? The ratio of programmers and testers can be different depending on a project. This doesn’t mean that large number of testers will provide their work effectively. The most effective average proportion is where a number of testers and developers is considered as 1 to 2. In order to show this, let’s imagine a project with 4 developers working on it. For the best ratio of quality we should employ 2 testers. This example can be successfully illustrated in the picture: When we don’t have testers on the project, only 10% of bugs can be found by programmers. When we were young and enthusiastic (but not as clever as today), starting our new project, we thought that well motivated and qualified programmers can provide their work in a best way. But it’s obvious that everybody can make mistakes, and few programmers can find these mistakes. If we have 2 testers they will approximately find 85% of bugs. Here is the rule that it is impossible to find 100% of bugs. If we employ 3 testers they will find 90% of bugs, but their work won’t be effective and will cost more money. The price of each found error will be higher. Thus, we will achieve the best ratio of efforts and the best quality if we have 2 testers and 4 programmers. Every additional tester will find some bugs but general price of his work is higher than effectiveness. Only on vitally important projects such as healthcare and financial projects this ineffective (we say here ineffective meaning expensive) work should be applied, because potential defect can be very expensive. The same situation comes up when we talk of the time spent on a bug search: if we spend too much time on testing, it will become ineffective. So, the task of testing is very important in the context of software development. We understand that the ideal ratio of testers and programmers can be applied only to the average projects. But the main idea is that the cost of the quality assurance may take up to 50 percent of software development cost. Anna Hrabun Why does Quality cost so much? 21.08.2009 Every year in a software development branch of IT business, significant amount of money is spent on quality. Why is quality so expensive? Is quality so important? Why do companies spend money on Quality Assurance and Software Testing Departments maintenance? When I think of it I come to conclusion that software quality verification sometimes is even more expensive than software development itself. Sometimes the quality of software means everything. There are a lot of examples of such systems: the software for railway and air transportation, banking and financial software, healthcare. If something is done wrong in this kind of systems, and if it is not found and corrected on time, it may lead to serious problems in healthcare, or even result in numerous casualties. Often a number of testers taking part in project implementation is more than a number of developers. But every found bug will eventually save money or a company’s reputation. I took part in this kind of projects. The team had been working on software for medicine distribution for 2 years. There were 9 people who tested the project and only 4 programmers. The price of drugs was rather high, thus a testing team spent much time carrying out their tests with precise care in order to find all the defects that could affect the system. The main requirement for such systems is high accuracy of calculations. And testing engineers repeat the same actions again and again to make sure that everything is correctly calculated. If system had a bug, patient would have received an overdose and possibly died. That’s why system and corporations use every possibility to make their products of high quality and spend money on keeping software testing engineers’ army. And it’s only one example of healthcare software importance. So, the quality costs much money, and it’s reasonable to pay for it. On the other hand, we should remember that there are no products without bugs; sometimes it is impossible to find all of them. Taking this fact in consideration, there are Customers, who do order software development in our company but… refuse software testing services. They think that they can save money this way. But I would like to say “A Miser Pays Twice” and the best way is to verify software carefully even if it requires additional efforts. In the times of financial crisis this truth is especially topical, because company’s reputation and brand name becomes an essential guarantee of products reliability and sustainability. Anna Hrabun How IT could generate improvements in your business. 14.08.2009 To generate significant bottom line improvements in business performance, IT must be an originator of business improvement ideas rather than simply an implementer. Practically it means active business position of IT department managers and self-interest to improve a situation of company top management. This role requires IT staff to gain deeper business knowledge to accompany their technical skills and to work more closely with their business colleagues to seek improvement opportunities. Business has to be firmly tied with IT infrastructure in order quickly to find effective solutions. IT has to be applied to the areas of the business that provide the greatest contribution to the bottom line. Think of areas such as sales and product development rather than HR and automation clerical functions. Other words apply your resources in the first place to the business spheres that generate income. Prioritizing of IT improvements is very important, sometimes even critical for the business success. Implement a job rotation program that places IT staff in business positions to gain a better understanding of how the company operates and to seek opportunities to improve the technology. Outsource off-site IT Company to gain Cutting Edge IT technologies. Also it is important to compare performance of internal IT department with the performance of outsourcing IT organization. It is possible to organize by setting similar but not the same tasks for both of them. If an internal department loses the competition it is a message to think about its improvement. Alexander Khomich Shall project to be outsourced or it is better to performs it themselves. 08.08.2009 While advertising Andersen services I often have to answer to potential customer the same question (by the way, one of the most important). "Why it is more profitable to order your services than to organize my own IT team that performs the project". Here I’ll try to give the answer. Also I would like to highlight your attention that I speak about software development projects as well as implementation of a pre-built solution of software suppliers, but not any kind of technical IT support, data center operations or application maintenance. The characteristics of the projects will help determine if they are a candidate for outsourcing or not. While there is no "ideal" development project suitable for outsourcing, a project that has one or more of these traits is worth considering. Generic functionality. Generic projects are perfect outsourcing candidates. Outsourcing options are plentiful, the pool of consultants familiar with the functionality is larger, solutions are well honed, and pre-built components are likely to abound. Examples of these projects are: Accounting, Warehouse, Budgeting and so on. Custom, but highly specified projects. The more precise the project specifications, the more amenable the project is to outsourcing. The outsourcer knows exactly what it must do to perform its work, the deliverables expected, the functionality needed, the timeframes required and expectations between the parties are tightly aligned. Routine projects. The customer invites outsourcer to implement a big but routine task. For example development of data interface between applications, improvement of reporting, QA tasks and so on. Sometime project-oriented type of work could be changed for time sheet labor. During the outsourcing project, it is highly recommended for the customer to organize its own project team that will be responsible for the future project maintenance; of course it’s more applicable for the complex projects. I do not recommend to outsource the following type of projects: Risky projects. In this kind of projects it is very important for company to manage development of process itself because of the high risk to lose an IT competence or unique technologies that project comprises. Examples of these projects are: a billing system of cellular operator, software of stock exchange. Specific projects. This class of projects is tightly tied with the science or some other complex calculations. In such projects staff is not always even pure programmers, but scientists that have knowledge to automate its own calculations. These principles of project splitting are very simple, but they give an idea how to act in situation when you are not completely sure what to prefer. Alexander Khomich |
|
|
129626, Minsk, Pervomaiskaya 14 E-mail: forrestbox@gmail.com |
+7 (926) 245-80-29 |