Friday, February 25, 2011

The Lilliputians and their Gremlins

The Denver international Airport baggage handling system has become an example of what not to do when engineering software for anything. It has been said that BAE systems costs for the 193 million dollar system began hemorrhaging 1.1 million a day in interest and operating costs.i Eventually it was replaced with manual baggage handlers. Giese states that one of the major reasons for this failure were lack of communications of the stakeholders and the fact that software quality was an afterthought as was the design and integration of the system.ii

The Capability Maturity Model for Integration (CMMI) from the Software Engineering Institute at Carnegie Mellon University is the de-facto standard methodology for Software development and organizational maturation measure.iii The SEI maintains a common sense staged approach to managing software development and quality through the development life cycle by defining 5 stages of maturity for an organization. Currently the CMMI-DEV standard is at version 1.3 and is available from the SEI directly.iv
The following table describes each of these stages of the CMMI:v

Level
Process Areas
1 Initial
Product and Process Quality Assurance
2 Managed
Integrated Teaming (2 man rule)
Requirements Management
Project Planning
Project Monitoring and Control
Configuration Management
Supplier Agreement Management
Measurement and analysis


3 Defined
Quantitative Project Management
Requirements Development
Technical Solutions
Product Integration
Verification
Validation
Organizational Process Focus
Organizational Process Definition
Organizational Training
Integrated Project Management
Risk Management
Decision Analysis and Resolution
Integrated Supplier Management


4 Quantitatively Managed
Causal Analysis and Resolution
Organizational Process Performance


5 Optimizing
Organization Innovation and Development


The CMMI for Software Development includes the four basic levels of maturity these are numbered as follows:vi
  1. Incomplete
  2. Preformed
  3. Managed
  4. Defined
Essentially the CMMI is a method for defining goals of an organization with respect to it's development requirements in such a manner that the ISO 9000 Series of process standards may be used to obtain Maturity but are not necessary to do so. Any organization by attempting to adhere to CMMI standards will improve and develop a Software Quality Assurance process.
Six Sigma – Originally developed by Motorola in 1986 to improve batch process, Six sigma methods and management may be used to improve software quality, although arguments have been made that it stifles creativity. It's also a very large and involved process and may take any organization years to achieve.
Lean – Dr. Womack developed the LEAN methodology for Toyota in the 1980's, as Toyota has managed to become one of the largest manufacturers of vehicles in north America, LEAN is considered one of the many reasons; it's often reffed to colloquially as the “Toyota Way”.vii Lean's core concepts are to use the minimal amount of effort required to increase customer value.
The Information Systems and Audit Control Association (ISACA), maintains a number of certifications in reference to IT related audit and support operations. The CoBIT standard is a standard of Management and Governance and is not directly related to Software Quality Assurance, however if any organization implements CoBIT Compliance they will have a mature SQA process although it may lack definition.viii
The ITIL Service Management framework is yet another methodology and standard aimed at the formal certification and management any organizations IT Assets and services; should an organization engage in software development the ITSM states that theses processes must be mapped and defined; thus even though the ITIL framework is not a direct SQA standard, it's application would result in a defined and managed process for software quality assurance.ix
Each and every software development project is as unique as the team of developers delivering it; which when considering the respective level of entropy in given set of human genetics is a pretty unique. The DIA project used over 400 electric eyes, over 1000 bar-code scanners and miles of underground rail track. Had they implemented any of the available methods such as the CMMI, SixSigma, Lean, ISO or even CoBIT their process for achieving the goal of an automated baggage system may have been realized.
The Software Quality Assurance methodology is usually a hybrid of the above standards; implemented by development and project management teams assigned the task of delivering the software system; The main benefits of implementing and conforming to SQA standards as defined by the CMMI standard are as followsx:

  • A Clear view of the Software Defect Trend
  • Continuous Software Improvement
  • Reduced Cost of Software Development
  • Greater Productivity
  • Higher Quality Software Products
  • Increased Customer Satisfaction
  • Positive Client View of your Organization
  • Overall Reduced Risk
I would not recommend that hybrid approaches be used as the CMMI is complete and mature enough to accommodate any software development project regardless of complexity.
Baggage handling is a Big-O, Complex and difficult problem. It requires advanced robotics, software and an iterative and reliable development process to make any kind of inroads. ALSTefxi, Webbxii and Vanderlandxiii currently use CMMI to develop their systems which are the global standards in Baggage sorting and handling. The SEI's CMMI is possibly the easiest of all of the methodologies to implement and offers the greatest return on investment, and offers continual improvement over other standards and methods.
iGibbs, W. Wyat (Scientific American, Septemeber 1994) Despite 50 years of progress, the software industry remains years-perhaps decades-short of the mature engineering discipline needed to meet the demands of an information-age society [Online] World Wide Web, Available from: http://www.cis.gsu.edu/~mmoore/CIS3300/handouts/SciAmSept1994.html (Accessed on February 23rd 2011)
iiDr. Giese, Holder (University of Paderborn, Software Engineering Group 2005) Software Quality Assurance Introduction [Online] PDF Document, Avaialble from: http://www2.cs.uni-paderborn.de/cs/ag-schaefer/Lehre/Lehrveranstaltungen/Vorlesungen/SoftwareQualityAssurance/WS0405/SQA-I-p1-59.pdf (Accessed on February 23rd 2011)
iiiGodfrey, Sally (NASA, 2011) What is CMMI [Online] Powerpoint Presentation, Available from: http://software.gsfc.nasa.gov/docs/What%20is%20CMMI.ppt (Accessed on February 23rd 2011)
ivN.A. (SEI, CMU, 2011) CMMI for Development, Version 1.3 [Online] PDF Document, Available from: http://www.sei.cmu.edu/library/abstracts/reports/10tr033.cfm (Accessed on February 23rd 2011)
vGodfrey, Sally (NASA, 2011) What is CMMI [Online] Powerpoint Presentation, Available from: http://software.gsfc.nasa.gov/docs/What%20is%20CMMI.ppt (Accessed on February 23rd 2011)
viN.A. (SEI, CMU, 2011) CMMI for Development, Version 1.3 [Online] PDF Document, Available from: http://www.sei.cmu.edu/library/abstracts/reports/10tr033.cfm (Accessed on February 23rd 2011)
viiN.A. (LEAN.org, 2011) What is LEAN [Online] World Wide Web, Available From: http://www.lean.org/WhatsLean/ (Accessed on February 23rd 2011)
viiiN.A. (ISACA, 2011) COBIT 4.1 [Online] PDF Document, Available From: http://www.isaca.org/Knowledge-Center/cobit/Pages/Downloads.aspx (Accessed on February 23rd 2011)
ix N.A. (OGC, 2011) ITIL V3 Standards [Online] World Wide Web, Avaialble From; http://www.itil-officialsite.com/BestManagementPractice/BestManagementPractice.aspx (Accessed on February 23rd 2011)
xHefner, Rick, Phd (Northrop Grumman, November 2005) Achieving the Promised Benefits of CMMI [Online] PDF Document, Avaialble from: http://www.dtic.mil/ndia/2005cmmi/wednesday/hefner2.pdf (Accessed on February 23rd 2011)
xiN.A. (ALSTef, 2011) Baggage Handling Systems [Online] World Wide Web, Avaialble From: http://www.alstef.com/Systemes-Aeroportuaires/index.htm?s=10 (Accessed on February 23rd 2011)
xiiN.A. (WEBB, 2011) Baggage Handling Systems [Online] World Wide Web, Avaialble from: http://www.jervisbwebb.com/Categories/BaggageHand.aspx?cid=1 (Accessed on February 23rd 2011)
xiiiN.A. (Vanderland Inc. 2011) Baxtorter Specifications [Online] World Wide Web, Avaialble from: http://www.vanderlande.com/Baggage-Handling/Products/Sortation/BAXORTER.htm (Accessed on February 23rd 2011)

Vindication


Vindication

Verification
According to the CMM from the SEI, Verification is:
The process of evaluating software to determine whether the products of a given development phase satisfy the conditions imposed at the start of that phase.[i]
There are many differing methods of Verification for software; formal verification refers to the proof of underlying concepts and algorithms within the software using the formal methods of Mathematics[ii]. These include model verification and checking; logical inference with the use of formal proving software. These include Prefect Developers, ArC, ACL2 or Coq therom providers, Boyer-Moore, Esterel, ttOL, Nuprl, 2OBJ, and the OCCAM transformation system and KIV[iii]. Bowen et al., highlight the foundations of formal verification within “Hall’s Original Seven Myths”[iv] and how various industries often lend prejudice  to Verification methods; in addition to these they are often ignored by the development industry at large as they may be seen as too complex, or require too much excess work for a given development project.
Essentially, Software verification at its core is to answer the question; does this thing we have made do what we need it to do?[v]
The idea behind software verification as a task and project item is to increase the correctness of the software itself. The Goal of software verification is to ensure that all modes of operation for a given bit of software are mapped and understood both logically and mathematically, within the context of their operation and the framework of the system in which the desired software is to function.

Validation
According to the CMM from the SEI, the Validation is:
“The process of evaluating software during or at the end of development process to d3teermine weather it satisfied specified requirements.”[vi]
Validation is designed to ensure that once development on a given iteration or release of a given piece of software is completed that it meets the formally defined specifications as per those gathered and designed during the design and planning phases of said development.
Essentially, Software validation at its core is to answer the question; does this thing we have made meet our clients desired functionality requirements?

Validation and Verification are the backbone of software quality assurance, validation and verification tasks are usually preformed during staging, unit and acceptance testing of a given suite of software or it’s platform, prior to deployment. The goal of validation and verification is to improve the software quality but also to define and understand how the software will behave within its desired environment.
Validation and verification are essential to map out faults, failures and malfunctions within the platform, these in-turn become the bug tracking database and issues register used to verify that the next iteration of development will aim to fix or which functions need be addressed with a given patch release.
How Validation and verification differ is that validation is the process of stating that a given software requirement is met with a given software component. Verification will map out every possible mode of said software component.
Both Validation and Verification rely on good formal requirements gathering and definition methods; ie; without planning Verification and validation may not occur. If there are no stated requirements to verify or offer validity to then no test cases may be constructed.
The CMMI requires that an organization that produces software conduct formal verification and validation testing prior to offering certification.
An interesting aside is that the PCI-DSS[vii], and Evaluation Assurance Levels[viii] from the Common Criteria methods of accreditation require that auditable trails of Verification and Validation testing may be conducted by external 3rd parties prior to offering certification to any product or software.
If an agency or organization wishes to sell software or hardware to the financial payment processing industry or to any federal government in the G8, they must be accredited to the PCI-DSS and EAL certified; each of these certifications requires that considerations and formal methods are in place for software development quality assurance including standardized and documented procedures for validation and verification testing; one of the fastest methods to achieve these is CMMI certification.

References


[i] CMMI Product Team, (CMU, SEI, 2002) CMMISM for Software Engineering, CMMI-SQ, V1.1 [Online] PDF Document, Avaialble from: http://www.sei.cmu.edu/reports/02tr029.pdf (Accessed on February 25th 2011)
[ii] Gossett, Eric (John Wiley and Sons, 2009) Definition 3.1 page 86 {Mathmatical Proof} ISBN: 0470457937
[iii] Reif, Wolfgang (Karlsruhe University, Institute for Complex Logic, 1995) The KIV-approach to software Verification: Methods Lanaguages and Tools for the Construction of Correct Software: Lecture Notes in Computer Science, 1995, Volume 1009/1995, 229-368, DOI: 10.1007/BFb0015471 [Online] PDF Document, Available from: http://www.springerlink.com/content/m0255741574317l0/ (Accessed on February 25th 2011)
[iv] Bowen, Jonathan P.; Hinchey, Michael G; (Oxford University Computing Laboratory, University of Cambridge Computing Laboratory, 1994) Seven More Myths of Formal Methods: Dispelling Industrial Prejudices: FME’94 Lecture Notes in Computer Science, 1994, Volume 873/19894, 105-117, DOI: 10.1007/3-540-58555-9_91 [Online] PDF Document, Available from: http://www.springerlink.com/content/73n6h6u78350306x/ (Accessed February 25th 2011)
[v] NA (IEEE, ) IEEE STD-610: Computer Dictionary  [Online] PDF Documents, Available from:  http://ieeexplore.ieee.org/xpl/mostRecentIssue.jsp?reload=true&punumber=2267 (Accessed on February 25th 2011)
[vi] CMMI Product Team, (CMU, SEI, 2002) CMMISM for Software Engineering, CMMI-SQ, V1.1 [Online] PDF Document, Avaialble from: http://www.sei.cmu.edu/reports/02tr029.pdf (Accessed on February 25th 2011)
[vii] N.A. (PCI-DSS, 2010) PCI DSS V2.0 [Online] PDF Document, Available from:  https://www.pcisecuritystandards.org/security_standards/documents.php (Accessed on February 25th 2011)
[viii] William Lacy, (U.S. Gov, GAO, 2006) Information Assurance, National jPartnership Offers Benefits, But Faces Considerable Challenges [PDF Document] Available from: http://www.gao.gov/new.items/d06392.pdf (Accessed on February 25th 2011)

Thursday, February 10, 2011

The new educational paradigm


Computer based training (CBT), is vaguely defined as the use of computers in assisted instruction, managed instruction or enriched instruction for delivery of a given domain of information.i

There are numerous advantages to offering CBT's for a given domain. Examples include course ware for professional certifications, these include the PMP designation from the PMI, the PMI makes CBT's available for the Prince2 series of standards, the PMI does require at laest 2 weeks of formal classroom training in addition to a given number of years of demonstrated experience in project management. There are also CBT's for the Certified Management Accountant, Certified Financial Advisor, The UK department of commerce has CBT's for the ITSM standards and companies such as EXIN and Pearson Vue deliver course ware and exams for the ITIL foundations certification. Microsoft even has an entire engineering regimen with over 40 separate domains for each of the enterprise products offered; the most common undertaken being the MCSE and MCITS exams consisting of the 6 core Microsoft technologies. The (ISC)2 has both traditional training and computer assisted training for the CISSP designation, the ISSAP, ISSMP and ISSEP each also have CBT's and psychical manuals for around $160 each. The ISACA has CBT's for each of the certifications they offer in addition to the available courses ware and boot camps consisting of 3 to 4 week courses on a given certification such as the CISA, CISM, CRISK, and CEGIT; each focused on a given component of the CoBIT domain; also quite costly.

What do all these mean and how are CBT's advantageous to them; each of these designations is a global certification that demonstrates to potential employers and peers that an individual carrying them is bound by a code of conduct, and has given knowledge in this domain; usually in addition to a higher education, these are almost required to differentiate the individual on a global scale as the job market is now truly global. Industry needs these certifications to differentiate the individual's that apply to given positions as a matter of both conduct, knowledge and expierence.

The advantages of CBT include the fact that school can be in the comfort of your own home, or in a library or anywhere that Internet access or program access is available; with the advent of inexpensive mobile computing this is practically anywhere that electrical power is available which is most of the populated planet.

Therefore once a given designation or certification is to become a standard for a given field of employment; it must also be available to those within said field to be undertaken and attempted. Certifications like the A+, CCNA, CCNP, CCIE, MCSE, MCDST, MCP, MCITS, MCA and others demonstrate that a given individual may be capable of maintaining, designing and working with computer based infrastructure that consists of mostly CISCO enterprise class hardware with Microsoft products. Before said individual may take each of these exams they must become well versed in the given domain of information for said exam. For the above exams with the exception of the CCIE and MCA all other courses have CBT's by the organization that offers this certification and by other independent training organization's.

Moores law dictates that every 12 to 18 months the available cost of a cpu second is cut in half.ii This translates into drastic technological change every 12 to 18 months as new software may make use of inexpensive cycles to do even more work. Alvin Toffler in future shock described this rate of change as “Logarithmic” that is the rate of entropy in society will increase in an exponential manner as a result of the technological influence.iii To put this in perspective we can now video conference on devices that fit in the palm of our hands using wireless technology and communicate around the globe in milliseconds.

This means that CBT's may reach a global audience; this in the history of mankind has never been previously been possible, the inter-net is the equivalent of the great library . They may do so at a fraction of the cost of traditional education as the CBT relies on the cost of operations of a computer; which is also cut in half every 12 to 18 months.


The professional world is now growing and changing at the same frantic exponential pace. Traditional professions still focus on core functions; Law, Medicine, Education, Economics, Finance and Industrial Production and management still require the use of highly specialized skills that require additional education and training beyond university at the masters and professional levels.
Professional updating and education via CBT”s is available for Medical Procedures, entire courses in Law, Economics and Business Administration at both the Bachelors and Masters level are now offered on line from institutions such as the university of Liverpool, London's famous external program and others such as Athabasca here in Canada. There are entire Mba programs offered on-line from globally accredited institutions.
However they are not perceived as prestigious as their traditional counter parts. Having an Mba from an ivy league school is a mark of both privilege and wealth, not necessarily indicative of skill.
CBT's are a very good way to maintain a current set of knowledge in a given field and are excellent at teaching theory and knowledge as well as research methods, these will introduce and familiarize any individual with a given domain but they will not make that individual an expert. Since industry is reinventing itself in the information age at an ever increasing rate, the battle to remain releavent or usefull means; To be a leader in any profession one must continually learn and relearn all skills associated with that profession with every major shift in it's paradigm.
The great disadvantage in CBT's is that Skill, true human skill is comprised of more than just knowledge and theory; it always includes practice. Dentists, Doctors, Lawers, Detectives, Judges and even computer programmers must become adept in their field by practice in addition to training in advanced theory. Examples include that a surgeon must be an adept seamstress as tissue has more in common with cloth than we know. A dentist must be an excellent communicator to understand the words of his or her patients during a routine day. Lawers must be adept communicators and great creative thinkers to develop complex arguments to meet the needs of their practice. These skills are gained in practice. A concert pianist must practice the pieces of Chopin a thousand times and they may never master them.
Malcolm Gladwell states that to become a leader or genius in any given field one must devote 10,000 hours to it's practice, this is a rule cited regardless of domain.iv CBT's allow one to become well versed enough in a given domain to attempt practice with a good chance of success; however practice and experience become skill. One cannot master a martial art by theory alone, it includes the 10,000 hours of training in that particular art.
Human computer interaction is difficult at best, entertaining at worst and potentially threating to people's health as staring at a computer screen for forty plus hours a week may ruin one's eyesight and posture causing back pain, and the inactive prone nature of this procedure potentially increasing one's risk of heart failurev. The QWERTY layout for keyboards was originally intended to slow typists down as to prevent the jamming of physical hammers and destruction on Remington typewritersvi.
There are even companies dedicated to developing traditional workstation cubes that contain treadmills as a means to reduce this risk by forcing the user to walk while typing.
The human mind in all it's glory learns knowledge, theory and practice and develops skills by adjusting the interconnectedness of it's various components to suit it's experience; We know where within the structure these connections occur and even how neruons align and fire with one another to form memory; through perception as encoded by short term and then longterm memory. It is said that the available permutations of connections in the human mind outnumber the elemental particles in the universe. This “connectome” is the individual that learns the above mentioned skillsvii.
In the Witchouski brothers blockbuster hit movie “The Matrix” the films protagonist; Neo played by Keenau Reeves; Neo masters “Kung Fu” by downloading the software; the knowledge and experience of 1000 kung-fu masters into his mind. This is not that far from the future; currently there is a lot of funding to develop a Brain Computer Interface that is non-invasive and medically safe. Kevin Warwick of the university of reading developed and tested a neuronal interface that used the median nerve to act as a communications pathway between his mind and devices he designedviii.
To overcome the issues that are disadvantages in delivering computer based training that would actually create a fully qualified doctor with 4 years of residency experience; short of having a brain computer interface that will allow us to dynamically program our “connectome” which will happen within the next twenty five years.
We can improve existing CBT systems with haptic feedback and immersive interfaces and the use of virtual reality; such as the use of tele-medicine terminals for training surgeons like those developed by Intutivie surgical called Davinci Robotsix. These methods will only be applied to professions where the cost of education justifies the investment in the required technology. We've already creaeted sytems that produce better pilots by using flying simulators that immerse the pilot in the plane in a simulated environment with no real risk to human lifex.
Mechainics will still learn rudiments on regular every day vehicles, but computer based training may make them more knowledgeable about the computer systems on the cars and how to troubleshoot the electrical systems more accurately. Doctors will still develop a bedside manner by residing in a hospital and experiencing the highs and lows of life and loss. Programmers will still learn by trial and error and creative exploration of computer languages and program development. CBT will simply reduce the amount of time it takes to become an expert from 10000 to less than 10000 hours.


iChappell, Camille (AandA software, 1999) Computer Based Training, Usefull or Useless? [Online] World Wide Web, Available from: http://www.aandasoftware.com/CBT/ComputerBasedTraining.htm (Accessed on February 10th 2011)
iiGordon, E Moore (Electronics, Volume 38, 1965) Cramming More Components Onto Integrated Circuts [Online] PDF Document, Available From: ftp://download.intel.com/museum/Moores_Law/Articles-Press_Releases/Gordon_Moore_1965_Article.pdf (Accessed February 10th 2011)
iiiToffler, Alvin (Horizion Magazene, Vol VII, Number 3 1965) The Future as a Way of Life [Online] Available from: http://prestwidge.com/horizon/mtoc.htm (Accessed on February 10th 2011)
ivGaldwell, Micheal; (Little Brown and Company, 2008) Outliers: the story of Success ISBN 13:978-0316017923
vEkbloom-Bak, Elin (British Journal of Sports Medicine, 2010) Are we facing a new paradigm of inactivity physiology? [Online] World Wide Web, Avaialble from: http://bjsm.bmj.com/content/44/12/834.full (Accessed on February 10th 2011)
viLeibowitz, S.J.; Margolis, Stephen E. (North Carolina State University, 1990) The Fable of Keys [Online] World Wide Web, Available from: http://www.jstor.org/pss/725509 (Accessed on February 11th 2011)
viiAsher, Juiles; Stimson, Daniel (National Institute of Health, 2010) $40 million awarded to trace human brain's connections [Online] World Wide Web, Available From: http://www.nih.gov/news/health/sep2010/nimh-15.htm (Accessed on February 10th 2011)
viiiWarwick, Kevin (University of Reading, N.D. ) Kevin Warwick Home Page [Online] World Wide Web, Available from: http://www.kevinwarwick.com/index.asp (Accessed on February 10th 2011)
ixN.A. (Intutitive Surgical, N.D. ) Intuitive Surgical Products Page [Online] World Wide Web, Avaialble from: http://www.intuitivesurgical.com/products/ (Accessed on February 11th 2011)
xAllan, Marshal (Las Vegas Sun, January 29 2011) Decades after airline crash, lessons learned applied in operating room [Online] World Wide Web, Avialable from: http://www.lasvegassun.com/news/2011/jan/29/how-health-care-can-learn-path-trod-aviation/

Wednesday, February 9, 2011

The usual suspects


The usual suspects

In my own words the SQA team members can be classified using the following methods; however first let me frame the definition of an actor or agent.

Galin States that:
“Procedures supply all th details needed dot carry out a task according to the prescribed method of fulfilling that task's function. These details can be viewed as responding to five issues, known as the Five W's,”i

These are listed in the figure as followsii:
What activities have to be preformed?
HoW should each activity be preformed?
When should the activity be preformed?
Where should the activity be preformed?
Who should preform the activity?

Galin's last question defines who would be a member of the SQA team, the best methodology I have used to assign or map responsibility is termed RASCI and was developed by the PMIiii. RASCI allows the mapping of a given task or procedure to a given individual.

The unified modeling language was developed in the mid to late nineties (1995 – 1997) and ratified in an RFP to the object management group. In 1997 IBM et all released the standard 1.0iv, UML uses the term ACTOR as an agent of any process or procedure.

The ISO/IEC maintains a QA standard, ISO/IEC 17025:2005 although it's primary aim is test equipment the methods may be applied to software as well, although we are primarily concerned with standards such as the ISO 9001:2008.v,vi The ISO 9001:2008 standard revises the ISO 9003:1994 standard.

Dave Neilson states that:
The SQA group conducts periodic reviews of its activities and findings with the customer’s SQA personnelvii.

Within the Quality assurance framework once one is adopted by a given organization; it's actors can be defined as anyone involved with or contributing to the software quality assurance cabinet or board, or assigned individual responsibility for any given component.

The usual suspects will include members of the development team, members of the project management team or office; personnel management for both the project management office and development offices. Then there are the core members of the SQA group should one be defined; these would include both the clients of the the application and the software testers that have been assigned to this given team; in addition to these human resources would be used to determine skill sets in conjunction with management to gage any skills or knowledge gaps that may require consultants or contract work. As well as all of these people there are always the administrative staff that support all operations and develop plans for recovery and backup these include business continuity, disaster recovery and capacity plans.


Unique Contributions:

The project mangers will help guide the development of any procedures and documentation templates needed to conduct the SQA activities including schedules; the real strength of the PMO is that they can map the tasks and deliverables within SQA to milestones and methodologically aligned tasks. The project management office usually defined and develops test cases, documentation for bug reports, feature requests, formal specification documents and aids in the management of the client relationships; although sometimes client relations have dedicated departments.

The development team members will facilitate and aid in the formal functions and procedures set fourth by the PMO; they will also be primary contributors to any documents developed for SQA as they will have the greatest amount of knowledge in regards to the application's functions and history. This includes mapping feature requests to release schedules, developing release schedules in conjunction with the PMO, ratifying and vetting bug reports and correcting or patching any issues that arise. They also document code and are the primary authors for any developer guides for the given application.

Personnel management (the managers) will manage the engagements and loading of the various team members involved in SQA; essentially the tasks and lists including test cases and scheduling for testing require time and commitment from members across the organization, as such management is best positioned to determine who has what available time within the given teams of an organization. The managers and PMO usually determine what and who goes where in a RASCI chart.

Direct SQA members, such as Client Relationship managers, Software Test engineers and analysts, and even End Users will contribute to the communications, development of feature requests, logging of bugs, vetting of test cases and procedures.

Human resources will contribute to SQA if any skills or knowledge is required are not available within the organization. They will facilitate any contracts for resources and resource acquisition.

The administrative staff; such as LAN/Wan admin's and systems analysts will ensure that the lights are on the servers are powered and that capacity requirements are met for the SQA of any given application Quality assurance plan.

The usual suspects include members from every part of a given organization and each will contribute a unique aspect of software quality within the framework that would be adopted; ultimately any business engaged in any kind of production software or otherwise; as the Toyota way states; Quality is everyone's responsibility. 

References 
iGalin, Daniel (Pearson Addison-Wesley, 2004) Software Quality Assurance from theory to implementation (Section 14.1 P.313 ) ISBN 13: 978-0-201-70945-2
iiGalin, Daniel (Pearson Addison-Wesley, 2004) Software Quality Assurance from theory to implementation (Section 14.1 P.313 ) ISBN 13: 978-0-201-70945-2
iiiN.A. (Wikimedia Inc., N.D.) Responsibility assignment matrix [Online] World Wide Web, Available from: http://en.wikipedia.org/wiki/Responsibility_assignment_matrix (Accessed on February 9th 2011)
ivGoogch, Tom (University of Kansas, 2000) The history of UML [Online] World Wide Web, Available from: http://atlas.kennesaw.edu/~dbraun/csis4650/A&D/UML_tutorial/history_of_uml.htm (Accessed on February 9th 2011)
vN.A. (ISO/IEC, 2010) ISO/IEC 17025:2005 [Online] PDF Document, Available from: http://www.iso.org/iso/catalogue_detail.htm?csnumber=39883 (Accessed on February 9th 2011)
viN.A. (ISO/IEC, 2010) ISO/IEC 9001:2008 [Online] PDF Document, Available from: http://www.iso.org/iso/iso_catalogue/catalogue_ics/catalogue_detail_ics.htm?csnumber=46486 (Accessed on February 9th 2011)
viiNeilson, Dave (The PM Hut, n.d.) CMM and Quality Project Management [Online] World Wide Web, Available from: http://www.pmhut.com/cmm-and-project-quality-management (Accessed on February 9th 2011)

Friday, February 4, 2011

Demings Principals


These are my principals and if you don’t like them I have others ~ Groucho Marx

Edward Deming’s Quality Principles are designed to foster a culture of management and a sense of individual responsibility for every member of a given organization to that organizations role in industry. Deming’s principals are rooted in the work of Walter A. Shewhart of Bell Lab’s fame.[i] As a physicist and satiation he aided in the rebuilding of Japans economy after World War II and maintained a critical influence over industrial quality control and industry up until his passing in 1993.  It is stated that he is one of many key people in influencing the Japanese to produce products of a greater quality and on a greater scale than those in the United States.
A principle is defined as a fundamental assumption or a rule used to choose among solutions to a problem; with respect to Deming we may assume that his principals were derived from his view of the laws of nature due to his education in Physics and Statistics[ii].  
For the purposes of this article we will consider the following statements of the available 14 principals:

Create Constancy of Purpose

The nature of business is rooted in trade, the standard definition from the science of economics fundamentally defines this as the production of goods and services that offer value to other members or organizations in society and are exchanged for something of value. Every business has the fundamental requirement for Labour, Capital and Land[iii]; of these the goals created by the principals are to improve the quality of any given good or service by improving the process and procedure used to create it.
The goal of having a constancy of purpose is to create quality assurance plans that involve long-term strategies and ensure that those charged with testing software components have comprehensive plans used to test and verify the software being produced; as well as encouraging the integration of good ideas and implementing continuous improvement methods[iv]. These ideas are quite visible in formal methodologies such as the Bhoem Spiral[v], V, Waterfall, Agile and Iterative methodologies. They are even formalized by such standards as the Capability Maturity Model (CMMI)[vi] and ISO development standards.
Once common case study used within industry is the now infamous “Denver International Airport” baggage handling system development. It’s ensuing failure has been documented time and time again with respect to the litany of failures in software engineering and associated cost; it is world reendowed and studied in business and operations management as how not to develop software.[vii] The argued cause of this great failure was a lack of co-ordinated decision making and proper risk management, but one may argue the underlying lack of purpose and vision were major factors.
The primary ideal behind a “Constant Purpose” is to act as motivation for every developer within a group. The French call it a “Reson d’etre”; The Japanese of Okinawa refer to it as “Ikigai”[viii] The idea is best translated as a “Reason for being”; with respect to software this translates into looking at the project from various perspectives; that of the present to determine and document simple specifications and conduct good formal requirements analysis; and the distant future to ensure that the considerations for sustainable lifecycle are met.
These include considering the change of developers supporting a given application or portfolio; the avoidance of such practices as undocumented solutions going into production systems without formal verification testing.
The reified concept of Deming’s first principal is to allow a given developer within any group of developers to use their better judgement, training and education to contribute in a positive manner to the project on which they are assigned as if this application were their magnum opus.  The desired result is to create a component or software that is of a qualitative order of magnitude greater than expected; but not to overstep a given systems requirements.
 
Institute leadership

For the want of a nail the kingdom was lost ~ King Richard III

The nature of leadership according to Maslow’s hierarchy is to ensure that the needs of their employees are met.[ix] With respect to formal management techniques these include the need for safety; and the need to have meaningful work to do; as well as the need to be compensated.
Eric Schmidt led Google for a number of years on the basis of ideas outlined in Messick’s paper on the Psychological Exchange between Leaders and followers[x]. Messick defines leaders as those responsible for answering questions “Where are we going?”,“What are our objectives?” And “What are we trying to Achieve?”  The former CEO of General Electric, Jack Welsh has 25 lessons and a book on leadership that has been translated to over 17 languages entitled “Jack: Straight from the Gut”.
Deming stated that supervision should be improved and that project leaders should help their team also to ensure that developers are adequately trained in unit testing and that they can and know how to apply statistical methods such as root cause analysis.
On how to institute leadership; Deming demonstrated that the effect of “Culture” on a given project can be the difference between its success or its failure. Ultimately leaders do nothing more than empower their sub-ordinates to do great work.
As stated in the previous Denver International airport study leaders should be adept at both risk management and supervisory and executive decisions to limit scope and to ensure that the project objectives are well defined as re the roles for each of those within the development team to ensure that each individual may contribute effectively to the given project; as these two aspects of feature bloat and scope creep can cause a software development project to fail both financially and literally.
References



[i] Robert B. Austenfeld, Jr ( International Quality Federation, 2001) W. Edwards Deming: the Story of a Truly Remarkable Person [Online] PDF Document, Available From: http://www.iqfnet.org/Ff4203.pdf (Accessed on February 3rd 2011)
[ii] N.A. (Wikimedia, n.d.) Wikinary definition for Principle [Online] World Wide Web, Available from: http://en.wiktionary.org/wiki/principle (Accessed on February 3rd 2011)
[iii] Antonietta, Campos ( Black, 1987) “Marginainalist Economics”, The New Palgrave A Dictionary of Economics, V. 3, P. 320 [Online] World Wide Web; Available From: http://www.dictionaryofeconomics.com/ (Accessed on February 3rd 2011)
[iv] Livaldis, L (UoL, 2011) SQA: Software Quality Assurance [Online] PDF Document, Available from: https://elearning.uol.ohecampus.com/bbcswebdav/xid-209439_4 (Accessed on February 3rd 2011)
[v] Boehm, B (ACM SIGSOFT, 1986) A spiral model of Software development and enhancement [Online] PDF Document Available from: http://portal.acm.org/citation.cfm?doid=12944.12948 (Accessed on February 3rd 2011)
[vi] N.A. (CMMI, 2008) Capability Maturity Model Integration [Online] World Wide Web, Available From: http://en.wikipedia.org/wiki/Capability_Maturity_Model_Integration (Accessed on February 3rd 2011)
[vii] N.A. (Calleam Consulting Ltd, 2008) Case Study – Denver International Airport Baggage Handeling System – An illustration of ineffectual decision making – Why Technology Project Fail [Online] PDF Document, Available from: http://calleam.com/WTPF/wp-content/uploads/articles/DIABaggage.pdf (Accessed on February 3rd 2011)
[viii] Kokoro Shirai, Hiroyaso Iso, Hideki Fukuda, Yasuhir Toyoda, Toshio Takatorige, Tatara Kozo; (PubMed, BioMed Central, 2006) Factors Associated with “Ikigai” among member of a public temporary employment agency for seniors (Silver Human Resources Centre) In Japan; Gender Diffrences [Online] World Wide Web, Available from: http://www.ncbi.nlm.nih.gov/pmc/articles/PMC1450260/ (Accessed on February 3rd 2011)
[ix] Simons, Janet A; Irwin, Donald B.; Drinnnien, Beverly A. (West Publisishing Company, New York 1987) Maslow’s Hierarchy of Needs [Online] World Wide Web, Available from: http://honolulu.hawaii.edu/intranet/committees/FacDevCom/guidebk/teachtip/maslow.htm (Accessed on February 3rd 2011)