Week 3
Lecture
Project
Project is a temporary endeavor undertaken to create a unique result.
Project development may use iterative process.
Cons:
- Vague timelines
- Inflexible planning and requirements
- Increased risk of scope creep
DevOps, agile, and ITSM are all based on iterative lifecycle.
IT Lifecycle
Traditional way
Development team and operations team work in silos. Development teams focused on functionality, and non-functional requirements, whereas operations teams focus on cost, risk, security, reliability and manageability. There seems to be an overlap between non-functional requirements and security, reliability?
E.g. Waterfall method
Enterprise Architecture
Enterprise architecture is a way of addressing complexity and change on a large scale.
TOGAF
Based on:
- Business architecture
- Data architecture
- Applications architecture
- Technical architecture
ITSM Frameworks
Agile Approach
Four key characteristics:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
DevOps
Reading
Top 6 software development models and how they influence the SDLC
SDLC | Advantages | Disadvantages | Suitable for |
---|---|---|---|
Iterative Model | 1. Coding starts early 2. Streamlined management 3. Bugs are easier to find in early stage 4. Cope with requirements change in a cost-effective way |
1. Difficult to analyze risks 2. Potential design and architecture issues in the later phases 3. A resource heavy model Too reliant on the baseline plan |
1. Large-scale projects with multiple modules 2. Projects with clearly defined objectives and tasks |
Agile Model (e.g. Scurm, Kanban) | 1. Easy to change Requirements and Baseline Plan 2. Fast release of the prototype 3. More communication between developers and clients 4. Clients’ engagement integrated in SDLC 5. Continues evaluation and feedback (Correct defects in time) |
1. Difficult to estimate final costs 2. Possible architecture conflicts due to constant requirement changes (Technically) |
1. Large-scale and smaller projects 2. Outsourcing and managed IT services 3. Adding new features to a working prototype |
DevOps Model (Cooperation between Developer and Managers) | 1. Automation and optimization of processes 2. Continuous feedback cycle between engineers and testers 3. Streamlined product delivery 4. Productivity improvements for in-house departments 5. Error can be detected early in SDLC |
1. Lack of focus on documentation 2. Difficult to manage emerging product features 3. A challenging adoption curve |
1. Complex projects that require a lot of QA and testing 2. Large teams with multiple departments |
Waterfall Model | 1. Easily Manageable 2. Clearly defined deliverables and milestones 3. Easy to prioritize tasks |
1. Phases can’t overlap 2. Time-consuming (Well design at the beginning needs much time) 3. Too costly to return to prior phases (Can’t cope with requirements change) |
1. Smaller and mid-sized projects with clearly defined requirements |
V-shaped Model | 1. Simple and straightforward 2. Critical issues are taken care of during earlier phases (Combining testing with each phases) 3. In-depth requirements documentation |
1. Lack of flexibility 2. Too costly and time-consuming |
1. For mid-sized and large projects with explicit objectives and requirements |
Spiral Model | 1. Precisely documented 2. Accurate time and budget estimates 3. Excellent risk assessment 4. Engineers can apply changes to new iterations (Spiral) |
1. Success depends on skilled risk managers 2. Requires a large resource pool 3. Time-consuming |
1. Larger projects with complex requirements 2. New products with multiple testing stages |