clerq 0.1.0 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +4 -3
  3. data/CHANGELOG.md +49 -0
  4. data/Gemfile.lock +9 -9
  5. data/README.md +260 -133
  6. data/Rakefile +1 -0
  7. data/clerq.gemspec +6 -6
  8. data/clerq.thor +28 -0
  9. data/docs/README.md +408 -0
  10. data/lib/assets/knb/SRS-IEEE-830-1998.md +293 -0
  11. data/lib/assets/knb/SRS-RUP.md +283 -0
  12. data/lib/assets/knb/business-case.md +135 -0
  13. data/lib/assets/knb/ears-with-examples.md +101 -0
  14. data/lib/assets/knb/problem-statement.md +8 -0
  15. data/lib/assets/knb/product-statement.md +8 -0
  16. data/lib/assets/knb/requirement-attributes.md +26 -0
  17. data/lib/assets/knb/requirement-classification.md +27 -0
  18. data/lib/assets/knb/requirement-life-cycle.md +47 -0
  19. data/lib/assets/knb/requirement-quality.md +13 -0
  20. data/lib/assets/knb/use-case.md +39 -0
  21. data/lib/assets/knb/vision-document.md +191 -0
  22. data/lib/assets/lib/clerq_doc.thor +119 -0
  23. data/lib/assets/lib/colonize_repo.rb +82 -0
  24. data/lib/assets/lib/spec/colonize_repo_spec.rb +85 -0
  25. data/lib/assets/new/clerq.thor.tt +32 -5
  26. data/lib/assets/new/content.md.tt +3 -40
  27. data/lib/assets/tt/default.md.erb +23 -42
  28. data/lib/assets/tt/pandoc.md.erb +11 -8
  29. data/lib/clerq.rb +57 -12
  30. data/lib/clerq/cli.rb +77 -60
  31. data/lib/clerq/entities.rb +0 -1
  32. data/lib/clerq/entities/node.rb +135 -115
  33. data/lib/clerq/properties.rb +1 -3
  34. data/lib/clerq/repositories.rb +2 -4
  35. data/lib/clerq/repositories/file_repository.rb +59 -0
  36. data/lib/clerq/repositories/node_repository.rb +72 -30
  37. data/lib/clerq/repositories/text_repository.rb +47 -0
  38. data/lib/clerq/services.rb +8 -0
  39. data/lib/clerq/services/check_assembly.rb +108 -0
  40. data/lib/clerq/{interactors → services}/create_node.rb +12 -11
  41. data/lib/clerq/services/load_assembly.rb +54 -0
  42. data/lib/clerq/services/query_node.rb +72 -0
  43. data/lib/clerq/services/query_template.rb +26 -0
  44. data/lib/clerq/services/read_node.rb +101 -0
  45. data/lib/clerq/services/render_erb.rb +29 -0
  46. data/lib/clerq/services/render_node.rb +37 -0
  47. data/lib/clerq/services/service.rb +19 -0
  48. data/lib/clerq/settings.rb +2 -2
  49. data/lib/clerq/version.rb +1 -1
  50. metadata +49 -37
  51. data/TODO.md +0 -3
  52. data/lib/assets/tt/gitlab.md.erb +0 -93
  53. data/lib/assets/tt/raw.md.erb +0 -23
  54. data/lib/clerq/entities/template.rb +0 -19
  55. data/lib/clerq/gateways.rb +0 -3
  56. data/lib/clerq/gateways/gateway.rb +0 -17
  57. data/lib/clerq/gateways/in_files.rb +0 -36
  58. data/lib/clerq/gateways/in_memory.rb +0 -35
  59. data/lib/clerq/interactors.rb +0 -5
  60. data/lib/clerq/interactors/check_nodes.rb +0 -81
  61. data/lib/clerq/interactors/compile_nodes.rb +0 -31
  62. data/lib/clerq/interactors/interactor.rb +0 -28
  63. data/lib/clerq/interactors/join_nodes.rb +0 -59
  64. data/lib/clerq/interactors/query_nodes.rb +0 -62
  65. data/lib/clerq/repositories/in_memory.rb +0 -45
  66. data/lib/clerq/repositories/node_reader.rb +0 -107
  67. data/lib/clerq/repositories/repository.rb +0 -11
  68. data/lib/clerq/repositories/template_repository.rb +0 -53
  69. data/lib/clerq/templater.rb +0 -32
@@ -0,0 +1,135 @@
1
+ # Business Case
2
+
3
+ [source 1](http://whatis.techtarget.com/reference/How-to-write-a-business-case)
4
+
5
+ [source 2](https://resources.workfront.com/project-management-blog/how-to-write-a-business-case-4-steps-to-a-perfect-business-case-template)
6
+
7
+ ## What is a business case?
8
+
9
+ The business case is developed during the early stages of a project and outlines the __why, how, and who__ necessary to decide if the project is worth continuing. it's first developed during an initial investigation, has much more detail and should be reviewed by the project sponsor and key stakeholders before being accepted, rejected, canceled, deffered, or revised.
10
+
11
+ BC gives your company the chance to access the following for each project:
12
+
13
+ * Business problem or opportunity
14
+ * Benefits
15
+ * Risk
16
+ * Costs including investment appraisal
17
+ * Likely technical solutions
18
+ * Timescale
19
+ * Impact on operations
20
+ * Organizational capability to deliver the project outcome.
21
+
22
+ If a project is worth doing you need to answer 5 simple questions:
23
+
24
+ * What is your goal?
25
+ * What's stopping you from reaching the goal?
26
+ * How much change is needed to overcome the problem?
27
+ * Are you certain this will solve the problem?
28
+ * Can you answer these questions quickly? Do you have evidence to support or refute your assumptions?
29
+
30
+ # How to Write a Business Case
31
+
32
+ The purpose is communication. Therefore, each section should be written in the parlance of the intended audience. Moreover, it should only contain enough information to help decision making.
33
+
34
+ As you're writing, keep in mind:
35
+
36
+ * The document should be brief and convey only the bare essentials
37
+ * Make it interesting, clear and concise
38
+ * Eliminate conjecture and minimize jargon
39
+ * Describe your vision of the future
40
+ * Demonstrate the value and benefits to project brings to the Business
41
+ * Keep the number of authors to a minimum to ensure consistent style and readability.
42
+
43
+ # Template
44
+
45
+ The perfect BC for your project typically includes the following four section:
46
+
47
+ ## Executive Summary
48
+
49
+ This short summary is the first section of the business case and the last written. It should succinctly convey vital information about the project and communicate the entire story to the reader.
50
+
51
+ First impression are important. Get this right!
52
+
53
+ ## Finance
54
+
55
+ This for those who will be approving funding and should include:
56
+
57
+ 1. __A financial appraisal__ - identify the project's financial implications, compare project costs to forecast benefits, ensure every cost is considered, assess value of money, and predict cash flow.
58
+ 2. __A sensitivity analysis__ - assess project risks, measure the impact of project outcomes or assumptions, and lets project accountants experiment with possible scenarios.
59
+
60
+ ## Project Definition
61
+
62
+ This is the largest part of the business case and is for the project sponsor, stakeholders, and project team. It should address the following...
63
+
64
+ ### Business Objective
65
+
66
+ * What is your goal?
67
+ * What is needed to overcome the problem?
68
+ * How will the project support the business strategy?
69
+
70
+ ### Benefits and Limitations
71
+
72
+ This section describes the financial and non-financial benefits in turn. The purpose is to explain why you need a project. For instance, to:
73
+
74
+ * Improve quality
75
+ * Save costs through efficiencies
76
+ * Reduce working capital - the difference between current assets and current liabilities
77
+ * Generate revenue
78
+ * Remain competitive
79
+ * Improve customer service
80
+ * To align to corporate strategy
81
+
82
+ ### Option Identification and Selection
83
+
84
+ Identify the potential solutions to the problem and describe them in enough detail for the reader to understand.
85
+
86
+ For instance, if the business case and proposed solution makes use of technology, make sure to explain how the technology is used and define the terms used in a glossary.
87
+
88
+ The final business case may contain three to five options - the short list - that includes a do nothing or benchmark option.
89
+
90
+ ### Scope, Impact, and interdependencies
91
+
92
+ This section describes the work needed to deliver the business objective and identifies those business functions affected by the project. it should also state the project's scope and boundaries. It describe what is included and what is excluded plus the key interdependencies with other projects.
93
+
94
+ Consider the failure of other interrelated projects and show how such dependencies may impact benefits.
95
+
96
+ ### Outline Plan
97
+
98
+ Ideally, the project should be divided into stages with key decisions preceding each stage. Use this section to answer the following questions:
99
+
100
+ * What is required?
101
+ * How is id done?
102
+ * Who does what?
103
+ * When will things happen?
104
+
105
+ This outline plan should also list the major deliverables and include a brief project.
106
+
107
+ ### Market Assessment
108
+
109
+ Provide a thorough assessment of the business context and make the underlying business interests explicit. Show a complete understanding of the marketplace in which your business operates, considering political, economical, sociological, technological, legal, and environmental factors (or PESTLE, if you like)
110
+
111
+ ### Risk assessment
112
+
113
+ Summarize the significant risks and opportunities and how they are managed. The risks included should cover those that could arise from you projects or the organization's ability to deliver change, including the following questions:
114
+
115
+ * What risks are involved?
116
+ * What are the consequences of a risk happening?
117
+ * What opportunities may emerge?
118
+ * What plans are in place to deal with the risks?
119
+
120
+ ### Project Approach
121
+
122
+ The project approach describes how the project is tackled. That is, the way in which work is done do deliver the project. For instance, a project with much of the work contracted out is likely to take a different approach to a project that develops an in-house solution.
123
+
124
+ ### Purchasing Strategy
125
+
126
+ This section describes how a project is to be financed and whether a decision to buy, lease, or outsource should be taken by the organization before purchasing.
127
+
128
+ Moreover, the purchasing strategy should describe the purchasing process used. A formal procurement process may save time and money and reduce project risk.
129
+
130
+ ## Project Organization
131
+
132
+ The last section is of most interest to the project manager, project team, and managers responsible for delivering work to the project, and should include:
133
+
134
+ 1. __Project governance__ - show how the project is structured and the different levels of decision-making.
135
+ 2. __Progress reporting__ - define for project progress will be recorded and reported to the project board.
@@ -0,0 +1,101 @@
1
+ % Easy approach to requirements syntax (EARS)
2
+
3
+ # General template
4
+
5
+ `optional preconditions` `optional trigger` the `system name` shall `system response`.
6
+
7
+ # Normal behaviour
8
+
9
+ The `system name` shall `system response`.
10
+
11
+ ## Car
12
+
13
+ __[car.1]__ The car shall have a maximum retail sale price of XXX.
14
+
15
+ __[car.2]__ The car shall be compliant with the safety requirements defined in XXX.
16
+
17
+ ## Laptop
18
+
19
+ __[lap.1]__ The laptop shall have a mass of no more than XXX grams.
20
+
21
+ __[lap.2]__ The laptop shall have a minimum battery life of XXX hours.
22
+
23
+ # Unwanted behavior
24
+
25
+ If `optional preconditions` `trigger`, then the `system name` shall `system response`.
26
+
27
+ ## Car
28
+
29
+ __[car.1]__ If the car detects attempted intrusion, then the car shall operate the car alarm.
30
+
31
+ __[car.2]__ If the car detects low oil pressure, then the car shall display a "low oil pressure" warning.
32
+
33
+ ## Laptop
34
+
35
+ __[lap.1]__ If the incorrect password is entered, then the laptop shall display XXX warning message.
36
+
37
+ __[lap.2]__ If the laptop is connected to a non-compatible device, then the laptop shall prevent transfer of data, prevent transfer of charge, display XXX warning message and not be damaged.
38
+
39
+ # Event-driven, When
40
+
41
+ When `trigger` the `system name` shall `system response`.
42
+
43
+ ## Car
44
+
45
+ __[car.1]__ When the clutch pedal is depressed, the car shall disengage the driving force.
46
+
47
+ __[car.2]__ When the "turn indicator" command is received, the car shall operate the indicator lights on the front, side and rear of the vehicle, and provide audible and visual confirmation to the driver.
48
+
49
+ ## Laptop
50
+
51
+ __[lap.1]__ When the laptop is off and the power button is pressed, the laptop shall boot up.
52
+
53
+ __[lap.2]__ When the laptop is running and the laptop is closed, the laptop shall enter "powersave" mode.
54
+
55
+ # State-driven, While
56
+
57
+ While `in a specific state` the `system name` shall `system response`.
58
+
59
+ ## Car
60
+
61
+ __[car.1]__ While the ignition is on, the car shall display the fuel level and the oil level to the driver.
62
+
63
+ __[car.2]__ While the key is in the ignition, the car alarm shall be inhibited.
64
+
65
+ __[car.3]__ While the handbrake is applied, the wheels shall be locked.
66
+
67
+ ## Laptop
68
+
69
+ __[lap.1]__ While the laptop is running on the battery and the battery is below XXX % charge, the laptop shall display "low battery".
70
+
71
+ __[lap.2]__ While an external audio output device is connected, the laptop shall mute the built-in speaker and send the audio output signal to the external audio output device.
72
+
73
+ # Option, Where
74
+
75
+ Where `feature is included` the `system name` shall `system response`
76
+
77
+ ## Car
78
+
79
+ __[car.1]__ Where the car has electric windows, the electric window controls shall be on the driver's door panel.
80
+
81
+ __[car.2]__ Where the car includes automatic windscreen wipers, the car shall sense moisture on the windscreen and operate the windscreen wipers without driver commands.
82
+
83
+ ## Laptop
84
+
85
+ __[lap.1]__ Where a "long life" battery is fitted, the laptop shall have a minimum battery life of XXX hours.
86
+
87
+ __[lap.2]__ Where the laptop is a "lightweight" model, the laptop shall have a mass of no more than XXX grams.
88
+
89
+ # Complex requirements
90
+
91
+ ## Car
92
+
93
+ __[car.1]__ Where the car includes an "owner alert" system, if the car detects attempted intrusion, then the car shall send a message to the owner and activate the car alarm.
94
+
95
+ __[car.2]__ While the car is being driven forwards above a speed of XXX, if the driver attempts to engage reverse gear, then the car shall prevent engagement of reverse gear.
96
+
97
+ ## Laptop
98
+
99
+ __[lap.1]__ Where the laptop includes "voice input" option, while the voice input option is selected, the laptop shall accept voice input commands.
100
+
101
+ __[lap.2]__ While the laptop is running on mains electrical power, if the power cable is disconnected, then the laptop shall display a warning message.
@@ -0,0 +1,8 @@
1
+ % Problem statement
2
+
3
+ It provides a statement summarizing the problem being solved by the project.
4
+
5
+ __The problem of__ [describe the problem]
6
+ __affects__ [the stakeholders affected by the problem]
7
+ __the impact of which is__ [what is the impact of the problem?]
8
+ __a successful solution would be__ [list some key benefits of a successful solution]
@@ -0,0 +1,8 @@
1
+ % Product statement
2
+
3
+ __For__ _[target customer]_
4
+ __Who__ _[statement of the need or opportunity]_
5
+ __The__ _[product name) is a _[product category]_
6
+ __That__ _[key benefit, compelling reason to buy]_
7
+ __Unlike__ _[primary competitive alternative]_
8
+ __Our product__ _[statement of primary differentiation]_
@@ -0,0 +1,26 @@
1
+ % Requirements attributes
2
+
3
+ # User metrics
4
+
5
+ * `rationale` a justification
6
+ * `originator` who raised
7
+ * `fit criterion` is it possible to test if the solution matches the requirement
8
+ * `customer satisfaction` degree of the stakeholders happiness if this requirement is successfully implemented; 1-5, uninterested - extremely pleased.
9
+ * `customer dissatisfaction` measure of stakeholders unhappiness if this requirements is not part of the final product. 1-5, hardly matters - extremely displeased.
10
+ * `conflict` other requirements that cannot be implemented if the one is
11
+
12
+ # Estimation metrics
13
+
14
+ * `complexity`
15
+ * `effort`
16
+ * `risk`
17
+ * `priority`
18
+
19
+ # Traceability
20
+
21
+ * `derive` relationship between two requirements, used when a requirement is derived from another requirement. This type of relationship is appropriate to link the requirements on different levels of abstraction. For example, a solution requirement derived from a business or a stakeholder requirement.
22
+ * `depends` relationship between two requirements, used when a requirement depends on another requirement. Types of dependency relationships include:
23
+ * `necessity` when it only makes sense to implement a particular requirement if a related requirement is also implemented.
24
+ * `effort`: when a requirement is easier to implement if a related requirement is also implemented.
25
+ * `satisfy` relationship between an implementation element and the requirements it is satisfying. For example, the relationship between a functional requirement and a solution component that is implementing it.
26
+ * `validate` relationship between a requirement and a test case or other element that can determine whether a solution fulfills the requirement.
@@ -0,0 +1,27 @@
1
+ % Requirements classification
2
+
3
+ BABOK
4
+
5
+ __Business requirements__: statements of goals, objectives, and outcomes that describe why a change has been initiated. They can apply to the whole of an enterprise, a business area, or a specific initiative.
6
+
7
+ __Stakeholder requirements__: describe the needs of stakeholders that must be met in order to achieve the business requirements. They may serve as a bridge between business and solution requirements
8
+
9
+ __Solution requirements__ : describe the capabilities and qualities of a solution that meets the stakeholder requirements. They provide the appropriate level of detail to allow for the development and implementation of the solution. Solution requirements can be divided into two sub-categories:
10
+
11
+ * __functional requirements__: describe the capabilities that a solution must have in terms of the behaviour and information that the solution will manage, and
12
+ * __non-functional requirements or quality of service requirements__: do not relate directly to the behaviour of functionality of the solution, but rather describe conditions under which a solution must remain effective or qualities that a solution must have.
13
+
14
+ __Transition requirements__: describe the capabilities that the solution must have and the conditions the solution must meet to facilitate transition from the current state to the future state, but which are not needed once the change is complete. They are differentiated from other requirements types because they are of a temporary nature. Transition requirements address topics such as data conversion, training, and business continuity.
15
+
16
+ Stakeholders
17
+
18
+ Each task includes a list of stakeholders who are likely to participate in the execution of that task or who will be affected by it. A stakeholder is an individual or group that a business analyst is likely to interact with directly or indirectly. Any stakeholder can be a source of requirements, assumptions, or
19
+ constraints.
20
+
21
+ SMART
22
+
23
+ * Specific: describing something that has an observable outcome,
24
+ * Measurable: tracking and measuring the outcome,
25
+ * Achievable: testing the feasibility of the effort,
26
+ * Relevant: aligning with the enterprise’s vision, mission, and goals, and
27
+ * Time-bounded: defining a time frame that is consistent with the need
@@ -0,0 +1,47 @@
1
+ % Some pieces from BABOK
2
+
3
+ # Requirements life cycle
4
+
5
+ The purpose is to ensure that business, stakeholder, and solution requirements and designs are aligned to one another and that the solution implements them.
6
+
7
+ ## Trace
8
+
9
+ Business Needs <-> Business Requirements <-> Stakeholder Requirements <-> Solution Requirements (Design <-> Code <-> Test)
10
+
11
+ ## Maintain
12
+
13
+ The purpose is to retain requirement accuracy and consistency throughout and beyond the change during the entire requirements life cycle, and to support reuse of requirements in other solutions.
14
+
15
+ ## Prioritize
16
+
17
+ Typical factors that influence prioritization include:
18
+
19
+ * __Benefit__: the advantage that accrues to stakeholders as a result of requirement implementation, as measured against the goals and objectives for the change. The benefit provided can refer to a specific functionality, desired quality, or strategic goal or business objective. If there are multiple stakeholders, each group may perceive benefits differently. Conflict resolution and negotiation may be employed to come to consensus on overall benefit.
20
+ * __Penalty__: the consequences that result from not implementing a given requirement. This includes prioritizing requirements in order to meet regulatory or policy demands imposed on the organization, which may take precedence over other stakeholder interests. Penalty may also refer to the negative consequence of not implementing a requirement that improves the experience of a customer.
21
+ * __Cost__: the effort and resources needed to implement the requirement. Information about cost typically comes from the implementation team or the vendor. Customers may change the priority of a requirement after learning the cost. Cost is often used in conjunction with other criteria, such as cost-benefit analysis.
22
+ * __Risk__: the chance that the requirement cannot deliver the potential value, or cannot be met at all. This may include many factors such as the difficulty of implementing a requirement, or the chance that stakeholders will not accept a solution component. If there is a risk that the solution is not technically feasible, the requirement that is most difficult to implement may be prioritized to the top of the list in order to minimize the resources that are spent before learning that a proposed solution cannot be delivered. A proof of concept may be developed to establish that high risk options are possible.
23
+ * __Dependencies__: relationships between requirements where one requirement cannot be fulfilled unless the other requirement is fulfilled. In some situations, it may be possible to achieve efficiencies by implementing related requirements at the same time. Dependencies may also be external to the initiative, including but not limited to other teams’ decisions, funding commitments, and resource availability. Dependencies are identified as part of the task Trace Requirements (p. 79).
24
+ * __Time Sensitivity__: the 'best before' date of the requirement, after which the implementation of the requirement loses significant value. This includes time-to-market scenarios, in which the benefit derived will be exponentially greater if the functionality is delivered ahead of the competition. It can also refer to seasonal functionality that only has value at a specific time of year.
25
+ * __Stability__: the likelihood that the requirement will change, either because it requires further analysis or because stakeholders have not reached a consensus about it. If a requirement is not stable, it may have a lower priority in order to minimize unanticipated rework and wasted effort.
26
+ * __Regulatory or Policy Compliance__: requirements that must be implemented in order to meet regulatory or policy demands imposed on the organization, which may take precedence over other stakeholder interests.
27
+
28
+ ## Assess changes
29
+
30
+ The purpose is to evaluate the implications of proposed changes to requirements and designs. The task is performed as new needs or possible solutions are identified.
31
+
32
+ * is it align to the change strategy and/or solution scope?
33
+ * will increase the value of the solution?
34
+ * has conflicts with other requirements?
35
+ * or increase the level of risk?
36
+ * can be traced back to a need?
37
+
38
+ ## Approve
39
+
40
+ The purpose is to obtain agreement on and approval of requirements and designs for business analysis work to continue and/or solution construction to proceed.
41
+
42
+ Business analysts are responsible for ensuring clear communication of
43
+ requirements, designs, and other business analysis information to the key stakeholders responsible for approving that information.
44
+
45
+ Approval of requirements and designs may be formal or informal. Predictive approaches typically perform approvals at the end of the phase or during planned change control meetings. Adaptive approaches typically approve requirements only when construction and implementation of a solution meeting the requirement can begin.
46
+
47
+ Business analysts work with key stakeholders to gain consensus on new and changed requirements, communicate the outcome of discussions, and track and manage the approval.
@@ -0,0 +1,13 @@
1
+ % Characteristics of Requirements and Designs Quality
2
+
3
+ While quality is ultimately determined by the needs of the stakeholders who will use the requirements or the designs, acceptable quality requirements exhibit many of the following characteristics:
4
+
5
+ * __Atomic__: self-contained and capable of being understood independently of other requirements or designs.
6
+ * __Complete__: enough to guide further work and at the appropriate level of detail for work to continue. The level of completeness required differs based on perspective or methodology, as well as the point in the life cycle where the requirement is being examined or represented.
7
+ * __Consistent__: aligned with the identified needs of the stakeholders and not conflicting with other requirements.
8
+ * __Concise__: contains no extraneous and unnecessary content.
9
+ * __Feasible__: reasonable and possible within the agreed-upon risk, schedule, and budget, or considered feasible enough to investigate further through experiments or prototypes.
10
+ * __Unambiguous__: the requirement must be clearly stated in such a way to make it clear whether a solution does or does not meet the associated need.
11
+ * __Testable__: able to verify that the requirement or design has been fulfilled. Acceptable levels of verifying fulfillment depend on the level of abstraction of the requirement or design.
12
+ * __Prioritized__: ranked, grouped, or negotiated in terms of importance and value against all other requirements.
13
+ * __Understandable__: represented using common terminology of the audience.
@@ -0,0 +1,39 @@
1
+ % Use Case
2
+
3
+ # Cockburn
4
+
5
+ __Full__
6
+
7
+ * Title: "an active-verb goal phrase that names the goal of the primary actor"[10]
8
+ * Primary Actor
9
+ * Goal in Context
10
+ * Scope
11
+ * Level
12
+ * Stakeholders and Interests
13
+ * Precondition
14
+ * Minimal Guarantees
15
+ * Success Guarantees
16
+ * Trigger
17
+ * Main Success Scenario
18
+ * Extensions
19
+ * Technology & Data Variations List
20
+
21
+ __Casual__
22
+
23
+ Cockburn recognizes that projects may not always need detailed "fully dressed" use cases. He describes a Casual use case with the fields:[9]
24
+
25
+ * Title (goal)
26
+ * Primary Actor
27
+ * Scope
28
+ * Level
29
+ * (Story): the body of the use case is simply a paragraph or two of text, informally describing what happens.
30
+
31
+ # Fowler
32
+
33
+ Martin Fowler states "There is no standard way to write the content of a use case, and different formats work well in different cases." He describes "a common style to use" as follows:
34
+
35
+ * Title: "goal the use case is trying to satisfy"
36
+ * Main Success Scenario: numbered list of steps
37
+ * Step: "a simple statement of the interaction between the actor and a system"
38
+ * Extensions: separately numbered lists, one per Extension
39
+ * Extension: "a condition that results in different interactions from the main success scenario"
@@ -0,0 +1,191 @@
1
+ % Vision Document Template
2
+ Company Name
3
+ Vision Document for [Program Name]
4
+ (r) 20XX [Company Name]
5
+
6
+ # Revision History
7
+
8
+ Date | Revision | Description | Author
9
+ :--- | :------- | :---------- | :-----
10
+ mm/dd/yy | 1.0 | Initial version | Author name
11
+
12
+ # Table of Contents
13
+
14
+ # 1 Introduction
15
+
16
+ This section provides an overview of the Vision document.
17
+
18
+ ## 1.1 Purpose
19
+
20
+ This document defines the strategic intent of the program. It defines high-level user needs, any applicable user personas, key stakeholders, and the general system capabilities needed by the users.
21
+
22
+ ## 1.2 Solution Overview
23
+
24
+ State the general purpose of the product, system, application or service, and any version identification.
25
+
26
+ * Identify the product or application to be created or enhanced.
27
+ * Describe the application of the product, including its benefits, goals, and objectives.
28
+ * Provide a general description of what the solution will and, where appropriate, will not do.
29
+
30
+ ## 1.3 References
31
+
32
+ List other documents referenced, and specify the sources from which the references can be obtained. If a business case (Chapter 23) was developed to drive the program, refer to it or attach it.
33
+
34
+ # 2 User Description
35
+ To provide products and services that meet users’ needs, it is helpful to understand the challenges they confront when performing their jobs. This section should profile the intended users of the application and the key problems that limit the user’s productivity. This section should not be used to state specific requirements; just provide the background for why the features specified in Section 5 are needed.
36
+
37
+ ## 2.1 User/Market Demographics
38
+
39
+ Summarize the key market demographics that motivate your solution decisions. Describe target-market segments. Estimate the market’s size and growth by the number of potential users or the amount of money your customers spend, trying to meet needs that your product/enhancement would fulfill. Review major industry trends and technologies. Refer to a market analysis, where available.
40
+
41
+ ## 2.2 User Personas
42
+
43
+ Describe the primary and secondary user personas (see Chapter 7). A thorough analysis might cover the following topics for each persona:
44
+
45
+ * Technical background and degree of sophistication
46
+ * Key responsibilities
47
+ * Deliverables the user produces and for whom
48
+ * Trends that make the user’s job easier or more difficult
49
+ * The user’s definition of success and how the user is rewarded
50
+ * Problems that interfere with success
51
+
52
+ ## 2.3 User Environment
53
+
54
+ Describe the working environment of the target user. Here are some suggestions.
55
+
56
+ * How many people are involved in completing the task? Is this changing?
57
+ * How long is a task cycle? How much time is spent in each activity? Is this changing?
58
+ * Are there any unique environmental constraints: controlled environment, mobile, outdoors, and so on?
59
+ * Which system platforms are in use today? Future platforms?
60
+ * What other applications are in use? Does your application need to integrate with them?
61
+
62
+ ## 2.4 Key User Needs
63
+
64
+ List the key problems or needs as perceived by the user. Clarify the following issues for each problem.
65
+
66
+ * What are the reasons for this problem?
67
+ * How is it solved now?
68
+ * What solutions does the user envision?
69
+
70
+ Ranking and cumulative-voting techniques for these needs indicate problems that must be solved versus issues the user would like to be solved.
71
+
72
+ ## 2.5 Alternatives and Competition
73
+
74
+ Identify any alternatives available to the user. These can include buying a competitor’s product, building a homegrown solution, or simply maintaining the status quo. List any known competitive choices that exist. Include the major strengths and weaknesses of each competitor as perceived by the end user.
75
+
76
+ ### 2.5.1 Competitor 1
77
+
78
+ ### 2.5.2 Competitor 2
79
+
80
+ # 3 Stakeholders
81
+
82
+ Identify the program stakeholders, their needs, and their degree of involvement with the system. A table such as the following can be effective:
83
+
84
+ Project<br/>Stakeholder | Degree of<br/> Involvement | Product Needs | Program Needs
85
+ :---- | :---- | :---- | :----
86
+ Stakeholder 1 | | |
87
+ Stakeholder 2 | | |
88
+
89
+ # 4 Product Overview
90
+
91
+ This section provides a high-level view of the solution capabilities, interfaces to other applications, and systems configurations. This section usually consists of five subsections, as follows.
92
+
93
+ ## 4.1 Product Perspective
94
+
95
+ This subsection should put the product in perspective to other related products and the user’s environment. If the product is independent and totally self-contained, state so. If the product is a component of a larger system, this subsection should relate how these systems interact and should identify the relevant interfaces among the systems. One easy way to display the major components of the larger system, interconnections, and external interfaces is via a system context block diagram.
96
+
97
+ ## 4.2 Product Position Statement
98
+
99
+ Provide an overall statement summarizing, at the highest level, the unique position the product intends to fill in the marketplace. Moore [1991] calls this the product position statement and recommends the following format.
100
+
101
+ For | (target customer)
102
+ :-- | :----------------
103
+ Who | (statement of the need or opportunity)
104
+ The (product name) | is a (product category)
105
+ That | (statement of key benefit, that is, compelling rea
106
+ son to buy)
107
+ Unlike | (primary competitive alternative)
108
+ Our product | (statement of primary differentiation)
109
+
110
+ A product position statement communicates the intent of the application and the importance of the program to all stakeholders.
111
+
112
+ ## 4.3 Summary of Capabilities
113
+
114
+ Summarize the major benefits and features the product will provide. Organize the features so that the list is understandable to any stakeholder. A simple table listing the key benefits and their supporting features, as shown below, might suffice.
115
+
116
+ Solution Features | Customer Benefit
117
+ :---------------- | :---------------
118
+ Feature 1 | Benefit 1
119
+ Feature 2 | Benefit 2
120
+
121
+ ## 4.4 Assumptions and Dependencies
122
+
123
+ List any assumptions that, if changed, will alter the vision for the product.
124
+
125
+ ## 4.5 Cost and Pricing
126
+
127
+ Describe any relevant cost and pricing constraints, because these can directly impact the solution definition and implementation.
128
+
129
+ # 5 Product Features
130
+
131
+ This section describes the intended product features. Features provide the system capabilities that are necessary to deliver benefits to the users. Feature descriptions should be short and pithy, a key phrase, perhaps followed by one or two sentences of explanation.
132
+
133
+ Use a level of abstraction high enough to be able to describe the system with a maximum of 25 to 50 features. Each feature should be perceivable by users, operators, or other external systems.
134
+
135
+ ## 5.1 Feature 1
136
+
137
+ ## 5.2 Feature 2
138
+
139
+ # 6 Exemplary Use Cases
140
+
141
+ [Optional] You may want to describe a few exemplary use cases, perhaps those that are architecturally significant or those that will most readily help the reader understand how the system is intended to be used.
142
+
143
+ # 7 Nonfunctional Requirements
144
+
145
+ This section records other system requirements including nonfunctional requirements (constraints) imposed on the system (see Chapter 17).
146
+
147
+ ## 7.1 Usability
148
+
149
+ ## 7.2 Reliability
150
+
151
+ ## 7.3 Performance
152
+
153
+ ## 7.4 Supportability
154
+
155
+ ## 7.5 Other Requirements
156
+
157
+ ### 7.5.1 Applicable Standards
158
+
159
+ List all standards the product must comply with, such as legal and regulatory, communications standards, platform compliance standards, and quality and safety standards.
160
+
161
+ ### 7.5.2 System Requirements
162
+
163
+ Define any system requirements necessary to support the application. These may include the host operating systems and network platforms, configurations, communication, peripherals, and companion software.
164
+
165
+ ### 7.5.3 Licensing, Security, and Installation
166
+
167
+ Licensing, security, and installation issues can also directly impact the development effort. Installation requirements may affect coding or create the need for separate installation software.
168
+
169
+ # 8 Documentation Requirements
170
+
171
+ This section describes the documentation that must be developed to support successful deployment and use.
172
+
173
+ ## 8.1 User Manual
174
+
175
+ Describe the intent of the user manual. Discuss desired length, level of detail, need for index and glossary, tutorial versus reference manual strategy, and so on. Formatting, electronic distribution, and printing constraints should also be identified.
176
+
177
+ ## 8.2 Online Help
178
+
179
+ The nature of these systems is unique to application development since they combine aspects of programming and hosting, such as hyperlinks and web services, with aspects of technical writing, such as organization, style, and presentation.
180
+
181
+ ## 8.3 Installation Guides, Configuration, “Read Me” File
182
+
183
+ A document that includes installation instructions and configuration guidelines is typically necessary. Also, a “read me” file is often included as a standard component. The “read me” file may include a “What’s New with This Release” section and a discussion of compatibility issues with earlier releases. Most users also appreciate publication of any known defects and workarounds.
184
+
185
+ ## 8.4 Labeling and Packaging
186
+
187
+ Defines the requirements for labeling to be incorporated into the code. Examples include copyright and patent notices, corporate logos, standardized icons, and other graphic elements.
188
+
189
+ ## 9 Glossary
190
+
191
+ The glossary defines terms that are unique to the program. Include any acronyms or abbreviations that need to be understood by users or other readers.