SlideShare uma empresa Scribd logo
1 de 39
Existing Agile Methods-
Feature Driven Development (FDD)
• Feature Driven Development (FDD) is an agile
and adaptive approach for developing systems.
• The FDD approach does not cover the entire
software development process, but rather
focuses on the design and building phases.
Feature Benefits
Feature Benefits (Cont.)
FDD Process
• FDD consists of five sequential processes and
provides the methods, techniques and guidelines
needed by the project stakeholders to deliver the
system.
• Further more, FDD includes the roles, artifacts, goals
and timelines needed in a project.
Process
Develop an
Overall
Model
Build a
Features
List
Plan by
Feature
Design by
Feature
Build by
Feature
Develop an Overall Model
• When the development of an overall model begins,
the domain experts are already aware of the scope,
context and requirements of the system to be built.
• Documented requirements such as use cases or
functional specifications are likely to exist at this
stage.
• The domain experts present a so called
“Walkthrough” in which the team members and the
chief architect are informed of the high level
description of the system.
• The development team then discusses and decides
upon the appropriate object models for each of the
domain areas.
• Simultaneously, an overall model shape is
constructed for the system.
Build a Featured List
• The walkthroughs, object models and existing
requirement documentation give a good basis for
building a comprehensive features list for the system
being developed.
• In the list, the development team presents each of
the client valued functions included in the system.
• The major feature sets are further divided into
feature sets. These represents different activities
within specific domain areas.
• The feature list is reviewed by the users and
sponsors of the system for their validity and
completeness.
Plan by Feature
• Planning by feature includes the creation of a high-
level plan, in which the feature sets are sequenced
according to their priority and dependencies and
assigned to Chief Programmers.
• Furthermore, the classes identified in the
development of an overall model process are
assigned to individual developers, i.e, class owners.
Design by Feature and Build by
Feature
• A small group of features is selected from the feature
set (s) and feature teams needed for developing the
selected features are formed by the class owners.
• The design by feature and build by feature processes
are iterative procedures, during which the selected
features are produced.
• One iteration should take from a few days to a
maximum of two weeks.
• There can be multiple feature teams concurrently
designing and building their own set of features.
• This iterative process include such tasks as design
inspection, coding, unit testing, integration and code
inspection.
• After a successful iteration, the completed
features are promoted to the main build while
the iteration of designing and building begins
with a new group of features taken from the
feature set.
Roles and Responsibilities
• The FDD classifies its roles into three categories:
– Key Roles (6)
– Supporting Roles (5)
– Additional Roles (3)
• The Six key roles in a FDD project are
– Project Manager
– Chief Architect
– Development Manager
– Chief Programmer
– Class Owner &
– Domain Expert.
• The five supporting roles are
– Release Manager
– Language Lawyer/Language Guru
– Build Engineer
– Toolsmith &
– System Administrator
• The three further roles that are needed in any
project are
– Testers
– Deployers &
– Technical Writers
• One team member can play multiple roles and a
single role can be shared by several people.
Project Manager
• Project Manager is the administrative and financial
leader of the project.
• One of his tasks is to protect the project team from
outside distractions and to enable the team to work
along with providing it with appropriate working
conditions.
Chief Architect
• The Chief Designer is responsible for the overall
design of the system and running the workshop
design sessions held with the team.
• The Chief Architect also makes the final decisions on
all design issues.
Development Manager
• The Development Manager leads daily
development activities and solves any conflicts
that may occur within the team.
• In addition, this role includes the responsibility
of solving resourcing problems.
Chief Programmer
• The Chief Programmer is an experienced developer,
who participates in the requirements analysis and
design of the projects.
• The Chief Programmer is responsible for leading
small teams in the analysis, design and
development of new features.
Class Owner
• Class Owners work under the guidance of the Chief
Programmer in the tasks of designing, coding,
testing, and documenting.
• He is responsible for the development of the class
he has been assigned to be the owner of.
Domain Expert
• The Domain Expert may be a user, a client, a
sponsor, a business analyst or a mixture of these.
• His task is to possess the knowledge of how the
different requirements for the system under
development should perform.
• Domain Experts pass this knowledge to the
developers in order to ensure that the developers
deliver a competent system.
Domain Manager
• Domain Manager leads the domain experts and
resolves their differences of opinion concerning
the requirements for the system.
Release Manager
• Release Manager controls the progress of the
process by reviewing the progress reports of Chief
Programmers and holding short progress meetings
with them.
• He reports the progress to the Project Manager.
Language Lawyer/Language Guru
• A Team Member responsible for possessing a
thorough knowledge of, for example, a specific
programming language or technology.
• This role is particularly important when the project
team is dealing with some new technology.
Build Engineer
• A person responsible for setting up, maintaining and
running the build process, including the tasks of
managing the version control system and publishing
documentation.
Toolsmith
• Toolsmith is a role for building small tools for
development, test and data conversion teams in the
project.
• Also a Toolsmith may be working with setting up
and maintaining databases and Websites for project
specific purposes.
System Administrator
• The task of a system administrator is to configure, to
manage and to troubleshoot the servers, network of
workstations and development and testing
environments used by the project team.
• The system administrator may be involved in the
productionizing of the system being developed.
Tester
• Testers verify that the system being produced
will meet the requirements of the customer.
• May be an independent team or a part of the
project team.
Deployer
• Deployers’ work is concerned with converting
existing data to the format required by the new
system and participating in the deployment of new
releases.
• May be an independent team or a part of the project
team.
Technical Writer
• The user documentation is prepared by technical
writers, who may form an independent team or be a
part of the project team.
Practices
• Domain Object Modeling:-
– Exploration and explanation of the domain of the
problem. Results in a framework where the
features are added
• Developing by Feature:-
– Developing and tracking the progress through a
list of small functionally decomposed and client-
valued functions.
• Individual Class Ownership:-
– Each class has a single person nominated to be the one
responsible for the consistency, performance and
conceptual integrity of the class.
• Feature Teams:-
– Refers to small, dynamically formed teams
• Inspection:-
– Refers to the use of the best-known defect-detection
mechanisms.
• Regular Builds:-
– Refers to ensuring that there is always a running,
demonstrable system available. Regular builds form the
baseline to which new features are added.
• Configuration Management:-
– Enables the identification and historical tracking of the
latest versions of each completed source code file.
• Progress Reporting:-
– Progress is reported based on complete work to all
necessary organizational levels.

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Process model in SE
Process model in SEProcess model in SE
Process model in SE
 
Feature driven development
Feature driven developmentFeature driven development
Feature driven development
 
Feature Driven Development
Feature Driven DevelopmentFeature Driven Development
Feature Driven Development
 
Software engineering lecture notes
Software engineering lecture notesSoftware engineering lecture notes
Software engineering lecture notes
 
Beit 381 se lec 3 - 46 - 12 feb14 - sd needs teams to develop intro
Beit 381 se lec 3 - 46  - 12 feb14 - sd needs teams to develop introBeit 381 se lec 3 - 46  - 12 feb14 - sd needs teams to develop intro
Beit 381 se lec 3 - 46 - 12 feb14 - sd needs teams to develop intro
 
Software management framework
Software management frameworkSoftware management framework
Software management framework
 
"X" Driven-Development Methodologies
"X" Driven-Development Methodologies"X" Driven-Development Methodologies
"X" Driven-Development Methodologies
 
Unified Process
Unified ProcessUnified Process
Unified Process
 
The unified process
The unified processThe unified process
The unified process
 
Software Engineering (Process Models)
Software Engineering (Process Models)Software Engineering (Process Models)
Software Engineering (Process Models)
 
المحاضرة الرابعة والخامسة
المحاضرة الرابعة والخامسةالمحاضرة الرابعة والخامسة
المحاضرة الرابعة والخامسة
 
Software Processes
Software Processes Software Processes
Software Processes
 
Chapter 2 Time boxing & agile models
Chapter 2   Time boxing & agile modelsChapter 2   Time boxing & agile models
Chapter 2 Time boxing & agile models
 
Software Engineering (Software Process: A Generic View)
Software Engineering (Software Process: A Generic View)Software Engineering (Software Process: A Generic View)
Software Engineering (Software Process: A Generic View)
 
A generic view of software engineering
A generic view of software engineeringA generic view of software engineering
A generic view of software engineering
 
Advanced Web Development in PHP - Understanding Project Development Methodolo...
Advanced Web Development in PHP - Understanding Project Development Methodolo...Advanced Web Development in PHP - Understanding Project Development Methodolo...
Advanced Web Development in PHP - Understanding Project Development Methodolo...
 
Software Development
Software DevelopmentSoftware Development
Software Development
 
Software process life cycles
Software process life cyclesSoftware process life cycles
Software process life cycles
 
Yogesh_Fegade_Profile
Yogesh_Fegade_ProfileYogesh_Fegade_Profile
Yogesh_Fegade_Profile
 
WORKFLOW OF THE PROCESS IN SPM
 WORKFLOW OF THE PROCESS IN SPM WORKFLOW OF THE PROCESS IN SPM
WORKFLOW OF THE PROCESS IN SPM
 

Destaque (11)

Ch04
Ch04Ch04
Ch04
 
Ch07
Ch07Ch07
Ch07
 
Lecture 2
Lecture 2 Lecture 2
Lecture 2
 
Project / Program / Portfolio Management and Processes Groups
Project / Program / Portfolio Management and Processes GroupsProject / Program / Portfolio Management and Processes Groups
Project / Program / Portfolio Management and Processes Groups
 
Project Scope Management
Project Scope ManagementProject Scope Management
Project Scope Management
 
Software Project Managment
Software Project ManagmentSoftware Project Managment
Software Project Managment
 
Ch06
Ch06Ch06
Ch06
 
Project Management Course slide 1
Project Management Course slide 1Project Management Course slide 1
Project Management Course slide 1
 
Project Management slide 2
Project Management slide 2Project Management slide 2
Project Management slide 2
 
Agile Method - Lec 1-2-3
Agile Method - Lec 1-2-3Agile Method - Lec 1-2-3
Agile Method - Lec 1-2-3
 
Project Time Management
Project Time Management Project Time Management
Project Time Management
 

Semelhante a Lecture 5

Software vjhghjjkhjkkkghhjhEngineering.pdf
Software vjhghjjkhjkkkghhjhEngineering.pdfSoftware vjhghjjkhjkkkghhjhEngineering.pdf
Software vjhghjjkhjkkkghhjhEngineering.pdf
avishekpradhan24
 
Generic Software Process Models
Generic Software Process ModelsGeneric Software Process Models
Generic Software Process Models
Education Front
 
2 approaches to system development
2 approaches to system development2 approaches to system development
2 approaches to system development
cymark09
 

Semelhante a Lecture 5 (20)

Software vjhghjjkhjkkkghhjhEngineering.pdf
Software vjhghjjkhjkkkghhjhEngineering.pdfSoftware vjhghjjkhjkkkghhjhEngineering.pdf
Software vjhghjjkhjkkkghhjhEngineering.pdf
 
Lecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnz
Lecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnzLecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnz
Lecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnz
 
Software Process Model (System Development Life Cycle)
Software Process Model (System Development Life Cycle)Software Process Model (System Development Life Cycle)
Software Process Model (System Development Life Cycle)
 
Seminar on Project Management by Rj
Seminar on Project Management by RjSeminar on Project Management by Rj
Seminar on Project Management by Rj
 
Introduction To Software Concepts Unit 1 & 2
Introduction To Software Concepts Unit 1 & 2Introduction To Software Concepts Unit 1 & 2
Introduction To Software Concepts Unit 1 & 2
 
Software Design Concepts
Software Design ConceptsSoftware Design Concepts
Software Design Concepts
 
Introduction to Software engineering ch03
Introduction to Software engineering ch03Introduction to Software engineering ch03
Introduction to Software engineering ch03
 
Project Life Cycle and Effort Estimation
Project Life Cycle andEffort EstimationProject Life Cycle andEffort Estimation
Project Life Cycle and Effort Estimation
 
Intoduction to software engineering part 2
Intoduction to software engineering part 2Intoduction to software engineering part 2
Intoduction to software engineering part 2
 
Generic Software Process Models
Generic Software Process ModelsGeneric Software Process Models
Generic Software Process Models
 
S.E Lec #1.pptx
S.E Lec #1.pptxS.E Lec #1.pptx
S.E Lec #1.pptx
 
2 approaches to system development
2 approaches to system development2 approaches to system development
2 approaches to system development
 
Software process models
Software process modelsSoftware process models
Software process models
 
sdlc.pptx
sdlc.pptxsdlc.pptx
sdlc.pptx
 
system development life cycle
system development life cyclesystem development life cycle
system development life cycle
 
SE Unit-1.pptx
SE Unit-1.pptxSE Unit-1.pptx
SE Unit-1.pptx
 
Manual Software testing - software development life cycle
Manual Software testing - software development life cycleManual Software testing - software development life cycle
Manual Software testing - software development life cycle
 
Lecture3.se.pptx
Lecture3.se.pptxLecture3.se.pptx
Lecture3.se.pptx
 
ISBB_Chapter10.pptx
ISBB_Chapter10.pptxISBB_Chapter10.pptx
ISBB_Chapter10.pptx
 
Introduction Software engineering
Introduction   Software engineeringIntroduction   Software engineering
Introduction Software engineering
 

Mais de Ahmed Alageed (7)

Lecture4
Lecture4Lecture4
Lecture4
 
Lecture 4
Lecture 4Lecture 4
Lecture 4
 
Requirement Engineering Lec.1 & 2 & 3
Requirement Engineering Lec.1 & 2 & 3Requirement Engineering Lec.1 & 2 & 3
Requirement Engineering Lec.1 & 2 & 3
 
Ch05
Ch05Ch05
Ch05
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
Lecture 3
Lecture 3Lecture 3
Lecture 3
 
1 se-introduction
1 se-introduction1 se-introduction
1 se-introduction
 

Último

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Último (20)

Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 

Lecture 5

  • 1. Existing Agile Methods- Feature Driven Development (FDD)
  • 2. • Feature Driven Development (FDD) is an agile and adaptive approach for developing systems. • The FDD approach does not cover the entire software development process, but rather focuses on the design and building phases.
  • 5. FDD Process • FDD consists of five sequential processes and provides the methods, techniques and guidelines needed by the project stakeholders to deliver the system. • Further more, FDD includes the roles, artifacts, goals and timelines needed in a project.
  • 6. Process Develop an Overall Model Build a Features List Plan by Feature Design by Feature Build by Feature
  • 7. Develop an Overall Model • When the development of an overall model begins, the domain experts are already aware of the scope, context and requirements of the system to be built. • Documented requirements such as use cases or functional specifications are likely to exist at this stage.
  • 8. • The domain experts present a so called “Walkthrough” in which the team members and the chief architect are informed of the high level description of the system. • The development team then discusses and decides upon the appropriate object models for each of the domain areas. • Simultaneously, an overall model shape is constructed for the system.
  • 9. Build a Featured List • The walkthroughs, object models and existing requirement documentation give a good basis for building a comprehensive features list for the system being developed. • In the list, the development team presents each of the client valued functions included in the system.
  • 10. • The major feature sets are further divided into feature sets. These represents different activities within specific domain areas. • The feature list is reviewed by the users and sponsors of the system for their validity and completeness.
  • 11. Plan by Feature • Planning by feature includes the creation of a high- level plan, in which the feature sets are sequenced according to their priority and dependencies and assigned to Chief Programmers. • Furthermore, the classes identified in the development of an overall model process are assigned to individual developers, i.e, class owners.
  • 12. Design by Feature and Build by Feature • A small group of features is selected from the feature set (s) and feature teams needed for developing the selected features are formed by the class owners. • The design by feature and build by feature processes are iterative procedures, during which the selected features are produced.
  • 13. • One iteration should take from a few days to a maximum of two weeks. • There can be multiple feature teams concurrently designing and building their own set of features. • This iterative process include such tasks as design inspection, coding, unit testing, integration and code inspection.
  • 14. • After a successful iteration, the completed features are promoted to the main build while the iteration of designing and building begins with a new group of features taken from the feature set.
  • 15.
  • 16. Roles and Responsibilities • The FDD classifies its roles into three categories: – Key Roles (6) – Supporting Roles (5) – Additional Roles (3)
  • 17. • The Six key roles in a FDD project are – Project Manager – Chief Architect – Development Manager – Chief Programmer – Class Owner & – Domain Expert.
  • 18. • The five supporting roles are – Release Manager – Language Lawyer/Language Guru – Build Engineer – Toolsmith & – System Administrator
  • 19. • The three further roles that are needed in any project are – Testers – Deployers & – Technical Writers
  • 20. • One team member can play multiple roles and a single role can be shared by several people.
  • 21. Project Manager • Project Manager is the administrative and financial leader of the project. • One of his tasks is to protect the project team from outside distractions and to enable the team to work along with providing it with appropriate working conditions.
  • 22. Chief Architect • The Chief Designer is responsible for the overall design of the system and running the workshop design sessions held with the team. • The Chief Architect also makes the final decisions on all design issues.
  • 23. Development Manager • The Development Manager leads daily development activities and solves any conflicts that may occur within the team. • In addition, this role includes the responsibility of solving resourcing problems.
  • 24. Chief Programmer • The Chief Programmer is an experienced developer, who participates in the requirements analysis and design of the projects. • The Chief Programmer is responsible for leading small teams in the analysis, design and development of new features.
  • 25. Class Owner • Class Owners work under the guidance of the Chief Programmer in the tasks of designing, coding, testing, and documenting. • He is responsible for the development of the class he has been assigned to be the owner of.
  • 26. Domain Expert • The Domain Expert may be a user, a client, a sponsor, a business analyst or a mixture of these. • His task is to possess the knowledge of how the different requirements for the system under development should perform. • Domain Experts pass this knowledge to the developers in order to ensure that the developers deliver a competent system.
  • 27. Domain Manager • Domain Manager leads the domain experts and resolves their differences of opinion concerning the requirements for the system.
  • 28. Release Manager • Release Manager controls the progress of the process by reviewing the progress reports of Chief Programmers and holding short progress meetings with them. • He reports the progress to the Project Manager.
  • 29. Language Lawyer/Language Guru • A Team Member responsible for possessing a thorough knowledge of, for example, a specific programming language or technology. • This role is particularly important when the project team is dealing with some new technology.
  • 30. Build Engineer • A person responsible for setting up, maintaining and running the build process, including the tasks of managing the version control system and publishing documentation.
  • 31. Toolsmith • Toolsmith is a role for building small tools for development, test and data conversion teams in the project. • Also a Toolsmith may be working with setting up and maintaining databases and Websites for project specific purposes.
  • 32. System Administrator • The task of a system administrator is to configure, to manage and to troubleshoot the servers, network of workstations and development and testing environments used by the project team. • The system administrator may be involved in the productionizing of the system being developed.
  • 33. Tester • Testers verify that the system being produced will meet the requirements of the customer. • May be an independent team or a part of the project team.
  • 34. Deployer • Deployers’ work is concerned with converting existing data to the format required by the new system and participating in the deployment of new releases. • May be an independent team or a part of the project team.
  • 35. Technical Writer • The user documentation is prepared by technical writers, who may form an independent team or be a part of the project team.
  • 36. Practices • Domain Object Modeling:- – Exploration and explanation of the domain of the problem. Results in a framework where the features are added • Developing by Feature:- – Developing and tracking the progress through a list of small functionally decomposed and client- valued functions.
  • 37. • Individual Class Ownership:- – Each class has a single person nominated to be the one responsible for the consistency, performance and conceptual integrity of the class. • Feature Teams:- – Refers to small, dynamically formed teams
  • 38. • Inspection:- – Refers to the use of the best-known defect-detection mechanisms. • Regular Builds:- – Refers to ensuring that there is always a running, demonstrable system available. Regular builds form the baseline to which new features are added.
  • 39. • Configuration Management:- – Enables the identification and historical tracking of the latest versions of each completed source code file. • Progress Reporting:- – Progress is reported based on complete work to all necessary organizational levels.