CSE325 - Tutorial 1 with Discussions PDF

Title CSE325 - Tutorial 1 with Discussions
Course software engineering
Institution جامعة عين شمس
Pages 3
File Size 76.8 KB
File Type PDF
Total Downloads 93
Total Views 151

Summary

discussion of tutorial of agile software engineering...


Description

CSE325 - Tutorial 1: 24/10/2020 Agile is a mindset where the software development life cycle (SDLC) is still the same, what are we going to change is how we implement the life cycle of the project. Values Vs Principles Vs Beliefs Vs Practices: 4 Vs 12 Vs 3 Vs 8 Principles: rules we should follow. Principles enforce values. Principles are rigid and do not change. Values: represent characteristics that define the acceptable behavior we should do between us. They define acceptable & expected behavior between a team by following the principles. Values can change according to the change in environment we are in, as long as they do not break principles. Beliefs: Which perspective we view principles & values. Why we enforce values? Example: To ensure transparency between team members. Example to clarify the relation between values, principles & beliefs Value >> principle >> belief Customer collaboration >> frequent delivery >> flow of value, reduction of waste, transparency. Face-to-face communication is a principle based on individuals & interactions value to ensure the transparency belief.

Questions: What gain of learning Agile Software Engineering? Customer: ● software meeting needs ● Software is flexible to changes ● Transparency to efforts of team ● Early delivery ● Receive working software sprints constantly. ● Knowing the Reasons behind any delay. Developer: ● Reducing waste ● Utilizing resources

Constant pace development that ensures delivery without pressure for a selforganized team ● Knowledge sharing ● High productivity ●

What favors Agile over Sequential Development? ● Test driven development ● Higher flexibility. ● Higher precision to requirements. ● Increase in the quality of software. Who do time estimation for development tasks? Development Team mainly and only. ● Entire team: represents Development team+ Product owner + scrum master. ● Development team: the team is responsible for any phase of developing the software [Decides the time estimates]. ● Product owner: Is the voice of the customer and the connector between the team & the customer. ● Scrum Master: Ensures working safely and resolves the obstacles. Do Developers test in Agile? ● No tester in team. ● Test-driven development Agile is based on: ● Both Incremental & Iterative. Incremental because of requirements delivery in sprints Iterative because of refactoring as we revisit previous code Since: • Incremental: means developing the software is by accumulating the smaller parts/cycles piece by piece by not getting the requirements from the beginning. • Iterative: like in Refactoring, which reconsiders parts from the code for the optimal optimization. Remember that: Incremental is full delivery of requirements sprint by sprint Iterative is the full scope of requirements while development & revisiting the whole cycle covering all requirements.

Value >> Principle >> Belief >> Practice Where is your map?

Justify the reasons behind each of the agile misconceptions: ● Agile is process: as it substitutes the other development cycles (i.e. waterfall… etc.). Since it is in related to SDLC, steps were expected. ● Silver Bullet: the huge amount of theoretical advantages, where the application is left to the team at the end of the day. Because it has advantages over sequential when it is done correctly. ● Implementations are document less: as software delivery is prioritized over documentation, where it may be completely neglected. ● Chaotic & free of discipline: as team is self-organized, where time estimates & development tasks splitting up is the team members' responsibility. ● Team do not design, plan, or take upfront decisions: prioritizing working software. Upfront decisions may be assumed to be non-existing as It is known that predictions in agile to the future is difficult. ● Teams are constantly under pressure: regular delivery in sprints, where this is not true as we are working in constant pace. Clarify limitations: • Distributed team: no face to face communications. • Outsourcing: no control over other teams' development • Reusable Artifacts: black box no development effort • Legacy Systems & COTS: same as Reusable Artifacts • Projects involve large teams: face to face communication concerns, hard to control meetings with many attendees. • Development of large software systems: too much cycles if team members number are reasonable to apply agile, that is, lots of iterations for smaller teams. Otherwise, if we increased the team members count, we are back to the previous concern (large teams). • Safety critical software systems: can’t adopt test driven development approach, and all requirements must be known in advance. Accordingly, plan driven is usually preferred....


Similar Free PDFs