Å ogad, tÄpat kÄ pagÄjuÅ¡ogad recenzÄ“ju LU jauno programmÄ“tÄju kvalifikÄcijas darbus. Lai arÄ« prÄvs laiciņš jau pagÄjis, tomÄ“r gribu uzrakstÄ«t savus iespaidus – varbÅ«t citiem studentiem noder.
Tas bija par paÅ¡iem studentu darbiem. VÄ“l man pÄris domas par procesu kopumÄ:
Let us start with processes.
Quality management system (QMS) shall facilitate and promote usage of agile practices. As quality management system is the right source of how things should be done, then, of course QMS shall refer and promote these practices. When someone addresses QMS for advice, these practices shall be found there.
QMS shall define requirements what general software engineering practices shall be present in every project – scope management, requirements management, risk management, quality management, etc. Projects then shall map which practices they use to fulfill these requirements. For example, extensive unit testing plus proper automated regression tests, plus continuous integration practices shall be sufficient for quality control requirements.
When auditing projects, quality auditors shall apprize use of pure agile techniques in agile projects. Although traditional, old school techniques could be acceptable, agile practices shall prevail. For example, usage of agile estimation techniques (e.g. estimation poker) shall be evaluated higher than classical waterfall estimation techniques. Another example would be documenting the requirements – user stories are preferred over waterfall-style requirement specifications. Even more, waterfall-style requirement specifications or estimation techniques can be dangerous for agile projects, as agile project organization doesn’t provide desired attention to them.
QMS shall guide and promote conclusion of agile style contracts. No doubt – you can’t run true agile project with waterfall style fixed price and fixed scope contract.
Quite often agile teams are so focused on deliverables that they completely overlook the need of documenting how they work, document test results, etc. In their mind this falls in category “wasteâ€. From Quality management system standpoint having these documents is essential, because, for example ISO 9001, requires quality records as a proof that proper quality management activities have been executed. How should QMS react to agile projects’ zero-document approach? Quality management system should help agile teams to come up with the minimal list of required quality records that agile teams have to collect and help them to extract these records from the activities they already use. For example, continuous integration server build results along with unit test execution logs shall be good enough quality record if only they are stored properly.
Another area where help is needed is scope management. QMS shall guide agile projects how to document and design so frequently changing requirements. This is extremely important, because failure to do proper scope management is the most common pitfall for all agile projects. It is very important to follow best practices for recording user stories, have definition of done, properly document scope changes, etc.
Now let us try to sum it up. It turns out that Quality Management System shall insist that agile projects must follow if not all agile practices then at least majority of them. Even more – agile techniques shall be implemented as recommended by industry leaders, according to best practices. Instead of agile process QMS shall have agile guidance. QMS shall facilitate agile practices instead of putting them into process frame.
It puts also more demanding requirements for quality auditors. Auditors shall be well educated in agile techniques so that they can recognize really trustworthy scope management and separate it from lousy user story list. Or to put it differently – auditors shall distinguish lean project from hollow project.