Project Bootstrapping
Describing/Modeling systems
- Describe system as a graph.
  Nodes are components/actors then:
  - graph 1: Arrows are relations. 
  - graph 2: Arrows are data flows. (map to sequence diagrams).

- Describe actors (components, users, roles..) and the frequent task
  each actor will be in charge of. 


- Classify entities in model according to:
  -ºactive entitiesº: entities that initiate a new work flow that acts as
     "beeings with own will". In software those entities are related to human 
     users, IoT devices, ... 
     In general, they must registrer and authenticate "shomehow" to the 
     system, have a set of assigned secrets/signature keys/... and represent
     natural/legal entities. Ex:
  -ºreactive-entitiesº: entities that react to external orders/requests.
     The mostly corresponds to software modules like daemons, 
     modules exposing REST APIs, ...
  -ºdata entitiesº: persistence data representing the status of the software model.
    They can be subdivided in:
    - Business entities: entities modeling the "Happy path" in a business workflow.
    
    - Error control : entities modeling the "Non-Happy path" when workflow
                      is stuck pending some data/event or must rollback due to
                      some non-contemplated/non-fixable error/condition.
      They can be subdivided in:
      - Error origin     : Explain where or why the error originated
      - Error destination: Explains who must fix the error.
      - Error metadata   : Extra information about the error that can
                           help to fix/audit/trace the error.
Choosing a Tech. Stack
REF: @[https://blog.bradfieldcs.com/you-are-not-google-84912cf44afb]

""" 
   Next time you find yourself Googling some cool new technology to 
   (re)build your architecture around, I urge you to stop and follow 
  ºUNPHATºinstead:

  - Don't even start considering solutions until you Understand the 
    problem. Your goal should be to "solve" the problem mostly within the 
    problem domain, not the solution domain.
  - eNumerate multiple candidate solutions. Don't just start prodding 
    at your favorite!
  - Consider a candidate solution, then read the Paper if there is 
    one.
  - Determine the Historical context in which the candidate solution 
    was designed or developed.
  - Weigh Advantages against disadvantages. Determine what was 
    de-prioritized to achieve what was prioritized.
  - Think! Soberly and humbly ponder how well this solution fits your 
    problem. What fact would need to be different for you to change your 
    mind? For instance, how much smaller would the data need to be before 
    youd elect not to use Hadoop?
"""
Agile
  MoSCoW Task Prioritization
  MoSCoW method  is  one  of  the  most  used  prioritization  
techniques  in  the  project  management  and software development 
and for this reason it was selected in the current deliverable. 

  Its primary role is to define a common baseline with partners on how 
they evaluate (e.g. most important/important/least important/etc.) 
each defined requirement. 

The acronym, MoSCoW, stands for 4 categories of prioritizations:
• "Must  have" requirements are considered vital/critical for the partner in order 
  to obtain a successful  outcome.  As  a  result,  these  are  
  considered  non-negotiable  and  mandatory. Furthermore,  any 
  solution delivered withouta requirement tagged as a must is not 
  considered viable.  If a workaround can be found for a requirement, 
  then this is not considered as “Musthave”. 

• "Should have" requirements:
  This  type comprises   all requirements that are not considered vital 
  but are important for the partner. The solution is considered viable 
  even if the requirement is not met. A workaround can be employed and 
  the solution will remain viable.

• "Could have" :
  contains all the  desired  features  that  could improve  the  
  functionality/work  experience  of the  solution  but  do  not  
  affect  the  result.  These  requirements have a minimum impact on 
  the end goal and are usually firstlyremoved in case of limited 
  timeframes.  

• "Won’t have" : (this time)
  requirements that are not needed at the current time or which do not 
  bring any addition to the value of the desired solution. Such 
  requirements do not have priority at the current moment of time. 

BºAccording  to  literature,  this prioritization  method  is        º
Bºefficient  and  offers  better  results  when  compared  to simplerº
Bºprioritizations approaches like high/medium/low prioritization or  º
Bºsequential prioritization.                                         º
Use case diagram    Diagram representing the actors outside of a system 
                    capable of interacting with the system itself. It represents the highest 
                    level view of a system.  
                    Shows the system as a whole and its input and output to and from external elements.

Vertical industry   Sybase
diagrams            
                    AADL     : Soft. Architecute Analysis and Design Language
                               (Memory, Processor, Thread, Data, Bus, System, Subprogram,
                                Thread Group, Device, Package)
                    BPMN     : Business Process Model and Notation
                               Start Event Message, Timer, Rule, Link, Multiple,
                               Intermediate Event, ,,,
                    ChemEng
                    Chronogram
                    Circuit
                    Civil
                    Cybernetics
                    Database
                    Electric
                    ER        : Entity  Relantionship
                    Flowchart
                    FS
                    Gane and Sarson
                    GRAFCET
                    Jigsaw
                    Ladder
                    Lights
                    Logic
                    Map,Isometric
                    MES
                    Network (Cisco Network)
                    Pneumatic/Hydraulic
                    RE-i*
                    RE-Jackson
                    RE-KAOS
                    SADT/IDEF0
                    SDL

Diagram Software
           
- UML: sequence diagrams, components, state-machine, ...
  - https://www.planttext.com/
    -  allows ASCII art output (C⅋P as text, git friendly, ...)
  - https://www.websequencediagrams.com/
    - Better styling but no support for ASCII output 
  - PlantUML:
    - Offline Desktop java application.
    - Supports ASCII art output

- GNU Dia:
  Complete, light, easy to use, Windows/Linux/Mac. Can export to web format standards
  like Scalable Vector Graphics (SVG),  png, gif, ...

- http://asciiflow.com/: 
  Extremely simple but very power editor to include text-based diagrams
  in mail, chats, working documentaion, ...
 
- http://www.umldesigner.org/
  Graph. tool to edit/visualize UML models based on Eclipse Sirius.

- Gliffy  : General Purpose on-line (web). Non-free for commercial use.
Agile concepts, Nomenclature
@[http://www.dummies.com/how-to/content/agile-project-management-for-dummies-cheat-sheet.html]
@[ttp://www.agilemanifesto.org]
@[http://www.scrummanager.net/files/sm_proyecto.pdf]
@[http://www.jandwyer.com/wp-content/uploads/2012/09/Lean-Primer-Article.pdf]
@[https://www.infoq.com/minibooks/scrum-xp-from-the-trenches-2]
@[http://www.scrumprimer.org/]
@[https://www.infoq.com/minibooks/kanban-scrum-minibook]
@[http://leankanban.com/wp-content/uploads/2016/06/Essential-Kanban-Condensed.pdf]

- Projects takes too much (1 year taking requirements, 10 months
  developping,...)

- Agile applies to project, people relationships,...
  prioritization of tasks, ...  better visibility,
  better prioritization, less downtime between tasks,
  Improved teamwork

- What's a task:
  A case study / promo-video / market-research /... ? NO. Too long.
  A task in agile is something that takes more than 30 minutes and less 
  than 3 days.

- How to estimate the time?
  Estimating is hard.
  Use story points (vs hours):
      1, 2, 4, 8, 16, 32, 48
      This could map (not necesarely) to:
      30min, 1hour, 2hours, 4hours, 1day, 2days, 3days.

SCRUM vs KANBAN: 
  Both are subsets of Agile.
  SCRUM targets dead-lines. (fixed dates)
   * Releases are more important that "what's in".
   * Delay release or drop feature?
   * Uses a PLAN MODE

  Kanban:
   * Service team. new tickets  always comming in.
   * Prioritazing the tickets (tasks) and doing in the right order
     is more important than how many are done in a week.
   * No Plan mode, no Sprints. 
     PLAN MODE:
   * Do NOT uses a PLAN MODE
Why I hate Scrum
https://dzone.com/articles/why-i-hate-scrum?edition=618291
By Gerhard Beck

I’ll define Scrum as the methodology developed by Ken Schwaber and Jeff Sutherland and documented in “The Scrum Guide.”

opinion: Scrum is not agile and, in practice, not very flexible. 

- Let’s take a look at the basic terminology:
  - "daily scrum"
    (less sporty and a lot less aggressive: a daily standup)
    - what you did.
    - what you are going to do
    - blockers. 
  - "sprints": management metaphor  to pressure to work un-paid hours.
    - 2 hours "sprints": "Put more pressure"

  - "Done" Scrum meaning.
     It starts with requiring those “performing the work and those inspecting
     the resulting increment must share a common definition of ‘Done’."
     - Problem: "done" depends:
                - on the task to be accomplished. 
                - on customer acceptance.
                -Dificult to figure out.
     - going to "done" must NOT be "insane"
     - ‘Done’ increment required at the Sprint Review. (just another way
       to put more preassure).

  - Time box: (2 weeks)
    Idea   : fit everything into "time box" so we all finish together.
    Reality: some things go faster, some others go slower.
           - Scrum is not agile, it’s a two-week waterfall from hell.

  - Scrum Master:
    Idea   : servant-leader for the Scrum Team.
    Reality: project manager stripped of the ability to manage the project.
     - "something needs to be done and a project manager can make the changes
        and get it done".
     - Scrum Master has to meekly explain to leadership that the next
       opportunity to save the ship will come in a week-and-a-half at
       the next sprint review
  
  - four formal events defined:
    - Sprint Planning
    - Daily Scrum:  replace with daily standup
    - Sprint Review
    - Sprint Retrospective: Do when needed, not at sprint plans.

    Reality: Waste of time for non-productive meeting. 

  - "team": 
     well-performing team members covering for poor performing team members
     is a guarantee that those will performing team members will soon be 
     working for a different company and you will have self-selected
     poor-quality team members. 
     Theory: 1-vote-per-team member:
     Reality: seasoned expert with thirty years of experience 
              outvoted by the novices.

  Conclusion:
  Perhaps as an industry we should work more on what a good leader looks like
  than trying to invent methodologies that deliberately remove leaders and 
  leadership as a quality. To me it seems entirely rudderless. 
  Scrum is Not a Team Player 

  Scrum is based around dropping working software every two weeks. 
  For some projects (web front ends) a short identical cadence works 
  well. For other projects (avionics) it doesn’t work at all.
JIRA Summary
Features:
- Jira Issues and Dashboards
- Agile concepts
- Jira Agile Plan, Work, Track

JIRA WORKFLOW SUMMARIZED:
  - We have a team of developers than pass the work to the QA Team that
  pass the work back to the developers or forwards it to the client,...
  - There can be "millions" of different workflows.


JIRA ISSUES and DASHBOARDS:
   - Dashboards allows for example to follow  others people work.

JIRA E-R Diagram
REF: @[https://www.communardo.de/wp─content/blogs.dir/2/files/2012/04/JIRA_Concepts.pdf]

                             ┌──────────┐
                             │Issue Type│←────┐
                             │__________│     │
                             │Standard  │     │
                             │Sub─task  │     │
                             └──────────┘     │
   ┌──────────┐                  ^            │
   │Workflow  │                  │       ┌───────────┐              ┌───────┐
   │transition│                  │       │Issue Type │┌─────────────┼Context│
   └──────────┘←─♦┌────────┐  ┌────────┐ │Screen Sch.││             └───────┘
                  │Workflow│←─│Workflow│ └───┴───────┘│                 ^
   ┌────────┐←───♦└────────┘  │Scheme  │   │          │                 │
   │Workflow│                 └────────┘   │          │                 │
   │Step    │                  ^           │          │                 │
   └────────┘                  │           │          v          ┌─────────────────┐
       │                       ┌─────────────────────┐           │Global Context   │
    ┌──v──┐                    │ Project             │           │(in all projects)│
    │State│                    │                     │           └─────────────────┘
    └─^───┘                    │                     │                                     ┌─────────┐
      │                        │                     │        ┌──────────────────────┐     │Security │
      │                        │                     │───────→│Issue Security Scheme │────→│Level    │
      │                        │                     │        └──────────────────────┘     └─────────┘
      │                        │                     │
      │                        ┼─────────────────────┘────────────────┐             ┌────────────────┐
      │                        1♦   ♦1         │   │                  │             │User/Groups/    │
      │                   ┌─────┘   │          │   │                  │             │Proj.Roles      │
      │                  N│         │N         │   │   ┌────────┐   ┌─v────────┐───→│───────────     │
      │               ┌───────┐   ┌─────────┐  │   └──→│Project │   │Permission│    │Reporter        │
      │               │Version│   │Component│  │       │Category│   │Scheme    │    │Group           │
      │               └───────┘   └─────────┘  │       └────────┘   └──────────┘    │Single User     │
      │                ^           ^           │                        │           │Project Lead    │
      │                │     ┌─────┘           │                   ┌──────────┐     │Current Assignee│
      │                │     │                 │                   │Permission│     │User custom     │
      │                └┌──────┐───────────────┘                   └──────────┘     │Prj. Role       │
      └─────────────────│Issue │N                                       │           └────────────────┘
                        │      │           ┌───────┐                    │                    │
                        └──────┘←─────────→│ Issue │                    │                    │
                         │    │            │ Link  │                    │    ┌─────────┐     │
                         v    v            └───────┘                    │    │ Project │     │
                   ┌──────────┐    ┌──────────┐                         └───→│ Role    │←────┘
                   │Resolution│    │ Priority │                              └─────────┘
                   └──────────┘    └──────────┘


E-R:  REF @[https://dac-lf.prod.atl-paas.net/server/jira/platform/attachments/4227160/45525621.pdf]
PROJECT        ISSUE                  RESOLUTION
-------        --------------------   ----------
ID             ID                     ID
PNAME          PKEY                   SEQUENCE
URL            ISSUENUM               PNAME
LEAD           PROJECT                DESCRIPTION
DESCRIPTION    REPORTER               ICONURL
PKEY           ASSIGNEE
PCOUNTER       CREATEOR
ASSIGNEETYPE   ISSUETYPE
AVATAR         SUMMARY
ORIGINALKEY    DESCRIPTION
PROJECTTYPE    ENVIRONMENT
               PRIORITY
               RESOLUTION                   
               ISSUESTATUS                  
COMPONENT      CREATED                      
---------      UPDATED                      
ID             DUEDATE                      
PROJECT        RESOLUTIONDATE               
CNAME          VOTES                        
DESCRIPTION    WATCHES
URL            TIMEORIGINALESTIMATE
LEAD           TIMEESTIMATE
ASSIGNEETYPE   TIMESPENT
               WORKFLOW_id
               SECURITY

SCRUM FullJourney
ºPRE-SETUP (Initially and on-demand) )º
- CreateºCOMPONENTSº

- CreateºEpicsº

NOTE: ºCOMPONENT vs EPICº
┌──────────────────────────────────────────────────────────────────────────────┐
│COMPONENT:                                │ EPIC:                             │
│ - COMPONENT = ºproduct categoryº         │  - EPIC = ºgroupings for storiesº.│
│ - single project, timeless and kind of   │  - can go cross project           │
│   endless in scope and can be divided in │  - should have an end in time.    │
│   in "sub─products".                     │                                   │
└──────────────────────────────────────────────────────────────────────────────┘
@[https://www.linkedin.com/pulse/stories-vs-epics-components-modelling-product-jira-piotr/]


- CreateºIssue listº ← STEP 1 - organize via EPICs. ← Optional - Move list to backlog ("future TODO list") ← STEP 2 (TODOs planned, some of them can start two years from now) - Decide if we need EPICs. (Team of work/tasks) ← STEP 3 - Create newºSPRINTº(batch of tasks) and decide ← STEP 4 which tasks to move from the backlog to the SPRINT TODO (ussually two weeks dead-line). For every sprint we can decide to move forward one or more epics. - create versions. ← STEP 5 Optional
BURNDOWN CHART - chart showing the progress for the sprint. linear progress vs real progress
Documentation
Diagram Types
Term                Meaning
Functional diagram  Structured representation of the functions (activities,
                    actions, processes, operations) within the system or one of its parts.
                    The model aims at facilitating the identification of 
                    information needs and helping to recognize opportunities.
                    Amongst other funct. diagrams include:
                    - Data Flow Diagram
                    - Sequence  Diagram

Component diagram   Diagram which has the purpose of representing the 
                    internal structure of the software system modeled in terms of its main 
                    components and the relationships between them. 
                    A component is a software unit with a distinct 
                    identity, as well as a distinct responsibility and 
                    well-defined interfaces.

Deployment diagram  Diagram which describes a system in terms of hardware 
                    resources, nodes, and relationships between them.
                    Often there is a diagram showing how the software 
                    components are distributed in the available hardware resources on the system.
                    In essence, it shows the physical location (deployment) of components of the architecture

Activity diagram    The process view is a way of showing what the system does at a high level 
                    from a process prospective, explaining how the small 
                    steps within the process fit together, in terms of 
                    order and information flow.

Use case diagram    Diagram representing the actors outside of a system 
                    capable of interacting with the system itself. It represents the highest 
                    level view of a system.  
                    Shows the system as a whole and its input and output to and from external elements.

Vertical industry   Sybase
diagrams            
                    AADL     : Soft. Architecute Analysis and Design Language
                               (Memory, Processor, Thread, Data, Bus, System, Subprogram,
                                Thread Group, Device, Package)
                    BPMN     : Business Process Model and Notation
                               Start Event Message, Timer, Rule, Link, Multiple,
                               Intermediate Event, ,,,
                    ChemEng
                    Chronogram
                    Circuit
                    Civil
                    Cybernetics
                    Database
                    Electric
                    ER        : Entity  Relantionship
                    Flowchart
                    FS
                    Gane and Sarson
                    GRAFCET
                    Jigsaw
                    Ladder
                    Lights
                    Logic
                    Map,Isometric
                    MES
                    Network (Cisco Network)
                    Pneumatic/Hydraulic
                    RE-i*
                    RE-Jackson
                    RE-KAOS
                    SADT/IDEF0
                    SDL

Tools for Diagram design
- PlantUML : text to UML (a Local Java version exists, as well as online
             - zero install versions -)
              To generate text diagram (Asci-art) use the flag -txt or -utxt in the
              local plantuml or one online version with text output support. For
              example @[https://www.planttext.com/]

             Quickly generate sequence diagrams from text. 
             Ex: (Using  https://www.planttext.com/)

             ──────────────────  ->  ─────────────────────────────
             INPUT                           OUTPUT 
             ──────────────────  ->  ─────────────────────────────
                                     ┌─┐          ┌─┐          ┌─┐
             @startuml           ->  │A│          │B│          │C│
                                     └┬┘          └┬┘          └┬┘
             participant A       ->   │ message 1  │            │ 
             participant B            │───────────>│            │ 
             participant C       ->   │            │            │ 
                                      │            │ message 1  │ 
             A -> B: message 1   ->   │            │───────────>│ 
             B -> C: message 1        │            │            │ 
             C -> B: reply 1     ->   │            │  reply 1   │ 
             B -> A: reply 1          │            │<───────────│ 
                                 ->   │            │            │ 
             @enduml                  │  reply 1   │            │ 
                                 ->   │<───────────│            │ 
                                     ┌┴┐          ┌┴┐          ┌┴┐
                                 ->  │A│          │B│          │C│
                                     └─┘          └─┘          └─┘

- GNU Dia: Complete, light, easy to use, Windows/Linux/Mac. Can export to web format standards
           like Scalable Vector Graphics (SVG),  png, gif, ...

- AscciFlow: Extremely simple but very power editor to include text-based diagrams
            in mail, chats, working documentaion, ...
            http://asciiflow.com/

- Web Sequence Diagram: On-line, free.

- http://www.umldesigner.org/
  Graph. tool to edit/visualize UML models based on Eclipse Sirius.

- Gliffy  : General Purpose on-line (web). Non-free for commercial use.
Reference Classification
Can be use to label content in CMS (See section in Confluence), JIRA, Git/Git-Commits, ....

  CLASSIFICATION   labels ("Coordinates in dimension)                         
  DIMMENSION                                                                  

  Generic         TODO, important, urgent, blocking,                       
                        (algún proceso está bloqueado por lo documentado aquí), ?

  soft_architecture    : soft_architecture.AAA:
                         soft_architecture.API:
                         soft_architecture.secrets:
                         soft_architecture.performance
                         soft_architecture.security
                         soft_architecture.infrastructure.
  

  Life─cycle      0) Governance
                  1) planing        
                  2) Tools          
                  3) documentation  
                  4) development     
                  5) debugging      
                  6) qa.unitests , qa.functionalTests, qa.IntegrationTest
                  7) deployment                            
                  8) monitorization                        
                  9) ticketing
                 10) deprecation                           
                 11) close
                 12) alerting

  Environment     DEV, INT, ACC/PRE, PRO                                          

  Component       component1, 2,...

  Service          diploma , notarization , essif                              
  (Solution/Product)

  Tool            Jira, SonarQube, Jenkins, npm, swagger, ...                 

DocType       :                                 
                               ? (factura, 
                albarán, presupuesto, DATAFLOW ?)
                configuration, deliverable
                planning, funding, comparative
                code_snippet


  documentType    must-read, tutorial, dataflow, configuration, procedure, minutes, reference,     
                  software, news, report,  trace(log), code, apendix
                  Others: ( budget, gant, ...)                                
  diagram     : functional,component,deployment,activity,use_case

   audience   : (what-roll this-document is intended for) developer, stackholder, ...
   Roll       : (What roll is related to this document) PROGRAMADOR, ANALISTA, ... ?



  Programming :   javascript, typescript, ruby, shell, ...                    
  Language                                                                    

  dificulty   :   level0 → ... → level10                                      
                  (Reader-expected-expertise)

  publish_flow:   template → draft → in_progess → review → ended → deprecated 

  Intended    :   developer, business_analist, operator, stackholder, ...     
  audience                                                                    

  Lecture Time:   7min → 15min → 30min → 1h → 4h → 1d → 1w → 1m               

Confluence Notes
Advanced Search (CQL)
@[https://developer.atlassian.com/server/confluence/advanced-searching-using-cql/#cql-operators]
CQL stands for Confluence Query Language (CQL)

Simple CQL:  $field $operator (value|function)1+ 

Ex.: space = "TEST" ← find all content in "TEST" space. 

Rº:It is not possible to compare two fieldsº

Content API REST Resource Ex:
AAA="-u username:password"
curl $AAA    "$BASE_URL/rest/api/content/search?cql=space=TEST" ← Simple query

COMPLEX_QUERY=""
COMPLEX_QUERY="$COMPLEX_QUERY cql=(type=page and space=DEV) OR"
COMPLEX_QUERY="$COMPLEX_QUERY (creator=admin and type=blogpost)"
curl $AAA -G "$BASE_URL/context/rest/api/content/search" \      ← Complex query
  --data-urlencode "$COMPLEX_QUERY" \
  | python -m json.tool 

Operators
CONTAINS: UsesºLucene's text-searchingº on fields:
          - title
          - text
          - space.title

AND|NOT: combine multiple clauses

Exs: 
              type  = "blogpost"      and    ← page|blogspot|attachment
             label  = "performance"   and 
           creator  = currentUser()   and
             space  = DEV             and
  not( lastModified ˂ startOfYear() ) order by created desc, title
           mention IN (alice,bob)     and
              ºtextº~ "http win* api" 
       └───────↑──┘ ^
┌──────────────┘    =  ··· EQUALS
│                  !=  NOT EQUALS
│                   ˃  GREATER THAN
│                  ˃=  GREATER THAN OR EQUALS
│                  ˂      LESS THAN
│                  ˂=     LESS THAN OR EQUALS
│                  IN
│              NOT IN  ← equivalent to multiple "!=" statements,
│                        but shorter. That 
│       title|text  ~  ········ CONTAINS ← exact/ºfuzzyº match
│       title|text !~  DOES NOT CONTAINS ← Ex:
│                                          ~ run matches running,ran
|
Field is one of:
- Ancestor      - ID             - Space        -ºTextº ("document content")
- Container     - Label          -  " category  - Title
- Content       - Last modified  -  " key       - Type
- Created       - Macro          -  " title     - Watcher
- Creator       - Mention        -  " type
- Contributor   - Parent
- Favourite
  favorite

Dates:
   results will be relative to configured time zone 
   (default to Confluence server time zone).
   Ex Dates:
    yyyy/MM/dd HH:mm
    yyyy-MM-dd HH:mm
    yyyy/MM/dd
    yyyy-MM-dd
    now("-4w")
    endOfDay()
    endOfMonth()
    endOfWeek()
    endOfYear()
    startOfDay()
    startOfMonth()
    startOfWeek()
    startOfYear()

Ex:
macro = jira            ← Find content that has the JIRA issue macro.

macro in (jira, toc, widget)  ← content that hash JIRA-issue macro or
                                            Table-of-content macro or
                                                      widget macro.
Space category

space.category in (planning, development) 
space.key      in (MKT, OPS, DEV)
space.title     ~ "Development Team"
space.type      = personal  ← Find personal spaces
space.type      = global    ← Find site / global spaces


Confluence, Using lables
@[https://confluence.atlassian.com/doc/add-remove-and-search-for-labels-136419.html]
- Labels can be used to create content classification in N dimensions, versus 1-dimensional folder classification.

  labelText:'tutorial' AND labelText:'componentes?
  
- Visually:
  root ·············· │                               class2 
   │                  │                          label2.4┼
   ├ folder1_1 ······ │ x1                               │
   │ │                │                          label2.3┼
   │ ├ folder1_1_1 ·· │ x2                               │
   │ │ │              │                          label2.2┼       Bºdoc2º
   │ │ └ Gºdoc1º····· ┼ x3                               │          · 
   │ │                │                          label2.1┼···Gºdoc1º·
   │ └ folder1_1_2 ·· │ x4                               │      ·   · 
   │                  │                                  └──────┴───·─────┴──...  class1
   ├ folder1_2 ······ │ x5                              ╱ label1.1  ·   ·label1.2
   │                  │                                ╱            ·  ·
   ├ folder1_3 ······ │ x6                            ╱             · ·
   │ │                │                              ╱              ··             
   │ └ Bºdoc2º·····   ┼ x7                          ╳················ 
   ·                  ·                            ╱ label3.1  
   ·                  ·                           ╱ 
                      ^                          .   
                    1-Dimension               class 3


List existing labels
${CONFLUENCE_BASE_URL}/labels/listlabels-alphaview.action?key=${SPACE}  ← All labels
${CONFLUENCE_BASE_URL}/labels/listlabels-heatmap.action?key=${SPACE}    ← Hot labels
Meeting report Template
- Date 
- Title     
- Atendees:
  - Atendee 1
  - Atendee 2
  - ...

- Discusion Points:
  - Topic 1.
  - Topic 2.
  - ...

- Agreed Actions:
  - Action 1: ...        Deadline: YYYY/mm/dd 
  - Action 2: ...    First Review: YYYY/mm/dd
  - ...
(Sofware Component Spec Template)
Category   : front-end | back-end | Middleware | Service | ...

Description: List of Main responsibilies (features) of this component

Constrains : The list of consraints applying to this component:

Composition: This component reuses/integrates the following building
             blocks / products:
             - Commercial Product Name, including version
             - Open Source project name, including version

Licensing  : "Enumerate licensing options for building blocks/ libs:
             - Commercial/Open-source; Needed to assess if any OOSS
               license prohibtis commercialization of final product

Inputs     : - Raw data files (e,g CSV, DBF,...)
             - Online data streams (e.g, Twitter API)
             - Structured data (JSON, XML, protobuff,...)
             - ...

Outputs    : - Structured data (e.g, JSON, XML,...)
             - Unstructured data (Doc, image, pdf,...)
             - ...

Interactions: [Enumerate expected interactions with other components]
              Ex:
              - Receive stream of events from Kafka hub
              - Store "XXX" data in DDBB

Sofware     : Ex: this components requires the following base-software
Requirements      to operate:
              - GNU/Linux AMD64 ....
              - Docker/Swarn (min.version)

Hardware    : - Recomented: 16 Gb RAM, ...
Requirements
              - Minimal:     2 GB RAM ,...
Error Management
- Define generic "messages" to indicate "throws".
- Classify errors by:
  - Retry now   (weird conditions,...).
  - Retry later.
  - Do not retry.
- Classify errors by:
  - Internal to be fixed by Admins
  - Internal to be developers ("asserts in code")
  - External (to be fixed by users -or software-) sending 
    the input. In this case, most probably retry doesn't
    makes sense until client fixes its issues.
Templates
User Store classification:
Classify project stories according detailing what is
provided by the solution in terms of:
- Operational Efficiency 
  - Current Problems solved
  - savings:
  - proffits:
  - Time 
  - Resources:
    - Staff:
    - Others:
  - Automation gain
  - Security gain
  - Simplification gain
- Adaptation to current context
- Information gain:
  - trust-gain
  - transparency-gain
  - Risk-reduction

- Resilience

Soft.Development Estimation Template
                                     │ estimated  │
                                     │ Hours/Days │ Risks(Rº*1 WARN, WARN,  WARN:º)
                                     │────────────│ ─────────────
  Functional Analysis ·············· │            │
  └ User Stores / Sequence Diagrams· │            │
  └ GUI definition ················· │            │
  └ Privacy/Security Definition ···· │            │
                                     │            │
  Module 1: Middleware API           │            │
  └ API Swagger Definition ········· │            │
  └ Implementation                   │            │
    └ Core REST API Server ········· │            │
      └ Logic ······················ │            │
      └ Error Control, filters ····· │            │
  └ Documentation ·················· │            │
                                     │            │
  Module 2: Front-End:               │            │
  └ Control cli Shell ·············· │            │
  └ Async notification system ······ │            │
  └ Documentation ·················· │            │
                                     │            │
  Module 3: BackEnd                  │            │
  └ Development                      │            │
    └ Functional Analysis ·········· │            │
    └ Functional Tests    ·········· │            │
    └ Java Development ············· │            │
  └ Documentation ·················· │            │
                                     │            │
  Infrastructure:                    │            │
  └ CI Environment ················· │            │
    └ Git ·························· │            │
    └ Build Pipelines ·············· │            │
    └ Backups ······················ │            │
    └ Basic Monitoring ············· │            │
  └ Cloud Environment ·············· │            │
    └ Admin tasks ·················· │            │
    └ Deployment Module 1 ·········· │            │
    └ Deployment Module 2 ·········· │            │
      ...                            │            │
  └ Documentation ·················· │            │

Rº*1 WARN, WARN,  WARN:º
  NOTE that the Risk column can weight more than the Estimation column
  in context with high uncertainty as we switch from industrialized
  (automated repetitive tasks) to development of new Software Solutions
  with non-scoped definition about Use-stories, technology stack,...
  Since software is easy to industrialize, many projects fall under the
  second alternative and so Risks must be taken as reference over
  estimations.


Online Suvey Tools
- SurveyGizmo: 
- Doodle     :
Xray for Jira
- Manage Tests as Jira issues
- Plan, Execute and Integrate
- Reports and Requirement Coverage
- Manage manual and automated tests as Jira issues, customize 
  screens, fields and workflows.
- Specify tests in cucumber language and integrate with test 
  automation frameworks.
- Organize tests in folders and test sets.
- Create test plans for tracking a set of tests and planned or ad hoc 
  test executions.
- Execute tests on different environments and consolidate results.
- Use your CI tool to report test results using the included REST API. 
EazyBI
- Easy Business Intelligence for Project Teams
- eazyBI cloud
- eazyBI for Jira
- eazyBI for Confluence
- Private eazyBI
H2020 Expected Project Results
https://ec.europa.eu/info/funding-tenders/opportunities/portal/screen/support/glossary

H2020 Result: Communication / Dissemination / Explotation
European Commision Project Results
                                   ^
                                  / \
                                 /   \
      │Research   │             Research          │  MS, EU     │
      │Communities│             Roadmaps          │policiymakers│
                                 │   │                
                  Data           │   │          Policy
                     ┌───────────┘   └─────────┐recommendations   
                     │                         │
                     │                         │
              Publications                     │  Reports
                     │                         │
                     │                         │
     ┌───────────────┘                         └───────────────┐
    { Software                          (Collaboration)platforms}
     \───────────────┐                         ┌───────────────/
                     │                         │
                     │                         │
              Prototypes                    Skills,
                     │                      Knowledge
                     │                         │
                     └───────────┐    ┌────────┘
                   Pre─standards │    │     Educational
                                 │    │      Materials
      │Industry, │               Code Of         │Civic society,│
      │innovators│               Conduct         │ citizens     │
                                 \   /
                                  \ /
                                   v

- Exploitation: The utilisation of results in further research activities 
  other than those covered by the action concerned, or in developing, 
  creating and marketing a product or process, or in creating and 
  providing a service, or in standardisation activities.*

  - But why does Dissemination/Explotation not always happen? 
    or barriers to effective D&E in projects
    o Perceiving dissemination and exploitation as "tick boxes", not 
      important for the "real work" of the project
    o Confusion between communication, dissemination, 
      exploitation. Focusing on implementing and validating technical 
      objectives instead of aligning work with the needs of users and 
      stakeholders.
    o Limited considerations of what can be valuable key results of 
      the project.
    o Lack of skills (or interest) to effectively consider the value 
      and possible benefits of the key results outside "typical" 
      community.
    o Lack of knowledge of dissemination and exploitation risks and 
      opportunities, alternative channels and routes, stakeholders, 
      competing solutions.
    o Lack of reflection and joint discussions within the consortia
ISO 9001,20000-1
""" 
...política de calidad y gestión de servicios que apoye nuestra 
dirección estratégica, mediante un Sistema de Gestión de la 
Calidad y Gestión de Servicios basado en las normas ISO 9001 e ISO 
20000-1, que nos permite:
    - Satisfacer los requisitos y expectativas de nuestros clientes y 
      de otros grupos de interés.
    - Cumplir con los requisitos legales, reglamentarios y normativos 
      de aplicación.
    - Potenciar la mejora continua defendiéndola como un pilar 
      básico para el desarrollo de nuestras actividades y la consecución 
      de nuestros objetivos.
"""
Business Research sources
- Gartner
- Forrester
- Oxford Economics
- Euromonitor International
- IDC
- Everest Group Research, ...
- Google Scholar (academic articles). 
- ...
Bitergia (Dev.Analysis)
Bitergia helps you in your understanding, reporting, and decision 
making process regarding community health, project sustainability, 
development efficiency, talent retention and acquisition, content 
creation, developer audience analysis, and more. 
MatterMost/Discourse
- Used by CERN.
- Replacement fro Facebook Workplace, ...
Avoid "Product Owner" role
- product owner role: proxy in between people doing the work and people 
    needing the job done, and this causes delays, misunderstandings and 
    bloat in our software engineering process.
    Poppendieck, author of many books on Lean in Software

- there is an emerging theme in the literature, namely that the 
  original balance of scrum master, product owner and team roles are 
  being adapted, conflated, and possibly corrupted, to suit the needs 
  of Bºorganizations transitioning from waterfall...º

- Summarising ... as we scale Agile and its usage becomes the norm,
  the product owner role may not be such an obvious need or an obvious
  fit to the situation.