tag:blogger.com,1999:blog-11021571946795708042024-02-08T07:58:30.961-08:00Reliable SoftwareIs software really reliable?Raju Lalvanihttp://www.blogger.com/profile/02530820628589281698noreply@blogger.comBlogger12125tag:blogger.com,1999:blog-1102157194679570804.post-58433958761970684652009-08-05T23:17:00.000-07:002009-08-05T23:23:43.579-07:00Who takes the accountabiltyI find that the user is held accountable for all software deliveries. The requirement artifacts that are produced are expected to be signed off by the user of the software, if there is any misunderstanding or ambiguity or incompleteness, once the sign off is done the noose is on the users neck. After the software is built, it is again the users responsibility to do a user acceptance test and if any test conditions are missed out or defects not detected in the acceptance test, it again is the users responsibility that it was missed out.Raju Lalvanihttp://www.blogger.com/profile/02530820628589281698noreply@blogger.com0tag:blogger.com,1999:blog-1102157194679570804.post-43151672691761785172009-08-05T23:03:00.000-07:002009-08-05T23:17:48.355-07:00Requirements can any one get them rightWe have all been struggling in eliciting requirements that stay invariant from users and if not in all in most cases, we have had a variety of mechaisms from DFDs to Use Cases for the user to verify that the requirements have been captured accurately and completely. However, there is always a gap is what is in the users mind and what is put on paper. We expect the user to sign off hundreds of pages requirements and carve them in stone. IMHO getting requirements down is like writing an instruction manual on how to swim or bicycle or walk. We know how to do it but we cannot describe it so that a person by following the description will be able to swim, ride a bicycle or walk. A user makes a decision, after experience, during a business process automatically, he does not refer to a procedure manual which tells him the exact way a decision is to be made with a long nested if then else. If the user is unaware on how to make a decision as a new situation has come, he just asks a more experienced person who is around. I think we have unreasonable expectations that the user should be able to speak out all the possible permutations and combinations which is required to create a system and hold a Change Request against his head.<br /><br />We need to accept that getting 100 percent of requirements down to the minutest detail is not paossible and stop holding Cahnge Requests on the Users TempleRaju Lalvanihttp://www.blogger.com/profile/02530820628589281698noreply@blogger.com3tag:blogger.com,1999:blog-1102157194679570804.post-15774470941107953472009-07-19T23:15:00.000-07:002009-07-19T23:26:00.730-07:00Should we pay for all the bells and whistlesDo software makers give features to end users of the system because they need it to do their job easier or is it done to give an intellectual programming challenge to the developers and architects of the software. If we look at the bells and whistles provided by the Microsoft Office family, does anyone really know or use all of them. Finding out a feature itself is no simple task. Unfortunately software prices include all the bells and whistles which people really do not use. All documents need not be shiny, for example documents for internal circulation.<br /><br />Software vendors should have a minimum of two versions one which gives the essential features at a low price and the one will all the shiny bells and whistles at a higher price.Raju Lalvanihttp://www.blogger.com/profile/02530820628589281698noreply@blogger.com0tag:blogger.com,1999:blog-1102157194679570804.post-31352284324269628762009-07-13T21:30:00.000-07:002009-07-13T21:39:05.365-07:00How similar are Software Engineering and EngineeringThe principles that apply to Engineering have been extended to Software Engineering. Is this really the right thing to do? The principles of Engineering have made Engineering products reliable, their delivery times reliable and of consistent quality. However Software products have yet to reach that level. Engineering products are made with human and machine effort, a larger part being machine effort while in software the greater effort is from the human side. Machines are predictable in nature and two identical machines will perform very similarly, while humans are very unpredictable even twins will not give the same output. The same human being's output itself is inconsistent the same task done by the same human being may give different results on two different occasions. Is it really right to apply the principles of machines to human beings or we need to create a new model?Raju Lalvanihttp://www.blogger.com/profile/02530820628589281698noreply@blogger.com0tag:blogger.com,1999:blog-1102157194679570804.post-68021309509935185822009-07-08T03:29:00.000-07:002009-07-08T03:37:54.173-07:00Is the complexity of software development becoming moreAs we have moved from 3rd generation procedural languages to the an object oriented world and larger language sets I find that the amount of complexity has increased and the time to get the software out of the door has increased. Due to the largeness of the newer languages, it is difficult to master or even be aware of the available constructs. Both these I think have a role to play in the unreliability of software.Raju Lalvanihttp://www.blogger.com/profile/02530820628589281698noreply@blogger.com2tag:blogger.com,1999:blog-1102157194679570804.post-36454081453333389492008-08-30T07:07:00.001-07:002008-08-30T07:18:12.520-07:00Software Updates - How many of us use the new features?All <span class="blsp-spelling-corrected" id="SPELLING_ERROR_0">Software</span> Vendors charge customers an annual <span class="blsp-spelling-corrected" id="SPELLING_ERROR_1">maintenance</span> fees for support ( read <span class="blsp-spelling-corrected" id="SPELLING_ERROR_2">defects</span> in the software) and updates with new features. The cost of these fees is pretty high anything from 15 % of the list price to as as high as 30 % of the list price. I find that most applications do not use the new features. For existing applications in production, using the new features means a <span class="blsp-spelling-corrected" id="SPELLING_ERROR_3">regression</span> test, for new applications it means undergoing a training and trying out the new features. Do production applications have the budget and time for this or even for new applications do people have time and budget for learning experimenting and implementing. Are we using what we are paying for?Raju Lalvanihttp://www.blogger.com/profile/02530820628589281698noreply@blogger.com4tag:blogger.com,1999:blog-1102157194679570804.post-77904507367985472802008-04-02T23:38:00.000-07:002008-04-02T23:44:38.285-07:00How Much Do We Need to Repeat CodeWith the new paradigms in Software , I find that the same validations need to be repeated over many of the tiers of the application software. The same validation is repeated in Javascript , Middle Tier and the database layer. This means more maintenance, keeping the n parts in sync and more hardware horsepower to maintain and run the application. Sigh!Raju Lalvanihttp://www.blogger.com/profile/02530820628589281698noreply@blogger.com4tag:blogger.com,1999:blog-1102157194679570804.post-67759833220415888162008-03-11T07:05:00.000-07:002008-03-11T07:15:17.209-07:00Why are software installations so difficultAfter paying a large price for software, one feels that it is all done with and one can start using it. But unfortunately it is easier said than done, if a person has not installed it earlier he either has to pay a charge for the installation to the vendor or go through an installation manual of over 500 pages and attempt to install it. After following the instructions in the manual, snags arise. To solve the snag, the product support site needs to be accessed and what is found that a patch needs to be downloaded to proceed ahead! The least a vendor should do is to provide self installing software without the administrator going through pages and pages of manuals and downloading fixes and rather unfortunately when the next version comes out the installation procedure changes. Sigh!Raju Lalvanihttp://www.blogger.com/profile/02530820628589281698noreply@blogger.com2tag:blogger.com,1999:blog-1102157194679570804.post-27016733952853708062007-11-04T20:23:00.000-08:002007-11-04T20:29:13.120-08:00How Much Ownership do Software Makers Take?Cars have been recalled and corrected by the manufacturers, drug companies have paid through the nose, chemical companies have paid for their accidents, doctors get sued, airlines also pay when things go wrong. However software makers absolve themselves of any losses that may arise due the use of the software. This is very strange that there is no redressal for consumers who lose because of software.Raju Lalvanihttp://www.blogger.com/profile/02530820628589281698noreply@blogger.com1tag:blogger.com,1999:blog-1102157194679570804.post-26714873736037962182007-11-01T04:22:00.001-07:002007-11-01T04:34:03.172-07:00Is the knowledge of software developers shallow?In the earlier days, software was developed using only a single language, the language stayed stable for 4-5 years, generally used a procedural paradigm, the language did not have too many constructs, so it was possible to master the language in a reasonable time. Today with multi tier applications the number of languages is increasing, with new versions coming out in shorter time frames, a person probably has to know three to four languages to write an application. HTML, JavaScript, JSP, Java and SQL. Has the depth of software knowledge become deeper or shallower? Most people know the languages to a shallow level, their resumes contain 20 to 30 different languages tools platforms, in a period of a year or two, does it mean they have mastered them. I have yet to find doctors who are able to master a plethora of disciplines. I would shudder to go to a surgeon who is an eye surgeon + an ENT surgeon + a cardiac surgeon + neuro surgeon.<br />But we do not shudder to use software developed by a single person using multiple languagesRaju Lalvanihttp://www.blogger.com/profile/02530820628589281698noreply@blogger.com4tag:blogger.com,1999:blog-1102157194679570804.post-73251048277643986362007-10-25T01:26:00.000-07:002007-10-25T01:39:03.084-07:00Programming Through TimeWhen I first started programming, the days of batch programming, I used punched cards as an input to the computer. The turn around time for a compile was 24 hours. Soon I moved to time sharing on a PDP 11 having 512 K memory, and a 40 MB disk the turn around time for a compile and link for a 3000 line COBOL program was around an hour. In those days I would draw a flow chart or HIPO diagram, or pseudo code then hand write the code, hand run them, enter them through the editor, print it out go through the printout to correct any entry errors and then compile, link and test it.<br />Computing speeds have grown be leaps and bound, my desktop is now much more powerful than what I had used in the past. A compile of a similar program would now take a few seconds.<br />Now I find that given program specifications programmers open the IDE and start coding the program.<br />Was I doing something wrong earlier by spend so much effort rather than wrting the program directly in the editor?Raju Lalvanihttp://www.blogger.com/profile/02530820628589281698noreply@blogger.com7tag:blogger.com,1999:blog-1102157194679570804.post-61909080405056127522007-10-24T04:19:00.001-07:002007-10-24T04:30:30.909-07:00Reliable SoftwareIs software really reliable?Raju Lalvanihttp://www.blogger.com/profile/02530820628589281698noreply@blogger.com0