Solutions Architect specific Flashcards
What is ”the stability trilemma”?
Kind of like a blockchain law of physics!
What that means is, given the same level of security, if you want to increase a blockchain’s scalability, you must sacrifice its decentralization.
- Security
- Scalability
- Decentralisation
Name the 6 steps of dApp design
Guiding principles Personas User stories Functional requirements Technical requirements Tasks
What is a persona?
A person in a certain circumstance, particular environment doing something specific
One person can have multiple personas
What should you include when creating a persona?
About the persona and their problem they face (that your solution intends to solve)
What are user stories based on?
Personas
What do you include in user stories?
One or two sentences that capture:
WHO the user is
WHAT they want
WHY they want it
………….. are extracted from user stories.
Functional requirements
What is contained in a functional requirement?
1 or more functional requirement per user story
E.g.
- View all submitted expenses from previous day
- Approve or deny with one click
- Approved expenses to be sent to accounting for payout
Give an example of user story format
As a ____, I want to achieve ____ so that I realize the following benefit of ____.
Example:
As a user, I want to be able to reset my password so I can get back into the system if I forget it.
…………… describe how a user interacts with your solution in a particular use case
User stories
What are functional requirements
Tend to be very detailed and take a longer time to write.
These often go into specific detail on how the software should work.
Those details then guide the development team on how to build a new feature or functionality.
Give an example of a functional recruitment.
The user is allowed to reset their password once they have received a password reset email.
The email should contain a unique link for resetting the password and that link should expire after two hours.
Summarise the following:
Personas
User stories
Functional requirements
Personas - circumstance, desired interaction
User stories - WHAT the USER wants in a particular use case (step by step)
Functional requirement - WHAT the SOFTWARE should do (to allow the user to do what they want)
What are tasks?
Steps to be taken in sequence to fulfil each technical requirement
How should you format your tasks?
Title Owner Description Time estimate Resource req.
Who should write user stories?
Anyone close to the software — developers raising issues, a QA tester who discovers a flaw in the UX — as long as it represents the end user’s perspective.
Who should maintain the backlog of user stories?
The product manager or owner
Who should write the functional and technical requirements?
product manager (or) product owner (or) business analyst
Aside from the usual people, who else might be involved in functional and technical requirements?
Technical leads as well as the engineers who will be responsible for working on the features or improvements.
When are user stories written?
Throughout the building of a product
Where are user stories kept until they are worked on?
In the product backlog
This serves as a prioritized list of the functionality that needs to be developed
What is the top priority when writing user stories or requirements?
To describe the desired outcome for the customer
Giving development the information they need to build it successfully.
Are user stories always needed?
No
How do you decide if a user story is needed?
If what you are requesting to build has a direct benefit to your end users, write a user story.
If it is more central to the core of a product or infrastructure, jump to defining requirements.
What are the two things that should be included in acceptance testing?
Does it meet:
Function requirements - does it work
Non-functional requirements - how well does it work
In agile when is the best time to write requirements from user stories?
Just BEFORE development begins to define most (if not all) the acceptance criteria. This assures that the large majority of the higher-effort complete requirements (user story + acceptance criteria) are likely to be used and not wasted (which can happen if the user story changes/discarded as often happens in agile)
What is the official definition of solution architecture?
The practice of defining and describing an architecture of a system delivered
in context of a specific solution and as such it
may encompass description of:
an entire system or only its specific parts
How can you use Agile in blockchain development?
Pre-release to production environment (release cannot be part of the sprint process)
What stages of an Agile sprint should be used when developing a dApp?
Plan
Develop
Test
[NOT release]
What method is best to use after release?
Waterfall
Why is it best not to include a release as part of a dApp Agile sprint?
- expensive to continually release smart Contracts
- messy and even dangerous to have multiple versions
How should you decide on a technology to build your dApp on?
Based on the platforms ability to provide the requirements for your solution
Monolithic design is more …………
Secure
Modular design is more ………..
Efficient
What are the advantage of using pull payments?
Allows you to verify identity in 2 places
If the wallet connected to the payment is lost or compromised money is lost
User can choose which wallet to put the money into