Software Engineering
The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of
... [Show More] software.
Agile Software Engineering Stack
Lean Agile Principles and Practices
Behavior-Driven Development
Extreme Programming
Code Quality
Design Patterns and Practices
Agile Modeling
Quality is synonymous with ___
security
Values
What is important, held in high regard
Principles
Fundamental statements based on valus
Practices
Action based on principles and values
SAFe House of Lean
VALUE
- Respect for people and culture
- Flow
- Innovation
- Relentless Improvement
LEADERSHIP
SAFe Core Values
Built in Quality
Program Execution
Alignment
Transparency
SAFe House of Lean - Purpose
Achieve the sustainably shortest lead time with:
- Best quality and value to people and society
- High morale, safety and customer delight
Agile Manifesto
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
SAFe Principles
1) Take an economic view
2) Apply systems thinking
3) Assume variability; preserve options - create a deadline, budget time for meetings, planning, and bug fixes.
4) Build incrementally with fast, integrated learning cycles
5) Base milestones on objective evaluation of working systems
6) Visualize and limit WIP, reduce batch sizes, and manage queue lengths - Work should be done by the end of the sprint
7) Apply cadence, synchronize with cross-domain planning - if you are working with a sub contractor, work on the same schedule
8) Unlock the intrinsic motivation of knowledge workers - For example, allow time for people to implement tasks they want. Keep morale high.
9) Decentralize decision making
Extreme Programming (XP)
A team-based agile method that features frequent releases of workable software, short time boxes, programmers who work in pairs, and a focus on testing. The project is divided into smaller functions and developers can not go on to the next phase until the current phase is finished. Each function of the overall project is developed in a step-by-step fashion.
XP Practices
Refactoring, customer tests, code standard, co-located teams, emergent design, sustainable pace, pair programming, intentional architecture, continuous integration, test driven development, collective code ownership, informative workspace, whole team/onsite customer, planning games and user stories
Benefit Hypothesis Validation
Revolves around checking that users are actually utilizing a feature
Behavior Driven Development (BDD)
Focuses on understanding external requirements by creating scenarios of operation which then get formulated into tests
Test Driven Development (TDD)
Developers write an automated unit test first which specifies an internal behavior, run the test to observe the failure, and then write the minimum code necessary to pass the test
Enabler
Something that has to be done but is not a feature
External Application Qualities
Meets user's needs
Performance
Security
Scalability
Usability
Reliability
Efficiency
Testability
Internal Application Qualities
Maintainable and modifiable
Purpose of value streams
Accelerates delivery of value to customers. Optimize the sequence of steps necessary to release features to customers.
What should be included in value streams?
All resources: the people who do the work, the systems, and the flow of information and materials
Sequence of a value stream
Decide > Analyze > Design > Implement > Test > Deploy [Show Less]