Skip to content

Commit 825466f

Browse files
committedMar 26, 2024
ASDD: Complete
1 parent d5d613a commit 825466f

34 files changed

+1162
-119
lines changed
 

‎Agile Software Development & DevOps/.obsidian/workspace.json

+29-83
Original file line numberDiff line numberDiff line change
@@ -6,75 +6,21 @@
66
{
77
"id": "32743b1c03891a05",
88
"type": "tabs",
9-
"dimension": 73.1638418079096,
109
"children": [
1110
{
12-
"id": "eb62182007acccb4",
11+
"id": "7926f4d5d7133f8a",
1312
"type": "leaf",
1413
"state": {
1514
"type": "markdown",
1615
"state": {
17-
"file": "Chapters.md",
16+
"file": "Chapter 4/Topic.md",
1817
"mode": "source",
1918
"backlinks": false,
2019
"source": false
2120
}
2221
}
2322
}
2423
]
25-
},
26-
{
27-
"id": "faad01ab51e858ae",
28-
"type": "split",
29-
"dimension": 26.836158192090398,
30-
"children": [
31-
{
32-
"id": "2c1981ccb7866ce3",
33-
"type": "tabs",
34-
"dimension": 68.5785536159601,
35-
"children": [
36-
{
37-
"id": "8c4a89df32b1a500",
38-
"type": "leaf",
39-
"state": {
40-
"type": "markdown",
41-
"state": {
42-
"file": "Chapters.md",
43-
"mode": "preview",
44-
"backlinks": false,
45-
"source": false
46-
}
47-
}
48-
}
49-
]
50-
},
51-
{
52-
"id": "104e0c7ae9560afa",
53-
"type": "tabs",
54-
"dimension": 31.421446384039903,
55-
"children": [
56-
{
57-
"id": "ce6bf069c2615238",
58-
"type": "leaf",
59-
"state": {
60-
"type": "graph",
61-
"state": {}
62-
}
63-
},
64-
{
65-
"id": "248a491ee3ec40d8",
66-
"type": "leaf",
67-
"state": {
68-
"type": "kanban",
69-
"state": {
70-
"file": "Progress.md"
71-
}
72-
}
73-
}
74-
]
75-
}
76-
],
77-
"direction": "horizontal"
7824
}
7925
],
8026
"direction": "vertical"
@@ -160,7 +106,7 @@
160106
"state": {
161107
"type": "backlink",
162108
"state": {
163-
"file": "Chapters.md",
109+
"file": "Chapter 4/Topic.md",
164110
"collapseAll": false,
165111
"extraContext": false,
166112
"sortOrder": "alphabetical",
@@ -177,7 +123,7 @@
177123
"state": {
178124
"type": "outgoing-link",
179125
"state": {
180-
"file": "Chapters.md",
126+
"file": "Chapter 4/Topic.md",
181127
"linksCollapsed": false,
182128
"unlinkedCollapsed": true
183129
}
@@ -189,7 +135,7 @@
189135
"state": {
190136
"type": "outline",
191137
"state": {
192-
"file": "Chapters.md"
138+
"file": "Chapter 4/Topic.md"
193139
}
194140
}
195141
}
@@ -215,42 +161,42 @@
215161
"zk-prefixer:Create new unique note": false
216162
}
217163
},
218-
"active": "eb62182007acccb4",
164+
"active": "7926f4d5d7133f8a",
219165
"lastOpenFiles": [
220-
"Chapter 4/Topic.md",
221166
"Chapters.md",
222167
"Chapter 2/Topic.md",
168+
"Chapter 2/UX Design.md",
169+
"Chapter 2/Progress Tracking.md",
170+
"Chapter 2/Project Forecasting.md",
171+
"Chapter 2/Agile Forecasting and Project Management.md",
172+
"Chapter 2/Velocity.md",
173+
"Chapter 2/Extreme Programming.md",
174+
"Chapter 2/Kanban.md",
175+
"Chapter 2/Test Driven Development.md",
176+
"Chapter 2/Adaptive Software Development.md",
177+
"Chapter 2/Feature Driven Development.md",
178+
"Chapter 2/Crystal.md",
179+
"Chapter 2/SCRUM.md",
180+
"Chapter 2/Lean Production.md",
181+
"Untitled 1.md",
223182
"Chapter 1/Topic.md",
224-
"Chapter 1/A Layered Technology.md",
225-
"Chapter 6/Topic.md",
183+
"Chapter 1/Capabilities and Values.md",
184+
"Chapter 1/Agile Drivers.md",
185+
"Progress.md",
186+
"Chapter 1/Team Meetings and Ceremonies.md",
187+
"Chapter 1/Agile Teams.md",
188+
"Chapter 1/Agile Manifesto and Principles.md",
189+
"Chapter 1/Classification of Agile Methods.md",
190+
"Chapter 1/Traditional vs Agile Model.md",
191+
"Chapter 1/Component Based Development.md",
226192
"Chapter 6",
227-
"Chapter 5/Topic.md",
228193
"Chapter 5",
229194
"Chapter 4",
230-
"Chapter 3/Topic.md",
231195
"Chapter 3",
232196
"Chapter 2",
233197
"Chapter 1",
234-
"Progress.md",
235198
"Chapter 1/Fundamental Steps in D.I.P.canvas",
236-
"Excalidraw/Intensity.excalidraw.md",
237-
"Chapter 1/Fundamental Steps in D.I.P.md",
238-
"Chapter 1/Topics.md",
239-
"Chapter 1/Introduction and Applications.md",
240-
"Chapter 2/Basic Intensity Level Transformations.md",
241-
"Excalidraw/Point Operation.md",
242-
"Chapter 2/Sharpening Spatial Filters.md",
243-
"Chapter 2/Sharpening Frequency Domain Filters.md",
244-
"Chapter 2/Introduction to Fouries Transform and Frequency Domain Concepts.md",
245-
"Chapter 2/Introduction.md",
246-
"Chapter 2/Basic Gray Level Transformations.md",
247-
"Excalidraw/Gray.excalidraw.md",
248-
"Chapter 1/Light and Electro-Magnetic Spectrum.md",
249-
"Chapter 1/Human Eye.md",
250199
"Chapter 1/Components of Image Processing.canvas",
251-
"Chapter 2/Topics.md",
252-
"Chapter 2/Spatial Domain Basics.md",
253-
"Excalidraw/Global.excalidraw.md",
254200
"Excalidraw",
255201
"Excalidraw/Scripts/Downloaded/Set Font Family.svg",
256202
"Excalidraw/Scripts/Downloaded",
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
### Software
2+
- Computer program that when executed provides desired features, function and performance
3+
- Two main categories of software are:
4+
1. Application Software: That fulfils a specific need or performs tasks
5+
2. System Software: Designed to run a computer's hardware and provides a platform for applications to run on top of
6+
- Characteristics of software: Software characteristics are classified into six major components
7+
1. Functionality: It refers to degree of performance of software against its intended purpose. Required functions are:
8+
1. Suitability
9+
2. Accuracy
10+
3. Interoperability
11+
4. Compliance
12+
5. Security
13+
2. Reliability: A set of attributes that bears on the capability of software to maintain its level of performance under the given condition for a stated period of time. Required functions are:
14+
1. Recoverability
15+
2. Fault Tolerance
16+
3. Maturity
17+
3. Efficiency: It refers to the ability of software to use system resources in most effective and efficient manner. The software should make effective use of storage space and executive command as per desired timing requirements. Required functions are:
18+
1. In Time
19+
2. In Resource
20+
4. Usability: It refers to extent to which the software can be used with ease. The amount of effort or time required to learn how to use the software. Required functions are:
21+
1. Understandability
22+
2. Learnability
23+
3. Operability
24+
5. Maintainability: It refers to ease with which the modifications can be made in a software system to extend its functionality, improve its performance or correct errors. Required functions are:
25+
1. Testability
26+
2. Stability
27+
3. Changability
28+
4. Operability
29+
6. Portability: A set of attributes that bears on the ability of software to be transferred from one environment to another, without or minimum changes. Required functions are:
30+
1. Adaptability
31+
2. Installability
32+
3. Replaceability
33+
34+
### Software Engineering
35+
- **Software** is a collection of integrated programs
36+
- **Engineering** is application of scientific and practical knowledge to invent, design, build, maintain and improve frameworks, processes, etc.
37+
- Result of software engineering is an effective and reliable software product
38+
- Need:
39+
1. Huge Programming
40+
2. Adaptability
41+
3. Cost
42+
4. Dynamic Nature
43+
5. Quality Management
44+
45+
### As a layered approach
46+
- Software Engineering is fully a layered technology
47+
- All layers are connected and each layer demands the fulfilment of previous layer
48+
- Layered technology is divided into four parts:
49+
1. **Quality Focus**: It defines the continuous process improvement principles of software. It provides integrity that means providing security to the software so that data can be accessed by only an authorised person, no outsider can access data. It also focuses on maintainability and usability
50+
2. **Process**: It is the foundation or base layer of software engineering. It is the key that binds all the layers together which enables the development of software before the deadline or on time
51+
3. **Method**: During the process of software development, the answers to all "how to do" questions are given by method
52+
4. **Tools**: Software engineering tools provide a self-operating system for processes and methods. Tools are integrated which means information created by one tool can be used by another
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
- The agile approach helps organisations manage unpredictability while driving collaboration and transparency across teams, and adoption of a different mind-set to be successful. In an agile environment, development cycles break tasks into small increments
2+
- Nine drivers:
3+
1. Leadership
4+
2. Anticipating Change
5+
3. Flexible and focused
6+
4. Data Driven
7+
5. Iterative and Experimental
8+
6. Clear and Transparent
9+
7. Collaborative
10+
8. Empowered
11+
9. Customer-Centric
12+
- Leadership: Agile leadership sharpens focus, accelerating action and responsiveness of a group of people or organisation
13+
- Benefits:
14+
- Improved self-organisation
15+
- Greater autonomy and self-driven problem solving
16+
- Fostering of an organisational culture that adheres to agile principles
17+
- More thoughtful, mutually beneficial support and collaboration between leaders and other team members
18+
- Improved communications efficiency, time management, and responsiveness that addresses problems head on
19+
- Fellow team members are more motivated, actively supported and given the chance to get involved
20+
- Everyone is encouraged to use their voice, share insights
21+
- More readily adaptive to change and capable of overcoming obstacles together
22+
- Anticipating Changes: Refers to ability to identify and foresee demands, requirements, opportunities, threats and changes. This means identifying changes in technology, shifts in consumer demands and fluctuations in markets that could cause a change to business in future
23+
- Flexible and Focused: Flexibility is at the basis of a truly agile development methodology. Identifying where your felxibility lies, accounting for it in your project plan, and building it into the agile development process will allow you to adapt changes and still have the ability to deliver a successful product
24+
- Data Drive: A data-driven mindset involves building teams of dynamic people to collaborate and adapt to change on a given project to produce the best product possible. It is motivated by increasing inflow of user feedback
25+
- Iterative and Experimental: An iteration is a repeated interval in which work items are fully developed and tested. Projects are made up of as many iterations as needed to complete the necessary work. Iterative methodology allows software developers to adjust, refine and review software development processes constantly to improve their performance incrementally
26+
- Clear and Transparent: It builds upon the fundamental values of agile methodologies. Within the scrum, framework, which is a widely adopted agile methodology, transparency stands tall as one of the three pillars of an empirical process, alongside inspection and adaptation. It allows to:
27+
- Assess teams progress towards sprint goals
28+
- Identify excessive work in progress
29+
- Recognise obstacles in completing tasks
30+
- Build trust and communication
31+
- Collaborative:
32+
- Understand your role
33+
- Communicate frequently and clearly
34+
- Embrace feedback and leaning
35+
- Respect diversity and inclusion
36+
- Support and trust each other
37+
- Empowered: Agile leadership is based on belief that teams and individuals are capable of making good decisions when given trust and autonomy. Agile leaders empower their teams by:
38+
- Providing a clear vision of goals
39+
- Encouraging collaboration
40+
- Removing Obstacles
41+
- Customer Centric: It is a business practice that involves prioritising customers and creating positive experiences for them. Its a mindset that helps organisations make decisions based on how they affect customers and end-users. It can lead to greater profits, increased employee management and more satisfied customers. Some steps are:
42+
- Understand customer needs and expectations
43+
- Align business strategies with customer needs
44+
- Empower employees to prioritise customer satisfaction
45+
- Continuously monitor and improve the customer experience
46+
- Some key pillars for customer-centricity include: Price, Range and Service, Promotions, Affinity, Rewards, Ease, Communications
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
### Agile Manifesto
2+
- It is a document that sets out the key values and principles behind the agile philosophy and serves to help development team's work more efficiently and sustainably
3+
- It has 4 points:
4+
- Individuals and Interactions over processes and tools
5+
- Working software over comprehensive documentation
6+
- Customer collaboration over contract negotiation
7+
- Responding to change over following a plan
8+
9+
### Twelve Principles of Agile Manifesto
10+
- Customer Satisfaction
11+
- Welcome Change
12+
- Deliver the Working Software
13+
- Collaboration
14+
- Motivation
15+
- Face-to-Face Conversation
16+
- Measure the Progress as per the Working Software
17+
- Maintain Constant Pace
18+
- Monitoring
19+
- Simplicity
20+
- Self-Organised Teams
21+
- Review the Work Regularly
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
- Agile means *swift* or *versatile*
2+
- Agile Process Model refers to a software development approach based on iterative development
3+
- It breaks tasks into smaller iterations, or parts do not directly involve long term planning
4+
- Project scope and requirements are laid down at beginning of the development process
5+
- Plans regarding the number of iterations, the duration and scope of each iteration are clearly defined in advance
6+
- Phases:
7+
- Requirements Gathering
8+
- Design the Requirements
9+
- Construction/Iteration
10+
- Testing/Quality Assurance
11+
- Deployment
12+
- Feedback
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
- An Agile team is a group of employees, contractors or freelancers responsible for executing an agile project
2+
- Agile teams are typically co-located and often wholly dedicated to the project during its timeline, with no obligations to other projects
3+
- An Agile team needs every person required to produce the end product or service. The team is typically cross-functional and roles will vary depending on project's needs and types of agile framework chosen
4+
- For instance, when using a Scrum framework, an Agile team should have a Scrum master, a product owner, and any other required team members
5+
- The Scrum master oversees the project, facilitates collaboration, and organises the daily meetings
6+
- The product owner is responsible for ensuring the end product meets the requirements of the customer
7+
- Subject matter experts and other stakeholders may provide input into the project as needed, but they're not typically considered part of the agile team
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
### Agile Capabilities
2+
- Efficiency: It makes teams more efficient at collaboration, getting their work done
3+
- High Quality: Explaining and elaborating requirements just in time so that the knowledge of product features is completely relevant. Use of automated testing tools and promoting continuous integration and regular testing into development process, enabling the development team to address issues before they turn into blunders
4+
- Project Predictability:
5+
- Just enough design/requirements and release planning.
6+
- Velocity and Optimise team capacity
7+
- Requirements mind set
8+
- Adaptability of a software development team: The capability to adapt to change is a cornerstone of agile project management and helps in embracing Agile completely in work processes
9+
- Agile ensures development: Agile development is iterative, it means that the features are delivered incrementally which gives early benefits while the product is in the development process
10+
- Development is fast and early
11+
- Few iterations ensure a functional 'ready to market' product
12+
- First mover advantage
13+
14+
### Advantages of Agile
15+
- Change is embraced
16+
- End-goal can be unknown
17+
- Faster, High-quality delivery
18+
- Strong team interaction
19+
- Customers are heard
20+
- Continuous improvement
21+
22+
### Disadvantages of Agile
23+
- Planning can be less concrete
24+
- Team must be knowledgeable
25+
- Time commitment from developers
26+
- Documentation can be neglected
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
- **Models**: Crystal Agile Software Development Methodology places a strong emphasis on fostering effective communication and collaboration among team members, as well as taking into account the human elements that are crucial for a successful development process. This methodology is particularly beneficial for projects with a high degree of uncertainty, where requirements tend to change frequently
2+
- **Atern**: This methodology is tailored for projects with moderate to high uncertainty where requirements are prone to change frequently. Governance practices set it apart and make it an effective approach for teams and projects
3+
- **Feature-driven development**: This approach is implemented by utilising a series of techniques, like creating feature lists, conducting model evaluations, and implementing a design-by-feature method, to meet its goal. It is particularly effective in ensuring the end product is delivered on time and that it aligns with requirements of the customer
4+
- **Scrum**: This methodology serves as a framework for tackling complex projects and ensuring their successful completion. It is led by a Scrum Master, who oversees the process and a Product Owner, who establishes the priorities
5+
- **Extreme Programming (XP)**: It uses specific practices like pair programming, continuous integration, and test-driven development to achieve these goals. Extreme Programming is ideal for projects that have high levels of uncertainty and require frequent changes, as it allows for quick adaptation to new requirements and feedback
6+
- **Lean Development**: It is rooted in the principles of lean manufacturing and aims to streamline the process by identifying and removing unnecessary steps and activities. This is achieved through practices such as continuous improvement, visual management and value stream mapping, which helps in identifying areas of improvement and implementing changes accordingly
7+
- **Unified Process**: It is a methodology that can be tailored to the specific needs of any given project. It combines elements of both waterfall and agile methodologies, allowing for an iterative and incremental approach to development. This means that the Unified Process is characterised by a series of iterations, each of which results in a working product increment, allowing for continuous improvement and the delivery of value to the customer
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
- The component-based assembly model uses object-oriented technologies
2+
- This model uses various characteristics of spiral model. This model is evolutionary by nature. Hence, software development can be done using iterative approach
3+
- In CBD model, multiple classes can be used. These classes are basically the pre-packaged components. The model works in following manner:
4+
1. Identify all the required candidate components, i.e., classes with help of application data and algorithms
5+
2. If these candidate components are used in previous software projects, then they must be present in library
6+
3. Such pre-existing components can be excited from the library and used for further development
7+
4. But if the required component is not present in the library then build or create the component as per requirement
8+
5. Place this newly created component in the library. This makes one iteration of the system
9+
6. Repeat steps 1 to 5 for creating n iteration, where n denotes the number of iterations required to develop the complete application
10+
- Characteristics:
11+
- Uses object-oriented technology
12+
- Components and classes encapsulate both data and algorithms
13+
- Components are developed to be reusable
14+
- Paradigm similar to spiral model, but engineering activity involves components
15+
- The system produced by assembling the correct components

0 commit comments

Comments
 (0)
Please sign in to comment.