tag:blogger.com,1999:blog-484868760326644566.post5496271073929415605..comments2021-01-04T06:55:34.037-05:00Comments on Challenge the convention: Software Confidence IndexAnonymoushttp://www.blogger.com/profile/11788082901774378469noreply@blogger.comBlogger4125tag:blogger.com,1999:blog-484868760326644566.post-61864350878253159072012-10-09T19:50:15.586-04:002012-10-09T19:50:15.586-04:00Thanks for comment. The analogy when we go to doct...Thanks for comment. The analogy when we go to doctor's office is very much the essence of why do we need to quantify an apparently unquantifiable event or state. Let me try if I can answer to your three queries.<br /><br />Q1. This is a very good question as the goal of SCI is to create benchmark index that will be used to compare different software applications across organization or industry. It's very much possible to use a standard set of factors to index any kind of software (nonetheless all software is written in some programming languages and by programmers). Even though the goal of the SCI is to create a benchmark or reference point to provide an easy way to make the software or software development comparable to each other but the SCI can have different benchmarks and standards for different industries as well. There may have a standard set of factors and benchmark for software used by the research institutions, and a different set of standard factors and benchmark for software used by the Financial institutions. <br />Q2. Yes, the questionnaire for the business part of the index would depend on the nature of the business of the organization. It’s possible to come up with a set of common questions for the business factors but as I mentioned above it can be flexible as well. Apart from that, the formula mentioned in the computation of the index provides the flexibility of keeping technical and business factors independent of each other. So, not only the questions and their weights may change but the number of questions also may independently vary. There could have some scenarios where you would care mostly about technical factors with a very few business factors and vice versa.<br />Q3. Yes, defining the quality of code is something that no two programmers will agree with each other. Not only that, even most of programmers don’t agree with the quality of their own written code in few years. So, my approach is to achieve the “relatively perfect” result rather than wait and watch for the perfect world i.e. what’s available right now I'm going to use that and as and when new way is identified, I'll accommodate with that. To define a boundary of what's a quality code means, we can start with the below list and then extend when more is available– no code duplication, use of standard design patterns, use of constants over string literals, low cyclomatic complexity, well documented code (e.g. JavaDoc for software written in Java), memory leak (e.g. for Java programs - not closing the opened database connection and file, unnecessarily keeping the objects reference active), code that’s not vulnerable to security (refer to www.owasp.org for detail on software vulnerability). There are various static analysis tools that can be used to identify if the code is written in an efficient way. Just to name a couple: Parasoft® Jtest® (www.parasoft.com) to check code quality and IBM Security AppScan Source (www.ibm.com) to detect security vulnerability.Mohammad Masudhttps://www.blogger.com/profile/03060686796220963760noreply@blogger.comtag:blogger.com,1999:blog-484868760326644566.post-85429636466947281022012-10-09T10:51:21.651-04:002012-10-09T10:51:21.651-04:00It’s a nice idea and presentation of the idea. Mak...It’s a nice idea and presentation of the idea. Make sense to use something like this in real world. Once software is released, like you said, the answer to the question “how have we done in this project?” is always gets vague answer The answer range could vary a lot depending on who is being presented to. <br /><br />Some people may have different opinion about presenting this type of thing with number (SCI). Well, Number may not necessarily give all the answer, but yes, can get an idea how we did. Think about one simple scenario- when we go to a doctor office for some “pain”, they always ask the question about the pain in terms of pain scale 1-10 number. I would say it’s (SCI) a good approach. <br />I have few queries though:<br />1. Will we able to relate/ compare different software if the SCI is same between them? If the SCI for example is 78, where Business factors scored 48 out of 50 and Technical factor is 30 out of 50. What would the SCI will give us then? And any organization usages 70 on business and 30 in tech side and would get the same SCI 78 then how would you differentiate/ relate the SCI numbers? <br />2. Business part will be done base on the end user’s feedback. Feedback questionaries’ may vary to company to company. <br />3. How would you define the quality of the code? Who will be judging it? Who and how would any one judge the smart code writing? <br />Shahidul Mahfuzhttps://www.blogger.com/profile/14081428896722110976noreply@blogger.comtag:blogger.com,1999:blog-484868760326644566.post-57702561872458974332012-10-09T10:49:56.371-04:002012-10-09T10:49:56.371-04:00This comment has been removed by the author.Shahidul Mahfuzhttps://www.blogger.com/profile/14081428896722110976noreply@blogger.comtag:blogger.com,1999:blog-484868760326644566.post-11786117565483023112012-10-08T13:09:38.936-04:002012-10-08T13:09:38.936-04:00When I talked about the Software Confidence Index ...When I talked about the Software Confidence Index with some of my friends and colleagues I received couple of comment on why SCI may not be much helpful. The primary reasoning behind that comment is that SCI does consider only a very few factors of a software and it's related development process and with that minimum number of factors the software confidence can't be computed into an index. Another quite appealing debate on it's effectiveness is that software development is a creative work and it can't be measured or quantified. Let's look into both the above comments one by one.<br /><br />Creative works can't be computed: I briefly touched on this in my Software Confidence Index post but here I'm revisiting it as this is very appealing reason to most of the programmers. I don't disagree with the fact that programming is a creative work and it's very tough to measure the efficiency or compare the quality of one software with another. Even the idea of quantifying the software or ranking a software came to my mind in 2008 when at my work, my manger initiated the concept of "pay for performance" and started ranking the developer. But the ranking was done by using the Effective Lines of Code (ELOC) which we almost everyone opposed and I was in the front of this opposition. That found ineffective when at the starting of a new release the lead of the application repeatedly coming at the top when the merging of the new clear case project was synched with the last release changes and delivered by the application technical leads. More over the tendency to seeing oneself at the top started bad practice of writing inefficient code with redundant lines that could be avoided by writing efficient coding practice e.g. increased use of "if-else" over tertiary operator.<br /><br />Even though I strongly opposed the use of ELOC but I always believed that we can use few factors consistently to get a sense of ranking and refine the method over the period of time to get close to perfect (there is nothing called "absolute perfect" but everything known as perfect in this world are actually more of "relatively perfect"). So if a good number of quantifiable factors are used consistently along with very few qualitative factors, a relatively perfect index can be achieved which won't be no way absolutely perfect but would provide value to the software industry to start measuring software in an industry and can be compared against a benchmark index<br /><br />Limited number of factors can't be effective to compute the index: If this theory is true than a lot of famous numbers you see in the modern age would be vanished. For example - GDP. The Gross Domestic Product is computed by using a formula where, in most cases, the production of a country is taken into consideration along with few other factors. Do you think that it's possible to government agencies has capability to count every single products produced in a country? I know for sure that last year what I had produced in my back yard, at least 50 pounds tomato, almost same amount of cucumber, and a good amount of other vegetables, weren't counted in to the GDP and there are millions of people who do gardening every year and produces millions of pounds of vegetables in their back yard that go uncounted. There are some other way of computing GDP by not using production but through expenditure and other factors but for sure you'll find no method can cover each and everything in this world. You will see the more striking number of factors in the computation of inflation rate in a country. But the bottom line is if a method considers the same factors or group of factors over the period of time then the limitation of using limited number of factors become less and less important in the process but the comparison of the, in this case, GDP and Inflation over the period of time shows where the country is heading or if a country is doing better or worse. Mohammad Masudhttps://www.blogger.com/profile/03060686796220963760noreply@blogger.com