SlideShare uma empresa Scribd logo
1 de 48
Baixar para ler offline
Building Sustainable
Software
Muhammad Shehata
SWE @robustastudio
● Programming Effort vs. Software
Engineering
● Waterfall Methodology
● Agile Methodology
● Practices and Tools in SWE
○ Version Control Systems
○ CI/CD
○ Code Review
○ Testing
● References and Resources
Today’s Agenda
Programming Effort VS. Software
Engineering
● Programming is concerned only about
writing functional code.
● The result is usually a prototype not a
full product.
● We don’t give care much thought about
documentation.
● The team size is limited in number
Programming Effort VS. Software Engineering
The application of a systematic,
disciplined, quantifiable
approach to the development,
operation, and maintenance of
software; that is, the application
of engineering to software.
● Time
● Scale
● Complexity
Programming Effort VS. Software
Engineering
● What is the expected lifespan
of your code?
● The shorter the lifespan of the
code the less it’s affected by
time.
Programming Effort VS. Software Engineering
● How many people are involved?
What role do they play in the
development and maintenance?
● As we scale, complexity emerge in
team organization, system
components and policies and
practices.
Programming Effort VS. Software Engineering
Programming Effort VS. Software Engineering
● In SWE we're always forced to
evaluate the trade-offs between
several paths forward.
● The stakes are sometimes high,
and often with imperfect value
metrics
Programming Effort VS. Software Engineering
● Different methods for different
domains
Project Management
Methodologies
Project Management Methodologies
● Waterfall is a linear sequential model.
● Development process is divided into
distinct phases.
● Each phase is well documented.
Project Management Methodologies
Requirements
Design
Implementation
Verification
Deployment
Maintenance
● Requirements gathering and analysis.
● System Design.
● Implementation.
● Testing and verification.
● Deployment.
● Maintenance.
Project Management Methodologies
● Easy to understand and use.
● Each phase has specific deliverables.
● Phases do not overlap.
Project Management Methodologies
● No room for change.
● Working software is produced late in
the process.
● High amount of risk and uncertainty.
Requirements
Design
Implementation
Verification
Deployment
Maintenance
Project Management Methodologies
● When the requirements are well
defined, clear and fixe.
● The project is short.
● When time and money are secondary
considerations.
● When the technology is understood
In software, we rarely have meaningful
requirements. Even if we do, the only
measure of success that matters is
whether our solution solves the
customer’s shifting idea of what their
problem is.
Project Management Methodologies
● Software by nature is not tangible.
● Different Background.
● Time:
○ Unknown requirements.
○ Changes in the industry.
○ New competitors.
○ New regulations.
○ Different decision makers.
Project Management Methodologies
● Individuals and interactions over
processes and tools.
● Working software over
comprehensive documentation.
● Customer collaboration over
contract negotiation.
● Responding to change over
following a plan.
● Our highest priority is to satisfy the
customer through early and
continuous delivery of valuable
software.
● Welcome changing requirements,
even late in development. Agile
processes harness change for the
customer's competitive advantage.
Project Management Methodologies
● Deliver working software frequently,
from a couple of weeks to a couple
of months, with a preference to the
shorter timescale.
● Business people and developers
must work together daily
throughout the project.
Project Management Methodologies
● Build projects around motivated
individuals. Give them the
environment and support they
need, and trust them to get the job
done.
● The most efficient and effective
method of conveying information to
and within a development team is
face-to-face conversation.
Project Management Methodologies
● Working software is the primary
measure of progress.
● Agile processes promote
sustainable development. The
sponsors, developers, and users
should be able to maintain a
constant pace indefinitely.
Project Management Methodologies
● Continuous attention to technical
excellence and good design
enhances agility.
● Simplicity--the art of maximizing the
amount of work not done--is
essential.
Project Management Methodologies
● The best architectures,
requirements, and designs emerge
from self-organizing teams.
● At regular intervals, the team
reflects on how to become more
effective, then tunes and adjusts its
behavior accordingly.
Project Management Methodologies
Project Management Methodologies
● Roles
● Artifacts
● Events
● Development team
● Product owner
● Stakeholders
● Scrum Master
Project Management Methodologies
Project Management Methodologies
● Product backlog
● Sprint backlog
● Product increment
Project Management Methodologies
● Sprint
● Sprint Planning
● Daily Scrum
● Sprint Review
● Sprint Retrospective
Grand principles that generate no
action are mere vapor. Conversely,
specific practices in the
absence of guiding principles are
often inappropriately used.
● Commitment
● Focus
● Openness
● Respect
● Courage
Project Management Methodologies
Practices and Tools
Practices and Tools
● Enhances development speed.
● Reduce errors and conflicts.
● Team members can contribute
from anywhere.
● Helps in recovery in case of any
disaster.
● Tracks who, what, when, why
changes have been made.
Practices and Tools
● Branching and merging.
● Committing.
● Diffing (reviewing differences).
● Conflicts.
● Continuous Integration (CI): a set of
scripts executed every time a
change is made.
● Continuous Delivery (CD): the app is
also deployed continuously.
However, you trigger the
deployments manually.
● Continuous Deployment: similar to
CD. The difference is that changes
are deployed automatically
Practices and Tools
● Does this code change do what it
is supposed to do?
● Can this solution be optimized?
● Can a library, API or framework be
used or un-necessarily used?
● Does the change follow best
practices and architecture?
● Is there any logical errors?
Practices and Tools
● Written in the programming
language of the system.
● Specifies the system at the
lowest level.
● Written before production code
(TDD).
● Executed as part of CI.
Practices and Tools
System Tests
Exploratory
Component Tests
Integration Tests
Unit Tests
Practices and Tools
● Written against individual component of
the system.
● Each component encapsulate business
rule(s).
● It passes input data to the component and
gathers the output. other components are
decoupled by mocking.
● IT covers the happy-path situation and
obvious corner cases.
System Tests
Exploratory
Component Tests
Integration Tests
Unit Tests
Practices and Tools
● These tests are for larger systems that have
many components.
● Specifies how well the components
communicate with each other.
● Any other components are decoupled
● They don not test business rules.
● They include performance and stress
testing.
● Executed infrequently.
System Tests
Exploratory
Component Tests
Integration Tests
Unit Tests
● Tests the system as a whole.
● Written by system architects and
tech leads
● Executed infrequently.
● Testing coverage is about 10% as
it test the system construction not
the behavior.
Practices and Tools
System Tests
Exploratory
Component Tests
Integration Tests
Unit Tests
● Manual tests (not automated
nor scripted).
● Explores the system for
unexpected behavior.
● Tests the system against
human interactions
Practices and Tools
System Tests
Exploratory
Component Tests
Integration Tests
Unit Tests
References and Resources
References and Resources
● Learning Agile - Andrew Stellman &
Jennifer Greene.
● Software Engineering at Google – Titus
Winters, Tom Manshreck and Hyrum
Wright.
● The Clean Coder – Robert C. Martin
● Peopleware: Productive Projects and
Teams - Tom DeMarco and Timothy Lister
Have a Questions?
muhamadhhassan
muhamadhhassan
muhamadhhassan@gmail.com
Thank You

Mais conteúdo relacionado

Mais procurados

Caba Green Buildings Conf 2006
Caba Green Buildings Conf 2006Caba Green Buildings Conf 2006
Caba Green Buildings Conf 2006
CABA
 
Estimation – a waste of time master 2013 sdc gothenburg w hp rules
Estimation – a waste of time master 2013 sdc gothenburg w hp rulesEstimation – a waste of time master 2013 sdc gothenburg w hp rules
Estimation – a waste of time master 2013 sdc gothenburg w hp rules
tom gilb
 
Information Technology Project Management - part 08
Information Technology Project Management - part  08Information Technology Project Management - part  08
Information Technology Project Management - part 08
Rizwan Khurram
 

Mais procurados (19)

Green it
Green itGreen it
Green it
 
P44098087
P44098087P44098087
P44098087
 
Lecture-3: Traditional Approaches to System Development and Enterprise Engine...
Lecture-3: Traditional Approaches to System Development and Enterprise Engine...Lecture-3: Traditional Approaches to System Development and Enterprise Engine...
Lecture-3: Traditional Approaches to System Development and Enterprise Engine...
 
Caba Green Buildings Conf 2006
Caba Green Buildings Conf 2006Caba Green Buildings Conf 2006
Caba Green Buildings Conf 2006
 
Green ICT and its transformation in Korea (Green Startups)
Green ICT and its transformation in Korea (Green Startups)Green ICT and its transformation in Korea (Green Startups)
Green ICT and its transformation in Korea (Green Startups)
 
2009-02-11 GRE104 - 1 - Table ronde Informatique durable - François Ajenstat
2009-02-11 GRE104 - 1 - Table ronde Informatique durable - François Ajenstat2009-02-11 GRE104 - 1 - Table ronde Informatique durable - François Ajenstat
2009-02-11 GRE104 - 1 - Table ronde Informatique durable - François Ajenstat
 
Green ict front presentation
Green ict front presentationGreen ict front presentation
Green ict front presentation
 
Building a Sustainable Data Center
Building a Sustainable Data CenterBuilding a Sustainable Data Center
Building a Sustainable Data Center
 
10.2478 cait 2019-0033
10.2478 cait 2019-003310.2478 cait 2019-0033
10.2478 cait 2019-0033
 
International Journal of Business and Management Invention (IJBMI)
International Journal of Business and Management Invention (IJBMI)International Journal of Business and Management Invention (IJBMI)
International Journal of Business and Management Invention (IJBMI)
 
A New Software Engineeering Approach
A New Software Engineeering ApproachA New Software Engineeering Approach
A New Software Engineeering Approach
 
WWT 2010: Greening Your IT
WWT 2010: Greening Your ITWWT 2010: Greening Your IT
WWT 2010: Greening Your IT
 
Prefabrication
PrefabricationPrefabrication
Prefabrication
 
Agility is the tool gilb vilnius 9 dec 2013
Agility is the tool gilb vilnius 9 dec 2013Agility is the tool gilb vilnius 9 dec 2013
Agility is the tool gilb vilnius 9 dec 2013
 
Estimation – a waste of time master 2013 sdc gothenburg w hp rules
Estimation – a waste of time master 2013 sdc gothenburg w hp rulesEstimation – a waste of time master 2013 sdc gothenburg w hp rules
Estimation – a waste of time master 2013 sdc gothenburg w hp rules
 
Information Technology Project Management - part 08
Information Technology Project Management - part  08Information Technology Project Management - part  08
Information Technology Project Management - part 08
 
Project management part 1
Project management part 1Project management part 1
Project management part 1
 
Green - The Reader Perspective
Green - The Reader PerspectiveGreen - The Reader Perspective
Green - The Reader Perspective
 
sistemas de unformacion
 sistemas de unformacion sistemas de unformacion
sistemas de unformacion
 

Semelhante a Building Sustainable Software: An Introduction to Software Engineering

Distilling Agile for Effective Execution
Distilling Agile for Effective ExecutionDistilling Agile for Effective Execution
Distilling Agile for Effective Execution
Omar Bashir
 

Semelhante a Building Sustainable Software: An Introduction to Software Engineering (20)

Module 1 - SE.pptx
Module 1 - SE.pptxModule 1 - SE.pptx
Module 1 - SE.pptx
 
Software Development Methodologies
Software Development Methodologies Software Development Methodologies
Software Development Methodologies
 
Distilling Agile for Effective Execution
Distilling Agile for Effective ExecutionDistilling Agile for Effective Execution
Distilling Agile for Effective Execution
 
Managing software projects & teams effectively
Managing software projects & teams effectivelyManaging software projects & teams effectively
Managing software projects & teams effectively
 
Technical Practices for Agile Engineering - PNSQC 2019
Technical Practices for Agile Engineering - PNSQC 2019Technical Practices for Agile Engineering - PNSQC 2019
Technical Practices for Agile Engineering - PNSQC 2019
 
Choosing the right QA strategy for a successful project
Choosing the right QA strategy for a successful projectChoosing the right QA strategy for a successful project
Choosing the right QA strategy for a successful project
 
August: DevOps 101 (in lieu of DevOps Patterns Distilled)
August: DevOps 101 (in lieu of DevOps Patterns Distilled)August: DevOps 101 (in lieu of DevOps Patterns Distilled)
August: DevOps 101 (in lieu of DevOps Patterns Distilled)
 
Agile software development
Agile software development Agile software development
Agile software development
 
Se introduction lec 1
Se  introduction lec 1Se  introduction lec 1
Se introduction lec 1
 
Software development. xp, agile, etc.
Software development. xp, agile, etc.Software development. xp, agile, etc.
Software development. xp, agile, etc.
 
Bai giang-se-16jan14
Bai giang-se-16jan14Bai giang-se-16jan14
Bai giang-se-16jan14
 
Big data and other buzzwords
Big data and other buzzwordsBig data and other buzzwords
Big data and other buzzwords
 
ASPgems company profile
ASPgems company profileASPgems company profile
ASPgems company profile
 
Unit 6- Development Evolution model
Unit 6- Development Evolution model Unit 6- Development Evolution model
Unit 6- Development Evolution model
 
Agile process
Agile processAgile process
Agile process
 
Inclusive Architecture - Introducing the PAMstack - [Refactr.tech]
Inclusive Architecture - Introducing the PAMstack - [Refactr.tech] Inclusive Architecture - Introducing the PAMstack - [Refactr.tech]
Inclusive Architecture - Introducing the PAMstack - [Refactr.tech]
 
Agile Methodologies and Scrum / Lean Development and Agile Methodologies - 2...
Agile Methodologies and Scrum /  Lean Development and Agile Methodologies - 2...Agile Methodologies and Scrum /  Lean Development and Agile Methodologies - 2...
Agile Methodologies and Scrum / Lean Development and Agile Methodologies - 2...
 
Chapter 2
Chapter 2 Chapter 2
Chapter 2
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Test i agile projekter af Gitte Ottosen, Sogeti
Test i agile projekter af Gitte Ottosen, SogetiTest i agile projekter af Gitte Ottosen, Sogeti
Test i agile projekter af Gitte Ottosen, Sogeti
 

Último

Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
masabamasaba
 

Último (20)

Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 

Building Sustainable Software: An Introduction to Software Engineering

  • 2. ● Programming Effort vs. Software Engineering ● Waterfall Methodology ● Agile Methodology ● Practices and Tools in SWE ○ Version Control Systems ○ CI/CD ○ Code Review ○ Testing ● References and Resources Today’s Agenda
  • 3. Programming Effort VS. Software Engineering
  • 4. ● Programming is concerned only about writing functional code. ● The result is usually a prototype not a full product. ● We don’t give care much thought about documentation. ● The team size is limited in number Programming Effort VS. Software Engineering
  • 5. The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software.
  • 6. ● Time ● Scale ● Complexity Programming Effort VS. Software Engineering
  • 7. ● What is the expected lifespan of your code? ● The shorter the lifespan of the code the less it’s affected by time. Programming Effort VS. Software Engineering
  • 8. ● How many people are involved? What role do they play in the development and maintenance? ● As we scale, complexity emerge in team organization, system components and policies and practices. Programming Effort VS. Software Engineering
  • 9. Programming Effort VS. Software Engineering ● In SWE we're always forced to evaluate the trade-offs between several paths forward. ● The stakes are sometimes high, and often with imperfect value metrics
  • 10. Programming Effort VS. Software Engineering ● Different methods for different domains
  • 12. Project Management Methodologies ● Waterfall is a linear sequential model. ● Development process is divided into distinct phases. ● Each phase is well documented.
  • 13. Project Management Methodologies Requirements Design Implementation Verification Deployment Maintenance ● Requirements gathering and analysis. ● System Design. ● Implementation. ● Testing and verification. ● Deployment. ● Maintenance.
  • 14. Project Management Methodologies ● Easy to understand and use. ● Each phase has specific deliverables. ● Phases do not overlap.
  • 15. Project Management Methodologies ● No room for change. ● Working software is produced late in the process. ● High amount of risk and uncertainty. Requirements Design Implementation Verification Deployment Maintenance
  • 16. Project Management Methodologies ● When the requirements are well defined, clear and fixe. ● The project is short. ● When time and money are secondary considerations. ● When the technology is understood
  • 17. In software, we rarely have meaningful requirements. Even if we do, the only measure of success that matters is whether our solution solves the customer’s shifting idea of what their problem is.
  • 18. Project Management Methodologies ● Software by nature is not tangible. ● Different Background. ● Time: ○ Unknown requirements. ○ Changes in the industry. ○ New competitors. ○ New regulations. ○ Different decision makers.
  • 19. Project Management Methodologies ● Individuals and interactions over processes and tools. ● Working software over comprehensive documentation. ● Customer collaboration over contract negotiation. ● Responding to change over following a plan.
  • 20. ● Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. ● Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. Project Management Methodologies
  • 21. ● Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. ● Business people and developers must work together daily throughout the project. Project Management Methodologies
  • 22. ● Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. ● The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. Project Management Methodologies
  • 23. ● Working software is the primary measure of progress. ● Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. Project Management Methodologies
  • 24. ● Continuous attention to technical excellence and good design enhances agility. ● Simplicity--the art of maximizing the amount of work not done--is essential. Project Management Methodologies
  • 25. ● The best architectures, requirements, and designs emerge from self-organizing teams. ● At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly. Project Management Methodologies
  • 26. Project Management Methodologies ● Roles ● Artifacts ● Events
  • 27. ● Development team ● Product owner ● Stakeholders ● Scrum Master Project Management Methodologies
  • 28. Project Management Methodologies ● Product backlog ● Sprint backlog ● Product increment
  • 29. Project Management Methodologies ● Sprint ● Sprint Planning ● Daily Scrum ● Sprint Review ● Sprint Retrospective
  • 30.
  • 31. Grand principles that generate no action are mere vapor. Conversely, specific practices in the absence of guiding principles are often inappropriately used.
  • 32. ● Commitment ● Focus ● Openness ● Respect ● Courage Project Management Methodologies
  • 34. Practices and Tools ● Enhances development speed. ● Reduce errors and conflicts. ● Team members can contribute from anywhere. ● Helps in recovery in case of any disaster. ● Tracks who, what, when, why changes have been made.
  • 35.
  • 36. Practices and Tools ● Branching and merging. ● Committing. ● Diffing (reviewing differences). ● Conflicts.
  • 37. ● Continuous Integration (CI): a set of scripts executed every time a change is made. ● Continuous Delivery (CD): the app is also deployed continuously. However, you trigger the deployments manually. ● Continuous Deployment: similar to CD. The difference is that changes are deployed automatically Practices and Tools
  • 38.
  • 39. ● Does this code change do what it is supposed to do? ● Can this solution be optimized? ● Can a library, API or framework be used or un-necessarily used? ● Does the change follow best practices and architecture? ● Is there any logical errors? Practices and Tools
  • 40. ● Written in the programming language of the system. ● Specifies the system at the lowest level. ● Written before production code (TDD). ● Executed as part of CI. Practices and Tools System Tests Exploratory Component Tests Integration Tests Unit Tests
  • 41. Practices and Tools ● Written against individual component of the system. ● Each component encapsulate business rule(s). ● It passes input data to the component and gathers the output. other components are decoupled by mocking. ● IT covers the happy-path situation and obvious corner cases. System Tests Exploratory Component Tests Integration Tests Unit Tests
  • 42. Practices and Tools ● These tests are for larger systems that have many components. ● Specifies how well the components communicate with each other. ● Any other components are decoupled ● They don not test business rules. ● They include performance and stress testing. ● Executed infrequently. System Tests Exploratory Component Tests Integration Tests Unit Tests
  • 43. ● Tests the system as a whole. ● Written by system architects and tech leads ● Executed infrequently. ● Testing coverage is about 10% as it test the system construction not the behavior. Practices and Tools System Tests Exploratory Component Tests Integration Tests Unit Tests
  • 44. ● Manual tests (not automated nor scripted). ● Explores the system for unexpected behavior. ● Tests the system against human interactions Practices and Tools System Tests Exploratory Component Tests Integration Tests Unit Tests
  • 46. References and Resources ● Learning Agile - Andrew Stellman & Jennifer Greene. ● Software Engineering at Google – Titus Winters, Tom Manshreck and Hyrum Wright. ● The Clean Coder – Robert C. Martin ● Peopleware: Productive Projects and Teams - Tom DeMarco and Timothy Lister