SlideShare a Scribd company logo
SOFTWARE DEVELOPMENT TECHNIQUES–
ICE313
300 LEVEL FIRST SEMESTER
MODULE ONE
Mrs. Loreta Jugu (katokjugu@gmail.com)
AIRFORCE INSTITUTE OFTECHNOLOGY, KADUNA
FACULTY OF GROUND AND COMMUNICATION ENGINEERING
DEPARTMENT OF INFORMATION AND COMMUNICATION TECHNOLOGY
• What is an Agile Framework?
• Agile represents an overarching philosophy for software development, emphasizing the
value of iterating quickly and often to satisfy customers.
• Therefore, an agile framework can be defined as a specific software-development
approach based on the agile philosophy articulated in the Agile Manifesto.
• The Agile Manifesto is a brief document built on 4 values and 12 principles
for agile software development.
Agile Framework
katokjugu@gmail.com
Agile Framework
katokjugu@gmail.com
• What is Scrum Agile Framework?
• Scrum is an approach to project management.Typically the Scrum agile
framework favours moving projects forward via short-term blocks of work called sprints,
which are usually confined to two-week intervals.
• Teams working with this framework are self-organizing and not top-down or hierarchical
in nature. Scrum-specific roles include the ScrumMaster, essentially a team guide, and
the Product Owner, who represents the business and customers.
SCRUM
katokjugu@gmail.com
• Product Backlog (PB):The product backlog is a list that collects everything the product needs to satisfy
the potential customers. It is prepared by the product owner and the functions are prioritized according
to what is more and less important for the business.The goal is for the product owner to answer the
question “What should be done”.
• Sprint Backlog (SB): It is a subset of items of the product backlog, which are selected by the team to
perform during the sprint on which they are going to work.The team establishes the duration of each
Sprint. Usually the sprint backlog, is displayed on physical boards called as Scrum board – that makes the
development process visible to everyone who enters the development area.
• Increment:The Increment is the sum of all the tasks, use cases, user stories, product backlogs and any
element that was developed during the sprint and that will be made available to the end user in the form
of Software.
SCRUM Artifacts
katokjugu@gmail.com
SCRUM
katokjugu@gmail.com
STRENGTHS AND WEAKNESS OF SCRUM AGILE
FRAMEWORK
• Strengths include:
• It is easy to understand
• Allows for rapid feedback
• Allows issues to be brought up through daily meetings
• Drawbacks include:
• Strictness (e.g., teams may not hold more than one sprint-review meeting during a sprint.And, there are
limitations on the number of people allowed on the team)
• Can lead to scope creep
• Some argue that the framework can place a high degree of pressure on the team due to the frequent, short
deadlines.
katokjugu@gmail.com
• The Dynamic Systems Development Method (DSDM) is an agile framework that addresses
the entire project lifecycle and its impact on the business.
• DSDM is an iterative approach to software development, and this framework explicitly states
“any project must be aligned to clearly defined strategic goals and focus upon early delivery of
real benefits to the business.”
• The framework is built on four principles:
• feasibility and business study
• functional model and prototype iteration
• design and build iteration
• and implementation.
Dynamic Systems Development Method
(DSDM)
katokjugu@gmail.com
• DSDM’s strengths include:
• Basic product functionality can be delivered rapidly
• Developers have easy access to end-users
• Projects are reliably completed on time
• DSDM’s weaknesses include:
• Can represent a dramatic and disruptive change in company culture
• Costly to implement
• Not ideal for small organizations
What are the Strengths and Weakness
of DSDM?
katokjugu@gmail.com
• Feature Driven Development (FDD) is an agile framework that, as its name suggests,
organizes software development around making progress on features.
• Features in the FDD context, though, are not necessarily product features in the
commonly understood sense.They are, rather, more akin to user stories in Scrum.
• In other words,“complete the login process” might be considered a feature in the
Feature Driven Development (FDD) methodology.
Feature Driven Development (FDD)
katokjugu@gmail.com
• FDD was designed to follow a five-step development process, built largely around
discrete “feature” projects.That project lifecycle looks like this:
• Develop an overall model
• Build a features list
• Plan by feature
• Design by feature
• Build by feature
Feature Driven Development (FDD)
katokjugu@gmail.com
• FDD’s strengths include:
• Simple five-step process allows for more rapid development
• Allows larger teams to move products forward with continuous success
• Leverages pre-defined development standards, so teams are able to move quickly
• FDD’s weaknesses include:
• Does not work efficiently for smaller projects
• Less written documentation, which can lead to confusion
• Highly dependent on lead developers or programmers
Strengths and Weakness of Feature
Driven Development
katokjugu@gmail.com
• What is Lean Software Development (LSD)?
• Lean Software Development (LSD) is an agile framework based on optimizing
development time and resources, eliminating waste, and ultimately delivering only what
the product needs.
• The Lean approach is also often referred to as the MinimumViable Product
(MVP) strategy, in which a team releases a bare-minimum version of its product to the
market, learns from users what they like, don’t like and want to be added, and then
iterates based on this feedback.
Lean Software Development
katokjugu@gmail.com
Lean Software Development
katokjugu@gmail.com
• LSD’s strengths include:
• Streamlined approach allows more functionality to be delivered in less time
• Eliminates unnecessary activity, and as a result, can reduce costs
• Empowers the development team to make decisions, which can also boost morale
• LSD’s weaknesses include:
• Heavily depends on the team involved, making it not as scalable as other frameworks
• Depends on strong documentation, and failure to do so can result in development mistakes
What are the Strengths and Weakness
of Lean Software Development?
katokjugu@gmail.com
• LSD’s strengths include:
• Streamlined approach allows more functionality to be delivered in less time
• Eliminates unnecessary activity, and as a result, can reduce costs
• Empowers the development team to make decisions, which can also boost morale
• LSD’s weaknesses include:
• Heavily depends on the team involved, making it not as scalable as other frameworks
• Depends on strong documentation, and failure to do so can result in development mistakes
What are the Strengths and Weakness
of Lean Software Development?
katokjugu@gmail.com
• What is the Crystal Method?
• Crystal is an agile framework focusing on individuals and their interactions, as opposed to
processes and tools. In other words, this framework is a direct outgrowth of one of the
core values articulated in the Agile Manifesto.
• The Crystal agile framework is built on two core beliefs:
• Teams can find ways on their own to improve and optimize their workflows
• Every project is unique and always changing, which is why that project’s team is best suited to
determine how it will tackle the work
Crystal Agile Framework
katokjugu@gmail.com
• These are categorized by colour, according to the number of people in the project;
• Crystal clear - Teams with less than 8 people
• Crystal yellow - Teams with between 10 and 20 people
• Crystal orange - Teams with between 20-50 people
• Crystal red
• - Teams with between 50-100 people
Crystal Agile Framework
katokjugu@gmail.com
• Crystal’s strengths include:
• Allows teams to work the way they deem most effective
• Facilitates direct team communication, transparency and accountability
• The adaptive approach lets teams respond well to changing requirements
• Crystal’s weaknesses include:
• Lack of pre-defined plans can lead to scope creep
• Lack of documentation can lead to confusion
What are the Strengths and Weakness
of Crystal?
katokjugu@gmail.com
• Rapid Application Development is an agile framework focused primarily on rapid
prototyping of software products, frequently iterating based on feedback, and
continuously releasing updated versions of those products to the market.
• The RAD model is comprised of four phases:
• Phase 1: Requirements planning
• Phase 2: User design
• Phase 3: Rapid construction
• Phase 4: Cutover
Rapid Application Development
katokjugu@gmail.com
• RAD’s strengths include:
• Takes advantage of the nature of software, which allows for rapid and low-cost iteration, to
allows organizations to quickly and continuously improve their products
• Allows teams to break down large projects into smaller, discrete, actionable tasks
• Users can receive working products in less time
• RAD’s weaknesses include:
• Requires highly skilled development team and product designers
• Requires user involvement throughout each stage of the project
• Does not work as well with large-scale projects
What are the Strengths and Weakness
of RAD?
katokjugu@gmail.com
• What is eXtreme Programming?
• eXtreme Programming (XP) is an agile framework that emphasizes both the broader
philosophy of agile—to produce higher-quality software to please customers—and the
more specific goal of making life better for the engineers developing it.
• The main characteristics of XP include dynamically changing software requirements; using
a small, collocated extended development team; and leveraging technology that facilitates
automated unit and functional tests.
eXtreme Programming (XP)
katokjugu@gmail.com
• XP’s strengths include:
• Can help cut costs for software development organizations
• Team members are accountable to the team for their work
• The emphasis on quality-of-life issues helps boost employee morale and retention
• XP’s weaknesses include:
• Does not emphasize code quality, which can lead to defects in early iterations
• Stresses code over product design
• It is not ideal if developers are not in the same location
Strengths and Weaknesses of eXtreme
Programming
katokjugu@gmail.com
• What Is RUP?
• Rational Unified Process (RUP) is an agile software development methodology.
• RUP splits the project life cycle into four phases. During each of the phases, all six core development
disciplines take place: business modelling, requirements, analysis and design, implementation, testing, and
deployment. However, certain processes are more important and take up more time during every stage.
For example, business modelling mostly takes place during the early phases, inception and elaboration.
Each of four phases has the main objective, which has to be completed before the project can progress
to the next phase.
• The main goal of RUP is to create high quality software with a predictable budget and time frame. Each
of the life cycle phases can be repeated, if needed, until the main objectives are met. Once the transition
stage is completed successfully, the project is finished.
Rational Unified Process (RUP)
katokjugu@gmail.com
• RUP’s strengths include:
• It allows you to deal with changing requirements regardless of whether they are coming from the customer or from
the project itself.
• It emphasizes the need for accurate documentation.
• It forces integration to happen throughout the software development, more specifically in the construction phase.
• RUP’s Weakness include:
• It mostly relies on the ability of experts and professionals to assign the activities to individuals who should then
produce pre-planned results in the form of artefacts.
• The integration in development process can also have an adverse impact on some more fundamental activities during
the stages of testing
• Although RUP has delivered excellent results, especially in software development, it is a rather complex method which
makes its implementation challenging, particularly for smaller businesses, teams or projects.
Strengths and Weaknesses of Rational Unified Process
(RUP)
katokjugu@gmail.com
• RUP Example
• Pear, Inc. is a software development company, specializing in mobile phone applications.They are currently working on a new productivity
enhancing application, called Get A Kitten, rewarding you with a cute picture of a kitten for every completed task from your to-do list. Pear, Inc.
uses RUP as their development framework.
Let's look at activities that Pear, Inc. team must complete during each of the phases.
• 1. Inception
During the inception phase, the initial evaluation is carried out to scope the system and determine whether the project is worth pursuing.A
business case is created by Pear, Inc., detailing the pricing model for Get A Kitten app and estimating development costs and schedule.An
agreement on project scope is reached with all stakeholders. Some of the features may be de-scoped to reduce the development time and
costs. For example, a to-do list originally supported three different task types, but will now support only one task time.
• 2. Elaboration
During the elaboration, more detailed evaluation is carried out, a development plan is created, and key risks are mitigated.The Pear, Inc. team
writes 80% of all use cases, creates the system architecture, and a development plan.
Rational Unified Process (RUP)
katokjugu@gmail.com
• 2. Elaboration
During the elaboration, more detailed evaluation is carried out, a development plan is created, and key risks are mitigated.
The Pear, Inc. team writes 80% of all use cases, creates the system architecture, and a development plan.
• 3. Construction
During construction, the software system is created; the code is written and tested.A dedicated team of Pear, Inc. software
developers is working on a project.A team of QA is testing the resulting software.The key output of this phase is
operational software.
• 4.Transition
During transition phase, the software is released to the end user. Pear, Inc. uploads Get A Kitten app to AppStore. Once the
application is accepted, the project is formally closed.
Rational Unified Process (RUP)
katokjugu@gmail.com
• Many factors may influence which framework you choose to work with. Such as:
• Company size
• Team structure
• Available resources
• Needs of stakeholders
• Structure/size of your product portfolio
SUMMERY:
katokjugu@gmail.com

More Related Content

PPTX
AGILE & AGILE FRAMEWORKS.pptx
PDF
Breaking Tradition: Agile Frameworks For The Modern Era of Collaborative Proj...
PDF
Jile | 5 powerful agile frameworks
PPTX
UNITTTTTTTTTTTTTTTTTTTTTTTT 1.2 (1).pptx
PDF
A littlebook about agile
PPTX
Unit 9 and Unit 10.pptx
PDF
Scrum
PPTX
7.agila model
AGILE & AGILE FRAMEWORKS.pptx
Breaking Tradition: Agile Frameworks For The Modern Era of Collaborative Proj...
Jile | 5 powerful agile frameworks
UNITTTTTTTTTTTTTTTTTTTTTTTT 1.2 (1).pptx
A littlebook about agile
Unit 9 and Unit 10.pptx
Scrum
7.agila model

Similar to Software Dev Techniques.pdf (20)

PPTX
Flavours of agile software engineering
PPTX
Flavours of agile software engineering
PPTX
Agile Development unleashed
PPT
Agile Development Overview
PPTX
Chapter 5
PPTX
What are the Tools & Techniques in Agile Project Management?
PPT
Software Engineering (An Agile View of Process)
PDF
My Scaled Scrum: Integrating Mega Framework and DAD
PPTX
Agile_Software_Development_Model_aa1.pptx
PPTX
Module-02.pptx
PDF
Unit_1_Agile development.pdf about the script of software
PPTX
Agile Project Management
PPTX
Agile and Scrum Workshop
PPTX
Agile Software Design and Development Process.pptx
PDF
Agile Methodology - Software Engineering
PPTX
Agile frameworks
PPT
Agile Software Development in Bachelor of Computer Applications.ppt
PDF
A CRITICAL ANALYSIS AND COMPARISON OF AGILE WITH TRADITIONAL SOFTWARE DEVELOP...
PPTX
agile modeling in project management.pptx
Flavours of agile software engineering
Flavours of agile software engineering
Agile Development unleashed
Agile Development Overview
Chapter 5
What are the Tools & Techniques in Agile Project Management?
Software Engineering (An Agile View of Process)
My Scaled Scrum: Integrating Mega Framework and DAD
Agile_Software_Development_Model_aa1.pptx
Module-02.pptx
Unit_1_Agile development.pdf about the script of software
Agile Project Management
Agile and Scrum Workshop
Agile Software Design and Development Process.pptx
Agile Methodology - Software Engineering
Agile frameworks
Agile Software Development in Bachelor of Computer Applications.ppt
A CRITICAL ANALYSIS AND COMPARISON OF AGILE WITH TRADITIONAL SOFTWARE DEVELOP...
agile modeling in project management.pptx
Ad

Recently uploaded (20)

DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
A Presentation on Artificial Intelligence
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
Cloud computing and distributed systems.
PDF
Machine learning based COVID-19 study performance prediction
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
KodekX | Application Modernization Development
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Approach and Philosophy of On baking technology
PDF
Network Security Unit 5.pdf for BCA BBA.
The AUB Centre for AI in Media Proposal.docx
Advanced methodologies resolving dimensionality complications for autism neur...
Chapter 3 Spatial Domain Image Processing.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Understanding_Digital_Forensics_Presentation.pptx
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
A Presentation on Artificial Intelligence
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Review of recent advances in non-invasive hemoglobin estimation
Mobile App Security Testing_ A Comprehensive Guide.pdf
Cloud computing and distributed systems.
Machine learning based COVID-19 study performance prediction
Diabetes mellitus diagnosis method based random forest with bat algorithm
KodekX | Application Modernization Development
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Encapsulation_ Review paper, used for researhc scholars
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Approach and Philosophy of On baking technology
Network Security Unit 5.pdf for BCA BBA.
Ad

Software Dev Techniques.pdf

  • 1. SOFTWARE DEVELOPMENT TECHNIQUES– ICE313 300 LEVEL FIRST SEMESTER MODULE ONE Mrs. Loreta Jugu (katokjugu@gmail.com) AIRFORCE INSTITUTE OFTECHNOLOGY, KADUNA FACULTY OF GROUND AND COMMUNICATION ENGINEERING DEPARTMENT OF INFORMATION AND COMMUNICATION TECHNOLOGY
  • 2. • What is an Agile Framework? • Agile represents an overarching philosophy for software development, emphasizing the value of iterating quickly and often to satisfy customers. • Therefore, an agile framework can be defined as a specific software-development approach based on the agile philosophy articulated in the Agile Manifesto. • The Agile Manifesto is a brief document built on 4 values and 12 principles for agile software development. Agile Framework katokjugu@gmail.com
  • 4. • What is Scrum Agile Framework? • Scrum is an approach to project management.Typically the Scrum agile framework favours moving projects forward via short-term blocks of work called sprints, which are usually confined to two-week intervals. • Teams working with this framework are self-organizing and not top-down or hierarchical in nature. Scrum-specific roles include the ScrumMaster, essentially a team guide, and the Product Owner, who represents the business and customers. SCRUM katokjugu@gmail.com
  • 5. • Product Backlog (PB):The product backlog is a list that collects everything the product needs to satisfy the potential customers. It is prepared by the product owner and the functions are prioritized according to what is more and less important for the business.The goal is for the product owner to answer the question “What should be done”. • Sprint Backlog (SB): It is a subset of items of the product backlog, which are selected by the team to perform during the sprint on which they are going to work.The team establishes the duration of each Sprint. Usually the sprint backlog, is displayed on physical boards called as Scrum board – that makes the development process visible to everyone who enters the development area. • Increment:The Increment is the sum of all the tasks, use cases, user stories, product backlogs and any element that was developed during the sprint and that will be made available to the end user in the form of Software. SCRUM Artifacts katokjugu@gmail.com
  • 7. STRENGTHS AND WEAKNESS OF SCRUM AGILE FRAMEWORK • Strengths include: • It is easy to understand • Allows for rapid feedback • Allows issues to be brought up through daily meetings • Drawbacks include: • Strictness (e.g., teams may not hold more than one sprint-review meeting during a sprint.And, there are limitations on the number of people allowed on the team) • Can lead to scope creep • Some argue that the framework can place a high degree of pressure on the team due to the frequent, short deadlines. katokjugu@gmail.com
  • 8. • The Dynamic Systems Development Method (DSDM) is an agile framework that addresses the entire project lifecycle and its impact on the business. • DSDM is an iterative approach to software development, and this framework explicitly states “any project must be aligned to clearly defined strategic goals and focus upon early delivery of real benefits to the business.” • The framework is built on four principles: • feasibility and business study • functional model and prototype iteration • design and build iteration • and implementation. Dynamic Systems Development Method (DSDM) katokjugu@gmail.com
  • 9. • DSDM’s strengths include: • Basic product functionality can be delivered rapidly • Developers have easy access to end-users • Projects are reliably completed on time • DSDM’s weaknesses include: • Can represent a dramatic and disruptive change in company culture • Costly to implement • Not ideal for small organizations What are the Strengths and Weakness of DSDM? katokjugu@gmail.com
  • 10. • Feature Driven Development (FDD) is an agile framework that, as its name suggests, organizes software development around making progress on features. • Features in the FDD context, though, are not necessarily product features in the commonly understood sense.They are, rather, more akin to user stories in Scrum. • In other words,“complete the login process” might be considered a feature in the Feature Driven Development (FDD) methodology. Feature Driven Development (FDD) katokjugu@gmail.com
  • 11. • FDD was designed to follow a five-step development process, built largely around discrete “feature” projects.That project lifecycle looks like this: • Develop an overall model • Build a features list • Plan by feature • Design by feature • Build by feature Feature Driven Development (FDD) katokjugu@gmail.com
  • 12. • FDD’s strengths include: • Simple five-step process allows for more rapid development • Allows larger teams to move products forward with continuous success • Leverages pre-defined development standards, so teams are able to move quickly • FDD’s weaknesses include: • Does not work efficiently for smaller projects • Less written documentation, which can lead to confusion • Highly dependent on lead developers or programmers Strengths and Weakness of Feature Driven Development katokjugu@gmail.com
  • 13. • What is Lean Software Development (LSD)? • Lean Software Development (LSD) is an agile framework based on optimizing development time and resources, eliminating waste, and ultimately delivering only what the product needs. • The Lean approach is also often referred to as the MinimumViable Product (MVP) strategy, in which a team releases a bare-minimum version of its product to the market, learns from users what they like, don’t like and want to be added, and then iterates based on this feedback. Lean Software Development katokjugu@gmail.com
  • 15. • LSD’s strengths include: • Streamlined approach allows more functionality to be delivered in less time • Eliminates unnecessary activity, and as a result, can reduce costs • Empowers the development team to make decisions, which can also boost morale • LSD’s weaknesses include: • Heavily depends on the team involved, making it not as scalable as other frameworks • Depends on strong documentation, and failure to do so can result in development mistakes What are the Strengths and Weakness of Lean Software Development? katokjugu@gmail.com
  • 16. • LSD’s strengths include: • Streamlined approach allows more functionality to be delivered in less time • Eliminates unnecessary activity, and as a result, can reduce costs • Empowers the development team to make decisions, which can also boost morale • LSD’s weaknesses include: • Heavily depends on the team involved, making it not as scalable as other frameworks • Depends on strong documentation, and failure to do so can result in development mistakes What are the Strengths and Weakness of Lean Software Development? katokjugu@gmail.com
  • 17. • What is the Crystal Method? • Crystal is an agile framework focusing on individuals and their interactions, as opposed to processes and tools. In other words, this framework is a direct outgrowth of one of the core values articulated in the Agile Manifesto. • The Crystal agile framework is built on two core beliefs: • Teams can find ways on their own to improve and optimize their workflows • Every project is unique and always changing, which is why that project’s team is best suited to determine how it will tackle the work Crystal Agile Framework katokjugu@gmail.com
  • 18. • These are categorized by colour, according to the number of people in the project; • Crystal clear - Teams with less than 8 people • Crystal yellow - Teams with between 10 and 20 people • Crystal orange - Teams with between 20-50 people • Crystal red • - Teams with between 50-100 people Crystal Agile Framework katokjugu@gmail.com
  • 19. • Crystal’s strengths include: • Allows teams to work the way they deem most effective • Facilitates direct team communication, transparency and accountability • The adaptive approach lets teams respond well to changing requirements • Crystal’s weaknesses include: • Lack of pre-defined plans can lead to scope creep • Lack of documentation can lead to confusion What are the Strengths and Weakness of Crystal? katokjugu@gmail.com
  • 20. • Rapid Application Development is an agile framework focused primarily on rapid prototyping of software products, frequently iterating based on feedback, and continuously releasing updated versions of those products to the market. • The RAD model is comprised of four phases: • Phase 1: Requirements planning • Phase 2: User design • Phase 3: Rapid construction • Phase 4: Cutover Rapid Application Development katokjugu@gmail.com
  • 21. • RAD’s strengths include: • Takes advantage of the nature of software, which allows for rapid and low-cost iteration, to allows organizations to quickly and continuously improve their products • Allows teams to break down large projects into smaller, discrete, actionable tasks • Users can receive working products in less time • RAD’s weaknesses include: • Requires highly skilled development team and product designers • Requires user involvement throughout each stage of the project • Does not work as well with large-scale projects What are the Strengths and Weakness of RAD? katokjugu@gmail.com
  • 22. • What is eXtreme Programming? • eXtreme Programming (XP) is an agile framework that emphasizes both the broader philosophy of agile—to produce higher-quality software to please customers—and the more specific goal of making life better for the engineers developing it. • The main characteristics of XP include dynamically changing software requirements; using a small, collocated extended development team; and leveraging technology that facilitates automated unit and functional tests. eXtreme Programming (XP) katokjugu@gmail.com
  • 23. • XP’s strengths include: • Can help cut costs for software development organizations • Team members are accountable to the team for their work • The emphasis on quality-of-life issues helps boost employee morale and retention • XP’s weaknesses include: • Does not emphasize code quality, which can lead to defects in early iterations • Stresses code over product design • It is not ideal if developers are not in the same location Strengths and Weaknesses of eXtreme Programming katokjugu@gmail.com
  • 24. • What Is RUP? • Rational Unified Process (RUP) is an agile software development methodology. • RUP splits the project life cycle into four phases. During each of the phases, all six core development disciplines take place: business modelling, requirements, analysis and design, implementation, testing, and deployment. However, certain processes are more important and take up more time during every stage. For example, business modelling mostly takes place during the early phases, inception and elaboration. Each of four phases has the main objective, which has to be completed before the project can progress to the next phase. • The main goal of RUP is to create high quality software with a predictable budget and time frame. Each of the life cycle phases can be repeated, if needed, until the main objectives are met. Once the transition stage is completed successfully, the project is finished. Rational Unified Process (RUP) katokjugu@gmail.com
  • 25. • RUP’s strengths include: • It allows you to deal with changing requirements regardless of whether they are coming from the customer or from the project itself. • It emphasizes the need for accurate documentation. • It forces integration to happen throughout the software development, more specifically in the construction phase. • RUP’s Weakness include: • It mostly relies on the ability of experts and professionals to assign the activities to individuals who should then produce pre-planned results in the form of artefacts. • The integration in development process can also have an adverse impact on some more fundamental activities during the stages of testing • Although RUP has delivered excellent results, especially in software development, it is a rather complex method which makes its implementation challenging, particularly for smaller businesses, teams or projects. Strengths and Weaknesses of Rational Unified Process (RUP) katokjugu@gmail.com
  • 26. • RUP Example • Pear, Inc. is a software development company, specializing in mobile phone applications.They are currently working on a new productivity enhancing application, called Get A Kitten, rewarding you with a cute picture of a kitten for every completed task from your to-do list. Pear, Inc. uses RUP as their development framework. Let's look at activities that Pear, Inc. team must complete during each of the phases. • 1. Inception During the inception phase, the initial evaluation is carried out to scope the system and determine whether the project is worth pursuing.A business case is created by Pear, Inc., detailing the pricing model for Get A Kitten app and estimating development costs and schedule.An agreement on project scope is reached with all stakeholders. Some of the features may be de-scoped to reduce the development time and costs. For example, a to-do list originally supported three different task types, but will now support only one task time. • 2. Elaboration During the elaboration, more detailed evaluation is carried out, a development plan is created, and key risks are mitigated.The Pear, Inc. team writes 80% of all use cases, creates the system architecture, and a development plan. Rational Unified Process (RUP) katokjugu@gmail.com
  • 27. • 2. Elaboration During the elaboration, more detailed evaluation is carried out, a development plan is created, and key risks are mitigated. The Pear, Inc. team writes 80% of all use cases, creates the system architecture, and a development plan. • 3. Construction During construction, the software system is created; the code is written and tested.A dedicated team of Pear, Inc. software developers is working on a project.A team of QA is testing the resulting software.The key output of this phase is operational software. • 4.Transition During transition phase, the software is released to the end user. Pear, Inc. uploads Get A Kitten app to AppStore. Once the application is accepted, the project is formally closed. Rational Unified Process (RUP) katokjugu@gmail.com
  • 28. • Many factors may influence which framework you choose to work with. Such as: • Company size • Team structure • Available resources • Needs of stakeholders • Structure/size of your product portfolio SUMMERY: katokjugu@gmail.com