Mostrar mensagens com a etiqueta T20. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta T20. Mostrar todas as mensagens

terça-feira, 14 de novembro de 2017

Requirements Analysis: Weasel words, weak expressions

The Short Story

While writing requirements texts (imperative sentences like "The SW shall etc."), as part of the analysis team, weasel words and weak expressions have to be avoided at all times. Automatic spell checking scripts can be devised to ensure that, prior to peer review, all these expressions are removed.

What are weasel words?
https://en.wikipedia.org/wiki/Weasel_word

Quoting:
"A 2009 study of Wikipedia found that most weasel words in it could be divided into three main categories:
  1. Numerically vague expressions (for example, "some people", "experts", "many")
  2. Use of the passive voice to avoid specifying an authority (for example, "it is said")
  3. Adverbs that weaken (for example, "often", "probably")
Other forms of weasel words may include these:

Remember: ambiguity is one of our major enemies when doing requirements analysis. Whatever gets approved will have to be implemented by the development team and tests will have to be written against it (by the test analysts). A requirement using weak expressions is failing the S criteria in the SMART quality attributes all requirements should have.

quarta-feira, 8 de novembro de 2017

Virtualization: Docker as an helper for dev envs (as well as production scenarios)

Docker provides an additional layer of abstraction and automation of operating-system-level virtualization on Windows and Linux.
Allows independent "containers" to run within a single Linux instance, avoiding the overhead of starting and maintaining virtual machines (VMs). [Source: Wikipedia]

INTERNAL: Useful for creating and maintaining dev, test and pre-prod envsironments made available to IS project teams as well as Maintenance and Support (M&S)teams, DevOps (additional terms used in this include or development envs, testing environment, qualification environment, maintenance environment) . 
But also used in production: e.g. used at the OVERSEE S&R IS for production environment (for fault tolerance, several app servers or web servers at the same production VM for instance, several RDBMS instances, etc.).

Additional information:
https://en.wikipedia.org/wiki/Docker_(software)

segunda-feira, 16 de outubro de 2017

And some relevant links include...


About SDP and life cycles (some not widely used nowadays): 
Make sure you also read about TDD, RUP, etc.

About risk management in SW Development (a NASA doc) and why it is important to do it  - see next link:

And the NASA report about the (failed Mars mission) Mars Climate Orbiter and the ICD/ICS problem:

Maintenance categories (applicable to SW development, of course):

ENG QMS Process example (for TOC analysis, INTERNAL):
  • https://quality.critical.pt/qmsunified/ENG-engineering/ENG01-requirements-analysis/CSW-QMS-2005-PCS-3424-requirements-analysis.pdf#search=eng01


sexta-feira, 29 de setembro de 2017

On the importance of interface specifications (ICD)

On the importance of interface specifications (doing it and then... following it). Lots of systems fail due to interfaces to external systems. What is an external system? In this context, anything where you'll have to read data from and/or export / write data to.

In some projects/markets these are mandatory deliverables (the designation and the acronym can vary): SIS (Software Interface Specification), ICS (Interface Control Specification), ICD (Interface Control Document). The interface specification can be a document by itself or part of the broader design documentation (a section of it). The advantage of having it extracted is that it is easier to share externally (you'll have to share just that part of the design with external companies and that eases up distribution issues for organizations that restrict distribution).

As per the external interfaces by themselves:
Identify all intervening external systems and specify the needed interfaces thoroughly: specify the data flows, frequency and means of communication, review and accept those documents so that all teams (persons) working for all components of the information system are aligned.


Case study / example (on the importance of interface specifications):

The Mars Climate Orbiter  is one of the many failed Mars missions. It crash landed in Mars in 1999:

"The primary cause of this discrepancy was that one piece of ground software supplied by Lockheed Martin produced results in a United States customary unit, contrary to its Software Interface Specification (SIS), while a second system, supplied by NASA, expected those results to be in metric units, in accordance with the SIS."
They had a spec, they just didn't read it. Or even worse, they produced contradicting documentation.



PS. The full NASA 1998 report can be found here:

segunda-feira, 17 de outubro de 2016

DIGEST: Agile/Scrum links

Agile / Scrum recent relevant links include:
Additional resources related to Agile / Scrum:
The Tools Dept.: 
(Updated: 2016-10-20, PT BR link; minor rephrases; 2016-11-24: link to summary and minor rephrases; 2017-06-06: actionable book)


segunda-feira, 2 de maio de 2016

Process: Requirements Analysis (The team, the standards and the plan)

ENG.2 - Requirements Analysis (Process) is the most used QMS Engineering process for the SW Requirements Engineering phase (not surprisingly) the phase that leads to the Preliminary Design Review (PDR) milestone and its principal deliverable, the Software Requirements Specification (SRS) Issue 1 (Status: Approved).

The process document can be found here.

The Team and the Conventions to be Used


The requirements gathering shall be performed by business analysts, and when needed the team shall be split into mini-teams (minimum team size = 2). The team shall meet internally (including the project management team that could include de PM, TM and other sub-teams leaders) to adjust the granularity and style of the specification they'll be working on (where to stop: at the GUI control, stop at the GUI screen, ...); that includes recommendations like: never use weak expressions, weasel words, how and where to record open issues. All written requirements must be SMART (please note that this acronym has several meanings, for instance look here for a variant, but we're talking of the meaning on this 1995 paper).

Standards and tools to be used during the requirements gathering shall be left written in the SRS (example: Use of Sparx EA for requirements gathering, open issues on the issue tracker, MS Word for the final contents integration including the final Requirements Catalog, typically a list of requirements presented in tabular form, ...).

The SRS document


The 2 most important sections in the SRS are: The requirements catalog and the traceability matrix (requirements - proposed features, as identified in the technical proposal).
It is recommended to start storing analysis information (from this phase and from the subsequent ones) in a centralized place typically called "Analysis Model". Excepting trivial projects (simpler ones) you'll need to have (and know how to use) a modelling tool to store the technical baseline information (requirements, architecture, detailed design, etc.) as well as keeping related new model items with previously existing ones (traceability relationships). A modelling tool helps you also speeding up the creation of the final traceability matrices (and performing traceability analysis).

Planning for Requirements Gathering

The inputs to the process could be (inception information): RFI, RFP, Technical Proposal (the proposal); some additional information sent by the customer (1 GB pen sent after the KOM) that has to be analyzed).

A plan has to be made for the phase, tailored to the scenario you'll be finding (customer maturity, number of customer stakeholders, ...):
- Initial meeting (present scope of project), closure meeting (present the produced SRS, eventually projected)
- Identify interview needs (subdivide themes/subjects based eventually on the proposal WBS decompostion): Who will talk (and decide) on a certain subject.
- Approve the plan with the customer (adjustments have to be made typically, due to scheduling conflicts); revise the plan (and remember to use it and maintain it - up-to-date).
- Interviews: minimum number, 2 per interviewee. CSW mini teams, minimum number of persons: 2; max. 2-3h of interview (make some pauses).
- Reserve time for a first full round of interviews; use the second one to present results from the gathering (project them if possible) and obtain a first commitment / confirmation that what is being written (requirements) is what is to be done. Use the second round to close open issues left from the first meetings.
- Reserve time for: Setup, Meeting, Follow-up (consolidation of texts, open issues recording)
- Reserve time (several days before from the PDR) to final document consolidation (contributions from all teams) and peer review (formal document review).
- Send the document to the customer and ask for formal customer approval (the project sponsor on the customer side could pass it internally to the interviewees so that they help them review the full document).
- Remember to leave time for processing (all) customer comments (or create actions FFR with a proposed date for closure, even if after milestone ends; customer must agree with this line of action that postpones resolutions)
- Only after that approval comes (in a written form) the document is considered V1 Approved. Store those mails (or any other evidences) on the VCS. They could be handy later on.


PS. Remember: "Weasel words are great!" - says the weasel.
PS2. This is one advanced topic and there are lots of (old) good papers and books on the subject, i.e. there are lots of good articles and books on requirements.
For a start: Look for the keywords "Writing Good Requirements" or start by reading Steve McConnell's  "Code Complete".

Remembering Other Important Things


- Also write (and validate) assumptions (not only requirements)
- Leave the open issues recorded (even if on a section of the document, if no clear closure to the issues were timely attained)
- Make sure you have a complete and balanced specification (no grey zones; ambiguity is our greatest enemy on this phase and on all subsequent ones)
- If possible, write implicit requirements
- Run the typographical corrector on the final integrated SRS document (or only on the Requirements Catalog - Some UML tools have spell checking embedded)
- As with any other DL: Peer review the document (with external team members, if possible) before submitting it to te customer's approval
- If possible: Present the document structure and the main parts of its contents to the customer (e.g. project it during a final presentation meeting) before asking for formal approval (Submitted to Approval status)
- Obtain formal approval of the technical baseline (at this phase it consists mainly of the SRS) with the customer (and leave a written record of it on your VCS): ask for a reply via email, send an email stating "As we've talked a few minutes ago by phone the sent version can be considered approved", write it down on external meeting minutes, ...
- Create the SRS V1 (or Issue 1) Status Approved only after that (and resend it to the customer) and after processing and closing all provided comments (issues raised).

Books on Requirements and Writing Requirements Texts

The following topic lists some books on Business Analysis, Requirements Analysis and writing good requirements: Books on requirements.

Also, remember to avoid weasel words or weak expressions. Some automatic tools (spell-checking) could help you spot forbidden expressions in requirements text (like "may", "might", "sometimes", etc. as well as the typical TBC, TBD, FFR, TODO, To Do, etc.).

Also, every requirement shall be SMART (quality attributes to verify for every requirement being written).
Details here: SMART Requirements.

sexta-feira, 19 de fevereiro de 2016

On software project failures

Software projects fail a lot. And since software is on most modern equipments (read carefully: almost everywhere) most equipments will also fail when running faulty software produced by some of those projects. This is one of the reasons current systems (meaning hardware + software) will also fail a lot.

How much do software projects fail? It's an interesting question and here are some possible "answers":


The latter study, published on Dr. Dobbs (which is now inactive BTW), criticizes the CHAOS report. On any case, a good percentage of projects fail and / or are challenged (they do not meet the on-quality, on-budget, on-schedule initial criteria). Just look at the trailer, I mean, just look at the numbers.