Project Bootstrapping
Behavior Driven Dev. (BDD)
@[https://en.wikipedia.org/wiki/Behavior-driven_development]
BDD suggests that unit test names be whole sentences starting with a
conditional verb ("should" in English for example) and should be
written in order of business value.
Acceptance tests should be written using the standard agile
framework of a user story:
"""
Oº Being a [role/actor/stakeholder] º
Oº I want a [feature/capability] º
Oº yielding a [benefit] º
"""
Work Package
Work package:
- sub-project grouping the smallest-set-of-related-task
that a project can be split into.
PROJECT:
───────────┬───────────────────┬──────────
PHASE │ TASK │ WORK
│ │ PACKAGE
───────────┼───────────────────┼──────────
Phase 1 │ Deliverable 1.1 ┐ │ WP_1
│ Deliverable 1.2 │ │ WP_1
│ Other tasks ┘ │ WP_1
│ Deliverable 1.3 ┐ │ WP_2
│ Deliverable 1.4 │ │ WP_2
│ Other tasks ┘ │ WP_2
───────────┼───────────────────┼──────────
Phase 2 │ Deliverable 2.1 ┐ │ WP_3
│ Deliverable 2.2 │ │ WP_3
│ Deliverable 2.3 ┘ │ WP_3
───────────┼───────────────────┼──────────
Phase 3 │ Deliverable 3.1 ┐ │ WP_4
3 │ QA Testing │ │ WP_4
3 │ Marketing tasks ┘ │ WP_4
───────────┴───────────────────┴──────────
└─────┘ └──────┬──────┘ └┬─┘
└───────┬─────┘
Ordered Tasks grouped in WP by:
in time - knowledge/discipline.
- time needed
- Shared resouces
- geographical area.
- Shared knowledge.
- ...
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
Graph Diagrams (Hyper)relational models.
Show entities as "circles" connected by arrows representing
relationships among them.
Diagram Software
- UML: sequence diagrams, components, state-machine, ...
- https://mermaid-js.github.io/mermaid-live-editor/
- Diagrams: Sequence, ER,Class, State, Flow Chart, User Journey,
- Charts : Gantt Charts, Pie Charts.
- Syntax:
https://mermaid-js.github.io/mermaid/#/
- 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, ...
- Extensions can be created through Python scripts:
Example extensions include:
https://github.com/amotzg/dia-postgresql : convert diagrams to PostgreSQL SQL syntax.
https://github.com/chebizarro/postdia : Convert PostgreSQL diagram to/from (tedia2sql) UML dia diagram
https://launchpad.net/diascla/ : Launch a customizable list of shell script from Dia
- Define a list of scripts that will be launched from a dialog in
Dia. Scripts will be executed as typed in a shell; full output and
standard error of execution will be printed in dialog. It is possible
to choose the directory where to execute the script.
- Scripts can use some template strings that will be raplaced
with active diagram full path, or active layer name or number, or
space separated list of ids of selected objects in diagram (id values
as in Dia xml file for objects. es. O1 O3 O92 ...).
- Can prepend or append additional parameters to each script
(template string expansion will be done on these additional
parameters too).
- https://www.lucidchart.com/
Online professional Diagram software. Free for individual use.
(some menus views indicate it could be "inspired/based" in GNU Dia?)
Supports BPMN
- 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.
i
- 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.
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.
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
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.
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
- Next generic categorization can be use to label content in CMS
(See section in Confluence), JIRA, Git/Git-Commits, email and of cours in
single page book projects.
CLASSIFICATION labels ("Coordinates in dimension)
DIMMENSION
Generic gen.TODO
gen.important
- soft_arch: soft_arch.AAA
soft_arch.API
soft_arch.secrets
soft_arch.performance
soft_arch.scalability
soft_arch.standards
soft_arch.security
soft_arch.devops
soft_arch.infrastructure.
QA) qa.unitests , qa.functionalTests, qa.IntegrationTest
Life─cycle 0) Governance
1) planing
2) Tools
3) documentation
4) development
5) debugging
6) deployment
7) monitorization
8) ticketing
9) deprecation
10) close
11) alerting
Environment DEV, INT, ACC/PRE, PRO
Component component1, 2,...
Service diploma , notarization , essif
(Solution/Product)
Tool Jira, SonarQube, Jenkins, npm, swagger, ...
documentType: dataflow, deliverable, analysis,
functional, must-read, tutorial, dataflow, configuration, procedure,
minutes, reference, comparative, code_snippet,
software, news, report, trace(log), code, apendix, diagram
template, draft,
meeting.input, meeting.output
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
difficulty : level0 → ... → level10
(Reader-expected-expertise)
Intended : developer, business_analist, operator, stackholder, ...
audience
Lecture Time: 7min → 15min → 30min → 1h → 4h → 1d → 1w → 1m
PM - PM.stackholder
(Project - PM.funding
Management): - PM.planning
- PM.estimate
- PM.TODO
- PM.TODO.DEADLINE
- PM.DONE
- PM.sprint
- PM.WorkPackage
- PM.urgent
- PM.blocking
- PM.task
- PM.task.state
→ PM.task.state.backlog
→ PM.task.state.in_progess
→ PM.task.state.review
→ PM.task.state.aproved
→ PM.task.state.published (doc related)
→ PM.task.state.closed
→ PM.task.state.deprecated (doc related, Outdated/Deprecated/Replaced)
HHRR (Human Resources)
- HHRR.expenses
- HHRR.Teleworking
- HHRR.timelabor
- HHRR.TimeLavor
- HHRR.travel
- HHRR.who_is_how
- HHRR.WhoIsWho
- HHRR.bill
- HHRR.delivery_note
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
- ...
Peer to peer template
┌─────────────────────────────────────────────────────────────────────
│ Introduction:
│
│ Peer Review process for its internal quality assurance for
│ deliverables to assure consistency and high standard for documented
│ project results.
│
│ - Instructions:
│ The Peer Review is processed individually by selected reviewers.
│ The allocated time for the review is about two weeks. The author of
│ the document has the final responsibility to collect the comments and
│ suggestions from the Peer Reviewers and decide what changes to the
│ document and actions are to be undertaken.
│ Reviewers:
│
│ - [Mr./Ms. NAME] – [ORGANISATION]
│
│
│ - Overall Peer Review Result:
│ - Deliverable is:
│ o Fully accepted
│ o Accepted with reservation
│ o Rejected unless modified as suggested
│ o Fully rejected
│
│ - Please give an overall rating of this deliverable in a scale from
│ (1: very poor to 5: very good) : _______
│
│ - Suggested actions:
│ 1. The following changes should be implemented ...
│ 2. Specify missing chapters / subjects ...
│ 3. Required changes on deliverable essence and contents ...
│ 4. Further relevant required improvements ...
│ ===========================================================
│ - Comments of Mr/Ms X
│ - GENERAL COMMENT
│ These refer to:
│ • Deliverable contents thoroughness
│ • Innovation level
│ • Correspondence to project and programme objectives
│
│ (...comments...)
│ - SPECIFIC COMMENTS
│
│ - Topic A: Relevance
│ - Reviewer comment
│ ...
│ - Author response
│ ...
│ - Topic B: Relevance
│ - Reviewer comment
│ ...
│ - Author response
│ ...
│ - Topic C: Methodological framework soundness
│ - Reviewer comment
│ ...
│ - Author response
│ ...
│ - Topic D: Quality of achievements
│ - Reviewer comment
│ ...
│ - Author response
│ ...
│ - Topic E: Quality of presentation of achievements
│ - Reviewer comment
│ ...
│ - Author response
│ ...
│ - Topic F: Deliverable Layout / Spelling / Format
│ - Reviewer comment
│ ...
│ - Author response
│ ...
└─────────────────────────────────────────────────────────────────────
(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.
Taxonomy/Research methodology
Extraced from "A systematic literature review of blockchain-based
applications:Currentstatus,classification and open issues"
Fran Casinoa, ThomasK. Dasaklisb,Constantinos Patsakisa,
To provide a transparent, reproducible and scientific literature
review of blockchain-based applications, the process suggested by
Briner and Denyer (2012)as well as some features of the PRISMA
statement (Moher et al., 2009) have been adopted.
The overall methodological approach includes the following steps:
1. Identify the need for the review, prepare aproposal for the review, and develop the review protocol.
2. Identify the research, select the studies, assess the quality, take notes and extract data, synthesise the data.
3. Report the results of there view.
3.1. Locating studies
To address our primary research question, a systematic literature search
was carried out during January 2018 without time frame restrictions
and the results were subsequently updated during April 2018.
Scopus was used as the main scientific database in which the term
“blockchain” was searched in all articles’titles. Additional
searches using the referenced works of relevant articles were also
conducted (snowball effect). Relevant “grey literature”,
including unpublished research commissioned by governments or
private/public institutions was also identified through electronic
searches. To identify the published grey literature, we evaluated the
first 200 hits from Google. Alternate terms for “blockchain” and
“application” were used during the search. The hand-search
reference list in several reports resulted in additional grey
literature, particularly research and committee reports or policy
briefs from both private and public sector
institutions/organizations. A flowchart of the strategy implemented
is presented inFig. 2. In addition, several refinement features of
Scopus were extensively used (multiple refinements of results
following the context of specific articles,related documents search,
etc.). When the abstract of a particular study was not available, the
full article was retrieved and assessed for relevance.All potentially
relevant articles were retrieved in fulltext.
3.2. Study selection and evaluation
The eligibility of the retrieved literature was evaluated
independently by the authors based on a set of
predefined exclusion and inclusion criteria (seeTable 2). Some
exclusion criteria were used before introducing the literature in the
bibliographic manager(language, subject area and document type
restrictions). Initially, the abstracts of all research papers and
introductory sections of grey literature were assessed. Articles
meeting one of the exclusion criteria were excluded and sorted by
reason of exclusion. Afterwards,a full-text review also took place,
and some additional articles were excluded from the study documenting
the reasons for exclusion. Any discrepancy with respect to the
relevance of reviewed articles was resolved through discussion until
consensus was reached. Overall, several studies were excluded because
they were focused primarily on the technical aspects of blockchain
tech-nology and/or blockchain architecture. Articles not fitting the
inclusion criteria were set aside and consequently used in the
in-troduction of this article.
3.3. Analysis and synthesis
All articles and reports meeting the inclusion criteria were
entered into a qualitative analysis software (MAXQDA11), and data
were analysed in emerging themes. The reviewers independently carried
out the thematic content analysis. Afterwards, the three clusters of
coded segments were compared(rate of consensus was approximately
75%), agreed upon for all articles and summarised in one set of
themes and sub-themes
Bibliographic database search + Grey Literature
|
+------------+ +------------------------------+ |
| | |Records retreived. (568) | | +-----------+
|Identifi- | | | | |Records |
|cation | |Additional articles included | +----------------+ | |retrieved |
| | |through bibliographic trail | |Exclusion of NOn| | |from other |
| | |search and reference list (37)+-----˃ |English language| | |source(170)|
+------------+ +------------------------------+ |literature(39) | | +-----------+
+----------------+ |
|
+------------+ +-------------------------------+ +----------------------+ |
|Screening | |Records imported into +----˃+ Duplicates removed(9)| | +-------------+ +--------------+
| | |citation manager (566) | +----------------------+ | |Records | |Records |
| | +------------+------------------+ | |screened with+-----˃+excluded based|
| | | +------------------------+ | |check-list 2 | |on ...(116) |
| | v --˃ | Articles excluded based| | |(170) | +--------------+
| | +------------+-----------------+ | | on Title(22) | | +-------------+
+------------+ |Title and Abstract screening +--+ +------------------------+ |
|(557) | +-------------------------+ |
| +-----˃+ Articles excluded based | |
+------------------------------+ | on Abstract(42) | |
+-------------------------+ |
+------------+ +-------------------------------+ |
|Eligibility | |Full-text articles | +-------------------+ |
| | |assesed for eligibility | | Full-text articles| | +------------------------------+
| | |(292) +----˃+ exclude(32) | | |Number of reports included(54)|
+------------+ +-------------------------------+ +-------------------+ | +--+---------------------------+
| |
Inclusion | |
+-------------------------------+ | |
|Number of articles included | + |
|(260) | |
+------------+------------------+ |
| |
| |
v v
+---------+-----------------------------------------------------------------+----+
|Total records included in qualitative analysis (314): 260 articles and 54 report|
+--------------------------------------------------------------------------------+
˂ ˃
* MAXQDA is a world-leading software package for qualitative and
mixed methods research. Analyze all kinds of data – from texts to
images and audio/video files, websites, tweets, focus group
discussions, survey responses, and much more. Developed by and for
researchers, MAXQDA is at once powerful and easy-to-use, innovative
and user-friendly, as well as the only leading QDA software that is
100%
Qualitative Data Analysis Soft (QDAS)
@[https://en.wikipedia.org/wiki/Computer-assisted_qualitative_data_analysis_software]
- Computer-assisted (or aided) qualitative data analysis software
(CAQDAS) offers tools that assist with qualitative research such as
transcription analysis, coding and text interpretation, recursive
abstraction, content analysis, discourse analysis,[1] grounded theory
methodology, etc.
- CAQDAS is used in psychology, marketing research, ethnography, public
health and other social sciences. The CAQDAS networking project[2]
lists the following tools a CAQDAS program should have:
- Content searching tools
- Coding tools
- Linking tools
- Mapping or networking tools
- Query tools
- Writing and annotation tools
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.
CalVer.org
- CalVer is a versioning convention based on your project's release
calendar, instead of arbitrary numbers.
_ Versioning gets better with time.
- For maintainers, versioning allows us to specify precise dependencies
within an ever-expanding ecosystem. For sellers and promoters, a
project's version is a dynamic part of a brand. For all of us,
versioning lets us reference the past while upgrading to the future.
- Different projects use different systems for versioning, but common
practices have emerged. For instance, point-separated numbers (e.g.,
3.1.4) are all but given. Another common versioning pattern
incorporates a time-based element, usually part of the release date.
- This date-based approach has come to be called Calendar Versioning,
or CalVer for short.
Business Management
Business Research sources
- Gartner
- Forrester
- Oxford Economics
- Euromonitor International
- IDC
- Everest Group Research, ...
- Google Scholar (academic articles).
- ...
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
EazyBI
- Easy Business Intelligence for Project Teams
- eazyBI cloud
- eazyBI for Jira
- eazyBI for Confluence
- Private eazyBI
Decision Model and Notation
@[https://en.wikipedia.org/wiki/Decision_Model_and_Notation]
See also Goldman Sach implementation in Java:
@[https://github.com/goldmansachs/jdmn]
- Decision Model and Notation (DMN) is a standard published by the
Object Management Group.[1] It is a standard approach for describing
and modeling repeatable decisions within organizations to ensure that
decision models are interchangeable across organizations.
- The DMN standard provides the industry with a modeling notation for
decisions that will support decision management and business rules.
The notation is designed to be readable by business and IT users
alike. This enables various groups to effectively collaborate in
defining a decision model:
- the business people who manage and monitor the decisions
- the business analysts or functional analysts who document the
initial decision requirements and specify the detailed decision
models and decision logic,
- the technical developers responsible for the automation of systems
that make the decisions.
- The DMN standard can be effectively used standalone but it is also
complementary to the BPMN and CMMN standards. BPMN defines a special
kind of activity, the Business Rule Task, which "provides a mechanism
for the process to provide input to a business rule engine and to get
the output of calculations that the business rule engine might
provide"[2][3] that can be used to show where in a BPMN process a
decision defined using DMN should be used.
- DMN has been made a standard for Business Analysis according to BABOK v3.[4][5]
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.
Team tools
MatterMost/Discourse
- Used by CERN.
- Replacement for Facebook Workplace, ...
Twake: OOSS Kanban Prj Mgn
@[https://itsfoss.com/twake-app/]
- focus on Kanban project management methodology.
- Can be used on-line or hosted on premise.
Online Suvey Tools
- SurveyGizmo:
- Doodle :
Quality Assurance
ISO 9001,20000-1 families
https://en.wikipedia.org/wiki/ISO_9000
- quality management systems (QMS) set of standards
- Aim: Help organizations ensure they meet customer and
other stakeholder needs within statutory and regulatory requirements
related to a product or service.
- ISO 9000: fundamentals of quality management systems
7 quality management principles:
- ISO 9001: requirements that organizations need to fulfil.
(certified by 3rd parties)
RºCritics about usefulness exists.º
Non classified