SlideShare a Scribd company logo
“I was lucky enough to be at the beginning of this story, with early
experiences on the 'birth project' of Extreme Programming and a
co-author of the Manifesto for Agile Software Development.”
Martin Fowler
By Adeem Akhtar
 Born: 1963 in England
 Education: University College London (BSc, 1986)
 Occupation: Software developer, author, public speaker
 Employer: ThoughtWorks, an application development and consulting company.
Working as Chief Scientist.
 He has written eight books on the topic of software development.
 He is a member of the Agile Alliance and helped create the Manifesto for Agile
Software Development in 2001, along with 16 fellow signatories.
 He maintains a bliki, a mix of blog and wiki.
 He popularized the term Dependency Injection as a form of Inversion of Control.
About ThoughtWorks
4000 Employees
14 Countries
40 Offices
Game-changers - ThoughtWorks started using agile techniques in 2000
 We work with people and organizations who have ambitious missions –
Our Agile development tools help our clients continuously improve and deliver quality
software.
 We are focused on helping our industry improve, and believe in sharing what we
learn. We do this by writing books, blogging, running events, talking at conferences, and
championing open source.
Martin Fowler’s Interview
I came to find ThoughtWorks by
I first spent some time as a consultant on a large Java project to build a back-end
leasing application. After nine months of that, they asked me to join full time.
The thing I love most about my work is
Finding interesting techniques and figuring out how best to communicate them to a wide
audience. I can have days of frustration trying to figure out how to write about something
clearly, but once it clicks, there's a definite joy there.
Publications
1996. Analysis Patterns: Reusable Object Models.
1997. UML Distilled: A Brief Guide to the Standard Object Modeling Language.
1999. Refactoring: Improving the Design of Existing Code, With Kent Beck, John
Brant, William Opdyke, and Don Roberts
 2000. Planning Extreme Programming. With Kent Beck
 2002. Patterns of Enterprise Application Architecture. With David Rice, Matthew
Foemmel, Edward Hieatt, Robert Mee, and Randy Stafford
 2010. Domain-Specific Languages. With Rebecca Parsons
 2012. NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence.
With Pramod Sadalage.
 2013. Refactoring: Ruby Edition. With Kent Beck, Shane Harvie, and Jay Fields.
The Essence of Agile Software
https://www.youtube.com/watch?v=URlnxbaHhTs
I've always seen the essence of agile thinking resting on two contrasts with traditional
plan-driven software engineering.
Agile Development
is adaptive rather than predictive
is people-oriented rather than process-oriented
 Plan-driven engineering expects us to come up with a predictive plan that precedes
development.
 Agile plans are a baseline that we use to help us control change. Agile teams plan just
as carefully as traditional teams, but the plans are constantly changing to reflect the
things we learn during a project. Success is based on value delivered by the software.
 Plan-driven engineering seeks a process which provides enough structure to reduce
individual variations to insignificance.
 Agile engineering sees software development as a primarily human activity, where the
people involved and how they bond as a team are the primary driver behind success.
Processes (and tools) can enhance a team's effectiveness, but are always second-order
influences.
Purpose Of Estimation
A common scenario runs like this:
Developers are asked for (or given) estimates for upcoming work. People are
optimists, so these estimates tend to be too low, even without pressure to make them
low (and there's usually at least some implicit pressure)
These tasks and estimates are turned into release plans tracked with burn-down
charts.
Time and effort goes into monitoring progress against these plans. Everyone is upset
when actual end up being more than estimates. In effort to increase pace with the
estimates, developers are told to sacrifice quality, which only makes things worse.
In this narrative, effort put into estimates is, at best, waste - since "an estimate is a
guess in a clean shirt
Estimates also set expectations, and since estimates are usually too low, they set
unrealistic expectations
Faced with situations like this, it's easy to see how people turn their angry glares
towards estimation. This leads to an increasing notion that anyone indulging in
estimating is Not a True Agilist. Critics of agile say this means that agile development is
about developers going off and doing vague stuff with promises that it'll be done when its
done and you'll like it.
I don't share this view of estimation as an inherently evil activity. If I'm asked if estimation
is a Bad Thing my answer is the standard consultants' answer of "it depends". Whenever
someone answers "it depends" the follow-up question is "upon what".
To answer that we have to ask why we are doing estimation - as I like to say "if it's worth
doing well, it's worth asking why on earth you're doing it at all".
For me, estimation is valuable when it helps you make a significant
decision.
My first example of an estimation-informed decision is allocation of resources.
Organizations have a mostly fixed amount of money and people, and usually there are
too many worthwhile things to do. So people are faced with decisions: do we do A or B?
Faced with such a decision it's useful to know how much effort (and cost) each will
involve.
To make sensible decisions about what to do, you need to have a feel for both the cost
and the benefits.
Another example is to help with coordination. The blue team wants to release a new
feature to their web site, but cannot do so until the green team builds a new service to
give them crucial data. If the green team estimates they will be done in two months and
the blue team estimates that it will take them a month to build the feature, then the blue
team knows it's not worthwhile to start today. They can spend at least a month working
on some other feature that can be released earlier.
Understanding the decision may also lead you to alternative actions that may not involve
an estimate. Maybe task A is so much more important than B that you don't need an
estimate to put all your available energies into doing it first. Perhaps there is a way for
blue team members to work with the green team to get the service built more quickly.
Similarly, tracking against a plan should also be driven by how it informs decision
making. My usual comment here is that a plan acts as a baseline to help assess
changes - if we want to add a new feature, how do we fit it into the FivePoundBag?
Estimates can help us understand these trade-offs and thus decide how to respond to
change. On a larger scale re-estimating a whole release can help us understand if the
project as a whole is still the best use of our energy.
A few years ago we had a year-long project that was cancelled after a re-estimate a
couple of months in. We saw that as a success because the re-estimate suggested the
project would take much longer than we had initially expected - early cancellation
allowed the client to move resources to a better target.
But remember with tracking against plans that estimates have a limited shelf life. I once
remember a gnarly project manager say that plans and estimates were like a lettuce,
good for a couple of days, rather witty after a week, and unrecognizable after a couple of
months.
Many teams find that estimation provides a useful forcing function to get team members
to talk to each other. Estimation meetings can help get better understanding of various
ways to implement upcoming stories, future architectural directions, and design
problems in the code base.
Estimation is neither good or bad. If you can work effectively without estimation, then go
ahead and do without it.
If you think you need some estimates, then make sure you understand their role in
decision making. If they are going to affect significant decisions then go ahead and
make the best estimates you can. Above all be wary of anyone who tells you they are
always needed, or never needed. Any arguments about use of estimation always defer
to the agile principle that you should decide what are the right techniques for your
particular context.
Continuous Integration (CI)
Eliminate blind spots so you can build and deliver software more rapidly.
Continuous Integration (CI) is a development practice that requires developers
to integrate code into a shared repository several times a day. Each check-in is
then verified by an automated build, allowing teams to detect problems early.
By integrating regularly, you can detect errors quickly, and locate them more
easily.
Solve problems quickly
Because you’re integrating so frequently, there is significantly less back-
tracking to discover where things went wrong, so you can spend more time
building features.
Continuous Integration is cheap. Not continuously integrating is costly. If you
don’t follow a continuous approach, you’ll have longer periods between
integrations. This makes it exponentially more difficult to find and fix problems.
Such integration problems can easily knock a project off-schedule, or cause it
to fail altogether.
Continuous Integration brings multiple benefits to your organization:
Say goodbye to long and tense integrations
Increase visibility which enables greater communication
Catch issues fast and nip them in the bud
Spend less time debugging and more time adding features
Proceed in the confidence you’re building on a solid foundation
Stop waiting to find out if your code’s going to work
Reduce integration problems allowing you to deliver software more rapidly
More than a process
Continuous Integration is backed by several important principles and practices.
The Practices
 Maintain a single source repository
 Automate the build
 Make your build self-testing
 Every commit should build on an integration machine
 Keep the build fast
 Test in a clone of the production environment
 Make it easy for anyone to get the latest executable
 Everyone can see what’s happening
 Automate deployment
How to do it
 Developers check out code into their private workspaces.
 When done, commit the changes to the repository.
The CI server monitors the repository and checks out changes when they
occur.
 The CI server builds the system and runs unit and integration tests.
 The CI server releases deployable artefacts for testing.
The CI server assigns a build label to the version of the code it just built.
 The CI server informs the team of the successful build.
 If the build or tests fail, the CI server alerts the team.
 The team fix the issue at the earliest opportunity.
 Continue to continually integrate and test throughout the project.
Team Responsibilities
Check in frequently
Don’t check in broken code
Don’t check in untested code
Don’t check in when the build is broken
Don’t go home after checking in until the system builds
Many teams develop rituals around these policies, meaning the teams
effectively manage themselves, removing the need to enforce policies from on
high.
Continuous Deployment
Continuous Deployment is closely related to Continuous Integration and refers
to the release into production of software that passes the automated tests.
Essentially, “it is the practice of releasing every good build to users,” explains
Jez Humble, author of Continuous Delivery.
By adopting both Continuous Integration and Continuous Deployment, you not
only reduce risks and catch bugs quickly, but also move rapidly to working
software.
With low-risk releases, you can quickly adapt to business requirements and
user needs. This allows for greater collaboration between ops and delivery,
fuelling real change in your organization, and turning your release process into
a business advantage.

More Related Content

What's hot

Writing effective design hypotheses
Writing effective design hypothesesWriting effective design hypotheses
Writing effective design hypotheses
Tom Adams
 
The Angry Birds Guide to Can’t Fail Social Business Adoption
The Angry Birds Guide to Can’t Fail Social Business Adoption The Angry Birds Guide to Can’t Fail Social Business Adoption
The Angry Birds Guide to Can’t Fail Social Business Adoption
Mark Fidelman
 
Agile project-estimation-and-planning-e mag
Agile project-estimation-and-planning-e magAgile project-estimation-and-planning-e mag
Agile project-estimation-and-planning-e mag
Frederico Moura SPC4, PMP, CSP, CSM, PO
 
Agile manifesto - Agile - What is it?
Agile manifesto - Agile - What is it?Agile manifesto - Agile - What is it?
Agile manifesto - Agile - What is it?
Mediotype .
 
Project Planning: How to Achieve the Impossible
Project Planning: How to Achieve the ImpossibleProject Planning: How to Achieve the Impossible
Project Planning: How to Achieve the Impossible
MindGenius
 
The Net Promoter Score - What can NPS Tell you about your User Experience
The Net Promoter Score - What can NPS Tell you about your User ExperienceThe Net Promoter Score - What can NPS Tell you about your User Experience
The Net Promoter Score - What can NPS Tell you about your User Experience
UXPA International
 
Design + Devops: What We've Learned from Our Developer Friends
Design + Devops: What We've Learned from Our Developer FriendsDesign + Devops: What We've Learned from Our Developer Friends
Design + Devops: What We've Learned from Our Developer Friends
UXPA International
 
User Story Maps: Secrets for Better Backlogs and Planning
 User Story Maps: Secrets for Better Backlogs and Planning User Story Maps: Secrets for Better Backlogs and Planning
User Story Maps: Secrets for Better Backlogs and Planning
Aaron Sanders
 
Using Prototyping to Streamline the Instructional Design Process
Using Prototyping to Streamline the Instructional Design ProcessUsing Prototyping to Streamline the Instructional Design Process
Using Prototyping to Streamline the Instructional Design Process
Lisa Whalen
 
Project Management vs Task Management: What Works Best for You
Project Management vs Task Management: What Works Best for YouProject Management vs Task Management: What Works Best for You
Project Management vs Task Management: What Works Best for You
Orangescrum
 
Capturing Lessons learned Information - Making your current and future projec...
Capturing Lessons learned Information - Making your current and future projec...Capturing Lessons learned Information - Making your current and future projec...
Capturing Lessons learned Information - Making your current and future projec...
Dow Publishing LLC
 
AgileMidwest2018-Erickson-PowerOfRetrospective
AgileMidwest2018-Erickson-PowerOfRetrospectiveAgileMidwest2018-Erickson-PowerOfRetrospective
AgileMidwest2018-Erickson-PowerOfRetrospective
Jason Tice
 
UX STRAT Online 2021 Presentation by Angel Brown, Digitas Health
UX STRAT Online 2021 Presentation by Angel Brown, Digitas HealthUX STRAT Online 2021 Presentation by Angel Brown, Digitas Health
UX STRAT Online 2021 Presentation by Angel Brown, Digitas Health
UX STRAT
 
Resource2
Resource2Resource2
Resource2grosi
 
Project Charter Guide
Project Charter GuideProject Charter Guide
Project Charter Guide
Casual Project Management
 
Product Management 101
Product Management 101Product Management 101
Product Management 101
Alex Pandel
 
Kevin Hoffmann: Co-Designing Content
Kevin Hoffmann: Co-Designing ContentKevin Hoffmann: Co-Designing Content
Kevin Hoffmann: Co-Designing Content
webdagene
 
Lean software development tips and tricks - Agile Tour Dublin 2014
Lean software development tips and tricks - Agile Tour Dublin 2014Lean software development tips and tricks - Agile Tour Dublin 2014
Lean software development tips and tricks - Agile Tour Dublin 2014
Augusto Evangelisti
 
#NoEstimates Thinking
#NoEstimates Thinking#NoEstimates Thinking
#NoEstimates Thinking
Massimo Iacolare
 
Agile basics
Agile basics Agile basics
Agile basics
Thoughtworks
 

What's hot (20)

Writing effective design hypotheses
Writing effective design hypothesesWriting effective design hypotheses
Writing effective design hypotheses
 
The Angry Birds Guide to Can’t Fail Social Business Adoption
The Angry Birds Guide to Can’t Fail Social Business Adoption The Angry Birds Guide to Can’t Fail Social Business Adoption
The Angry Birds Guide to Can’t Fail Social Business Adoption
 
Agile project-estimation-and-planning-e mag
Agile project-estimation-and-planning-e magAgile project-estimation-and-planning-e mag
Agile project-estimation-and-planning-e mag
 
Agile manifesto - Agile - What is it?
Agile manifesto - Agile - What is it?Agile manifesto - Agile - What is it?
Agile manifesto - Agile - What is it?
 
Project Planning: How to Achieve the Impossible
Project Planning: How to Achieve the ImpossibleProject Planning: How to Achieve the Impossible
Project Planning: How to Achieve the Impossible
 
The Net Promoter Score - What can NPS Tell you about your User Experience
The Net Promoter Score - What can NPS Tell you about your User ExperienceThe Net Promoter Score - What can NPS Tell you about your User Experience
The Net Promoter Score - What can NPS Tell you about your User Experience
 
Design + Devops: What We've Learned from Our Developer Friends
Design + Devops: What We've Learned from Our Developer FriendsDesign + Devops: What We've Learned from Our Developer Friends
Design + Devops: What We've Learned from Our Developer Friends
 
User Story Maps: Secrets for Better Backlogs and Planning
 User Story Maps: Secrets for Better Backlogs and Planning User Story Maps: Secrets for Better Backlogs and Planning
User Story Maps: Secrets for Better Backlogs and Planning
 
Using Prototyping to Streamline the Instructional Design Process
Using Prototyping to Streamline the Instructional Design ProcessUsing Prototyping to Streamline the Instructional Design Process
Using Prototyping to Streamline the Instructional Design Process
 
Project Management vs Task Management: What Works Best for You
Project Management vs Task Management: What Works Best for YouProject Management vs Task Management: What Works Best for You
Project Management vs Task Management: What Works Best for You
 
Capturing Lessons learned Information - Making your current and future projec...
Capturing Lessons learned Information - Making your current and future projec...Capturing Lessons learned Information - Making your current and future projec...
Capturing Lessons learned Information - Making your current and future projec...
 
AgileMidwest2018-Erickson-PowerOfRetrospective
AgileMidwest2018-Erickson-PowerOfRetrospectiveAgileMidwest2018-Erickson-PowerOfRetrospective
AgileMidwest2018-Erickson-PowerOfRetrospective
 
UX STRAT Online 2021 Presentation by Angel Brown, Digitas Health
UX STRAT Online 2021 Presentation by Angel Brown, Digitas HealthUX STRAT Online 2021 Presentation by Angel Brown, Digitas Health
UX STRAT Online 2021 Presentation by Angel Brown, Digitas Health
 
Resource2
Resource2Resource2
Resource2
 
Project Charter Guide
Project Charter GuideProject Charter Guide
Project Charter Guide
 
Product Management 101
Product Management 101Product Management 101
Product Management 101
 
Kevin Hoffmann: Co-Designing Content
Kevin Hoffmann: Co-Designing ContentKevin Hoffmann: Co-Designing Content
Kevin Hoffmann: Co-Designing Content
 
Lean software development tips and tricks - Agile Tour Dublin 2014
Lean software development tips and tricks - Agile Tour Dublin 2014Lean software development tips and tricks - Agile Tour Dublin 2014
Lean software development tips and tricks - Agile Tour Dublin 2014
 
#NoEstimates Thinking
#NoEstimates Thinking#NoEstimates Thinking
#NoEstimates Thinking
 
Agile basics
Agile basics Agile basics
Agile basics
 

Similar to Martin folwer

Agile Commissioning A Beginners View
Agile Commissioning   A Beginners ViewAgile Commissioning   A Beginners View
Agile Commissioning A Beginners View
Peter Ashe
 
Software engineering
Software engineeringSoftware engineering
Software engineering
sweetysweety8
 
Agile software development
Agile software developmentAgile software development
Agile software development
Varun Mahajan
 
Project Management for Freelancers
Project Management for FreelancersProject Management for Freelancers
Project Management for Freelancers
Crystal Williams
 
Design thinking & agile
Design thinking & agileDesign thinking & agile
Design thinking & agile
Annalisa Valente
 
Agile
AgileAgile
What it Really Means to Be Agile
What it Really Means to Be AgileWhat it Really Means to Be Agile
What it Really Means to Be Agile
Kent McDonald
 
Agile Methodologies & Key Principles 2
Agile Methodologies & Key Principles 2Agile Methodologies & Key Principles 2
Agile Methodologies & Key Principles 2
Orchestrate Mortgage and Title Solutions, LLC
 
Out of the silos and into the farm (NEPHP 2014)
Out of the silos and into the farm (NEPHP 2014)Out of the silos and into the farm (NEPHP 2014)
Out of the silos and into the farm (NEPHP 2014)
Marli Mesibov
 
Starting with Agile
Starting with AgileStarting with Agile
Starting with Agile
Jeff Kosciejew
 
importance of resources allocation in formal method of software engineering ...
 importance of resources allocation in formal method of software engineering ... importance of resources allocation in formal method of software engineering ...
importance of resources allocation in formal method of software engineering ...
abdulrafaychaudhry
 
Applying agile principles a brief paper
Applying agile principles    a brief paperApplying agile principles    a brief paper
Applying agile principles a brief paper
Simon Robertson PMP ACP AEC
 
IIA3: Coding Like a Unicorn (Predix Transform 2016)
IIA3: Coding Like a Unicorn (Predix Transform 2016)IIA3: Coding Like a Unicorn (Predix Transform 2016)
IIA3: Coding Like a Unicorn (Predix Transform 2016)
Predix
 
UXBC #26: Lean UX
UXBC #26: Lean UXUXBC #26: Lean UX
UXBC #26: Lean UX
Marcin Kinderman
 
Agile Prototyping Best Practices
Agile Prototyping Best PracticesAgile Prototyping Best Practices
Agile Prototyping Best Practices
uxpin
 
Software development project management
Software development project managementSoftware development project management
Software development project management
Roni Banerjee
 
Estimation of agile functionality in software development
Estimation of agile functionality in software developmentEstimation of agile functionality in software development
Estimation of agile functionality in software development
Bashir Nasr Azadani
 
Deliverable 2 - Using Visuals to Enhance Viewer PerceptionCompet.docx
Deliverable 2 - Using Visuals to Enhance Viewer PerceptionCompet.docxDeliverable 2 - Using Visuals to Enhance Viewer PerceptionCompet.docx
Deliverable 2 - Using Visuals to Enhance Viewer PerceptionCompet.docx
theodorelove43763
 
Deliverable 2 - Using Visuals to Enhance Viewer PerceptionCompet.docx
Deliverable 2 - Using Visuals to Enhance Viewer PerceptionCompet.docxDeliverable 2 - Using Visuals to Enhance Viewer PerceptionCompet.docx
Deliverable 2 - Using Visuals to Enhance Viewer PerceptionCompet.docx
cargillfilberto
 

Similar to Martin folwer (20)

Agile development
Agile developmentAgile development
Agile development
 
Agile Commissioning A Beginners View
Agile Commissioning   A Beginners ViewAgile Commissioning   A Beginners View
Agile Commissioning A Beginners View
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Agile software development
Agile software developmentAgile software development
Agile software development
 
Project Management for Freelancers
Project Management for FreelancersProject Management for Freelancers
Project Management for Freelancers
 
Design thinking & agile
Design thinking & agileDesign thinking & agile
Design thinking & agile
 
Agile
AgileAgile
Agile
 
What it Really Means to Be Agile
What it Really Means to Be AgileWhat it Really Means to Be Agile
What it Really Means to Be Agile
 
Agile Methodologies & Key Principles 2
Agile Methodologies & Key Principles 2Agile Methodologies & Key Principles 2
Agile Methodologies & Key Principles 2
 
Out of the silos and into the farm (NEPHP 2014)
Out of the silos and into the farm (NEPHP 2014)Out of the silos and into the farm (NEPHP 2014)
Out of the silos and into the farm (NEPHP 2014)
 
Starting with Agile
Starting with AgileStarting with Agile
Starting with Agile
 
importance of resources allocation in formal method of software engineering ...
 importance of resources allocation in formal method of software engineering ... importance of resources allocation in formal method of software engineering ...
importance of resources allocation in formal method of software engineering ...
 
Applying agile principles a brief paper
Applying agile principles    a brief paperApplying agile principles    a brief paper
Applying agile principles a brief paper
 
IIA3: Coding Like a Unicorn (Predix Transform 2016)
IIA3: Coding Like a Unicorn (Predix Transform 2016)IIA3: Coding Like a Unicorn (Predix Transform 2016)
IIA3: Coding Like a Unicorn (Predix Transform 2016)
 
UXBC #26: Lean UX
UXBC #26: Lean UXUXBC #26: Lean UX
UXBC #26: Lean UX
 
Agile Prototyping Best Practices
Agile Prototyping Best PracticesAgile Prototyping Best Practices
Agile Prototyping Best Practices
 
Software development project management
Software development project managementSoftware development project management
Software development project management
 
Estimation of agile functionality in software development
Estimation of agile functionality in software developmentEstimation of agile functionality in software development
Estimation of agile functionality in software development
 
Deliverable 2 - Using Visuals to Enhance Viewer PerceptionCompet.docx
Deliverable 2 - Using Visuals to Enhance Viewer PerceptionCompet.docxDeliverable 2 - Using Visuals to Enhance Viewer PerceptionCompet.docx
Deliverable 2 - Using Visuals to Enhance Viewer PerceptionCompet.docx
 
Deliverable 2 - Using Visuals to Enhance Viewer PerceptionCompet.docx
Deliverable 2 - Using Visuals to Enhance Viewer PerceptionCompet.docxDeliverable 2 - Using Visuals to Enhance Viewer PerceptionCompet.docx
Deliverable 2 - Using Visuals to Enhance Viewer PerceptionCompet.docx
 

More from Shiraz316

FINGERNAIL DISORDER DETECTION FOR DISEASE ANALYSIS
FINGERNAIL DISORDER DETECTION FOR DISEASE ANALYSISFINGERNAIL DISORDER DETECTION FOR DISEASE ANALYSIS
FINGERNAIL DISORDER DETECTION FOR DISEASE ANALYSIS
Shiraz316
 
K neareast neighbor algorithm presentation
K neareast neighbor algorithm presentationK neareast neighbor algorithm presentation
K neareast neighbor algorithm presentation
Shiraz316
 
Khi 087 revised dt report
Khi 087 revised dt reportKhi 087 revised dt report
Khi 087 revised dt report
Shiraz316
 
Khi 117 revised dt report
Khi 117 revised dt reportKhi 117 revised dt report
Khi 117 revised dt report
Shiraz316
 
Khi 164 revised dt report
Khi 164 revised dt reportKhi 164 revised dt report
Khi 164 revised dt report
Shiraz316
 
Khi 054 revised dt report
Khi 054 revised dt reportKhi 054 revised dt report
Khi 054 revised dt report
Shiraz316
 
Khi 061 revised dt report
Khi 061 revised dt reportKhi 061 revised dt report
Khi 061 revised dt report
Shiraz316
 
Khi 022 revised dt report
Khi 022 revised dt reportKhi 022 revised dt report
Khi 022 revised dt report
Shiraz316
 
Khi 113 revised dt report
Khi 113 revised dt reportKhi 113 revised dt report
Khi 113 revised dt report
Shiraz316
 
Khi 156 revised dt report
Khi 156 revised dt reportKhi 156 revised dt report
Khi 156 revised dt report
Shiraz316
 
Khi 142 revised dt report
Khi 142 revised dt reportKhi 142 revised dt report
Khi 142 revised dt report
Shiraz316
 
Khi 316 revised dt report
Khi 316 revised dt reportKhi 316 revised dt report
Khi 316 revised dt report
Shiraz316
 
Khi 186 revised dt report
Khi 186 revised dt reportKhi 186 revised dt report
Khi 186 revised dt report
Shiraz316
 
Khi 052 revised dt report
Khi 052 revised dt reportKhi 052 revised dt report
Khi 052 revised dt report
Shiraz316
 
Khi 151 revised dt report
Khi 151 revised dt reportKhi 151 revised dt report
Khi 151 revised dt report
Shiraz316
 
Khi 150 revised dt report
Khi 150 revised dt reportKhi 150 revised dt report
Khi 150 revised dt report
Shiraz316
 
Khi 078 revised dt report
Khi 078 revised dt reportKhi 078 revised dt report
Khi 078 revised dt report
Shiraz316
 
LTE quick introduction session Training
LTE quick introduction session TrainingLTE quick introduction session Training
LTE quick introduction session Training
Shiraz316
 
LTE Sales Training for CPE Device
LTE Sales Training for CPE DeviceLTE Sales Training for CPE Device
LTE Sales Training for CPE Device
Shiraz316
 
Witribe Customer Premises Equipment Training for LTE
Witribe Customer Premises Equipment Training for LTEWitribe Customer Premises Equipment Training for LTE
Witribe Customer Premises Equipment Training for LTE
Shiraz316
 

More from Shiraz316 (20)

FINGERNAIL DISORDER DETECTION FOR DISEASE ANALYSIS
FINGERNAIL DISORDER DETECTION FOR DISEASE ANALYSISFINGERNAIL DISORDER DETECTION FOR DISEASE ANALYSIS
FINGERNAIL DISORDER DETECTION FOR DISEASE ANALYSIS
 
K neareast neighbor algorithm presentation
K neareast neighbor algorithm presentationK neareast neighbor algorithm presentation
K neareast neighbor algorithm presentation
 
Khi 087 revised dt report
Khi 087 revised dt reportKhi 087 revised dt report
Khi 087 revised dt report
 
Khi 117 revised dt report
Khi 117 revised dt reportKhi 117 revised dt report
Khi 117 revised dt report
 
Khi 164 revised dt report
Khi 164 revised dt reportKhi 164 revised dt report
Khi 164 revised dt report
 
Khi 054 revised dt report
Khi 054 revised dt reportKhi 054 revised dt report
Khi 054 revised dt report
 
Khi 061 revised dt report
Khi 061 revised dt reportKhi 061 revised dt report
Khi 061 revised dt report
 
Khi 022 revised dt report
Khi 022 revised dt reportKhi 022 revised dt report
Khi 022 revised dt report
 
Khi 113 revised dt report
Khi 113 revised dt reportKhi 113 revised dt report
Khi 113 revised dt report
 
Khi 156 revised dt report
Khi 156 revised dt reportKhi 156 revised dt report
Khi 156 revised dt report
 
Khi 142 revised dt report
Khi 142 revised dt reportKhi 142 revised dt report
Khi 142 revised dt report
 
Khi 316 revised dt report
Khi 316 revised dt reportKhi 316 revised dt report
Khi 316 revised dt report
 
Khi 186 revised dt report
Khi 186 revised dt reportKhi 186 revised dt report
Khi 186 revised dt report
 
Khi 052 revised dt report
Khi 052 revised dt reportKhi 052 revised dt report
Khi 052 revised dt report
 
Khi 151 revised dt report
Khi 151 revised dt reportKhi 151 revised dt report
Khi 151 revised dt report
 
Khi 150 revised dt report
Khi 150 revised dt reportKhi 150 revised dt report
Khi 150 revised dt report
 
Khi 078 revised dt report
Khi 078 revised dt reportKhi 078 revised dt report
Khi 078 revised dt report
 
LTE quick introduction session Training
LTE quick introduction session TrainingLTE quick introduction session Training
LTE quick introduction session Training
 
LTE Sales Training for CPE Device
LTE Sales Training for CPE DeviceLTE Sales Training for CPE Device
LTE Sales Training for CPE Device
 
Witribe Customer Premises Equipment Training for LTE
Witribe Customer Premises Equipment Training for LTEWitribe Customer Premises Equipment Training for LTE
Witribe Customer Premises Equipment Training for LTE
 

Recently uploaded

Standard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - NeometrixStandard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - Neometrix
Neometrix_Engineering_Pvt_Ltd
 
Cosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdfCosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdf
Kamal Acharya
 
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdfAKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
SamSarthak3
 
Fundamentals of Electric Drives and its applications.pptx
Fundamentals of Electric Drives and its applications.pptxFundamentals of Electric Drives and its applications.pptx
Fundamentals of Electric Drives and its applications.pptx
manasideore6
 
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Dr.Costas Sachpazis
 
The role of big data in decision making.
The role of big data in decision making.The role of big data in decision making.
The role of big data in decision making.
ankuprajapati0525
 
English lab ppt no titlespecENG PPTt.pdf
English lab ppt no titlespecENG PPTt.pdfEnglish lab ppt no titlespecENG PPTt.pdf
English lab ppt no titlespecENG PPTt.pdf
BrazilAccount1
 
Architectural Portfolio Sean Lockwood
Architectural Portfolio Sean LockwoodArchitectural Portfolio Sean Lockwood
Architectural Portfolio Sean Lockwood
seandesed
 
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
bakpo1
 
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdfTop 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Teleport Manpower Consultant
 
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
Amil Baba Dawood bangali
 
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdfHybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
fxintegritypublishin
 
MCQ Soil mechanics questions (Soil shear strength).pdf
MCQ Soil mechanics questions (Soil shear strength).pdfMCQ Soil mechanics questions (Soil shear strength).pdf
MCQ Soil mechanics questions (Soil shear strength).pdf
Osamah Alsalih
 
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
thanhdowork
 
ML for identifying fraud using open blockchain data.pptx
ML for identifying fraud using open blockchain data.pptxML for identifying fraud using open blockchain data.pptx
ML for identifying fraud using open blockchain data.pptx
Vijay Dialani, PhD
 
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
ydteq
 
road safety engineering r s e unit 3.pdf
road safety engineering  r s e unit 3.pdfroad safety engineering  r s e unit 3.pdf
road safety engineering r s e unit 3.pdf
VENKATESHvenky89705
 
block diagram and signal flow graph representation
block diagram and signal flow graph representationblock diagram and signal flow graph representation
block diagram and signal flow graph representation
Divya Somashekar
 
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
MdTanvirMahtab2
 
DESIGN A COTTON SEED SEPARATION MACHINE.docx
DESIGN A COTTON SEED SEPARATION MACHINE.docxDESIGN A COTTON SEED SEPARATION MACHINE.docx
DESIGN A COTTON SEED SEPARATION MACHINE.docx
FluxPrime1
 

Recently uploaded (20)

Standard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - NeometrixStandard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - Neometrix
 
Cosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdfCosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdf
 
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdfAKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
 
Fundamentals of Electric Drives and its applications.pptx
Fundamentals of Electric Drives and its applications.pptxFundamentals of Electric Drives and its applications.pptx
Fundamentals of Electric Drives and its applications.pptx
 
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
 
The role of big data in decision making.
The role of big data in decision making.The role of big data in decision making.
The role of big data in decision making.
 
English lab ppt no titlespecENG PPTt.pdf
English lab ppt no titlespecENG PPTt.pdfEnglish lab ppt no titlespecENG PPTt.pdf
English lab ppt no titlespecENG PPTt.pdf
 
Architectural Portfolio Sean Lockwood
Architectural Portfolio Sean LockwoodArchitectural Portfolio Sean Lockwood
Architectural Portfolio Sean Lockwood
 
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
 
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdfTop 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
 
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
 
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdfHybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
 
MCQ Soil mechanics questions (Soil shear strength).pdf
MCQ Soil mechanics questions (Soil shear strength).pdfMCQ Soil mechanics questions (Soil shear strength).pdf
MCQ Soil mechanics questions (Soil shear strength).pdf
 
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
 
ML for identifying fraud using open blockchain data.pptx
ML for identifying fraud using open blockchain data.pptxML for identifying fraud using open blockchain data.pptx
ML for identifying fraud using open blockchain data.pptx
 
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
 
road safety engineering r s e unit 3.pdf
road safety engineering  r s e unit 3.pdfroad safety engineering  r s e unit 3.pdf
road safety engineering r s e unit 3.pdf
 
block diagram and signal flow graph representation
block diagram and signal flow graph representationblock diagram and signal flow graph representation
block diagram and signal flow graph representation
 
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
 
DESIGN A COTTON SEED SEPARATION MACHINE.docx
DESIGN A COTTON SEED SEPARATION MACHINE.docxDESIGN A COTTON SEED SEPARATION MACHINE.docx
DESIGN A COTTON SEED SEPARATION MACHINE.docx
 

Martin folwer

  • 1. “I was lucky enough to be at the beginning of this story, with early experiences on the 'birth project' of Extreme Programming and a co-author of the Manifesto for Agile Software Development.” Martin Fowler By Adeem Akhtar
  • 2.  Born: 1963 in England  Education: University College London (BSc, 1986)  Occupation: Software developer, author, public speaker  Employer: ThoughtWorks, an application development and consulting company. Working as Chief Scientist.  He has written eight books on the topic of software development.  He is a member of the Agile Alliance and helped create the Manifesto for Agile Software Development in 2001, along with 16 fellow signatories.  He maintains a bliki, a mix of blog and wiki.  He popularized the term Dependency Injection as a form of Inversion of Control.
  • 3. About ThoughtWorks 4000 Employees 14 Countries 40 Offices Game-changers - ThoughtWorks started using agile techniques in 2000  We work with people and organizations who have ambitious missions – Our Agile development tools help our clients continuously improve and deliver quality software.  We are focused on helping our industry improve, and believe in sharing what we learn. We do this by writing books, blogging, running events, talking at conferences, and championing open source. Martin Fowler’s Interview I came to find ThoughtWorks by I first spent some time as a consultant on a large Java project to build a back-end leasing application. After nine months of that, they asked me to join full time. The thing I love most about my work is Finding interesting techniques and figuring out how best to communicate them to a wide audience. I can have days of frustration trying to figure out how to write about something clearly, but once it clicks, there's a definite joy there.
  • 4. Publications 1996. Analysis Patterns: Reusable Object Models. 1997. UML Distilled: A Brief Guide to the Standard Object Modeling Language. 1999. Refactoring: Improving the Design of Existing Code, With Kent Beck, John Brant, William Opdyke, and Don Roberts  2000. Planning Extreme Programming. With Kent Beck  2002. Patterns of Enterprise Application Architecture. With David Rice, Matthew Foemmel, Edward Hieatt, Robert Mee, and Randy Stafford  2010. Domain-Specific Languages. With Rebecca Parsons  2012. NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence. With Pramod Sadalage.  2013. Refactoring: Ruby Edition. With Kent Beck, Shane Harvie, and Jay Fields.
  • 5. The Essence of Agile Software https://www.youtube.com/watch?v=URlnxbaHhTs I've always seen the essence of agile thinking resting on two contrasts with traditional plan-driven software engineering. Agile Development is adaptive rather than predictive is people-oriented rather than process-oriented  Plan-driven engineering expects us to come up with a predictive plan that precedes development.  Agile plans are a baseline that we use to help us control change. Agile teams plan just as carefully as traditional teams, but the plans are constantly changing to reflect the things we learn during a project. Success is based on value delivered by the software.  Plan-driven engineering seeks a process which provides enough structure to reduce individual variations to insignificance.  Agile engineering sees software development as a primarily human activity, where the people involved and how they bond as a team are the primary driver behind success. Processes (and tools) can enhance a team's effectiveness, but are always second-order influences.
  • 6. Purpose Of Estimation A common scenario runs like this: Developers are asked for (or given) estimates for upcoming work. People are optimists, so these estimates tend to be too low, even without pressure to make them low (and there's usually at least some implicit pressure) These tasks and estimates are turned into release plans tracked with burn-down charts. Time and effort goes into monitoring progress against these plans. Everyone is upset when actual end up being more than estimates. In effort to increase pace with the estimates, developers are told to sacrifice quality, which only makes things worse. In this narrative, effort put into estimates is, at best, waste - since "an estimate is a guess in a clean shirt Estimates also set expectations, and since estimates are usually too low, they set unrealistic expectations
  • 7. Faced with situations like this, it's easy to see how people turn their angry glares towards estimation. This leads to an increasing notion that anyone indulging in estimating is Not a True Agilist. Critics of agile say this means that agile development is about developers going off and doing vague stuff with promises that it'll be done when its done and you'll like it. I don't share this view of estimation as an inherently evil activity. If I'm asked if estimation is a Bad Thing my answer is the standard consultants' answer of "it depends". Whenever someone answers "it depends" the follow-up question is "upon what". To answer that we have to ask why we are doing estimation - as I like to say "if it's worth doing well, it's worth asking why on earth you're doing it at all". For me, estimation is valuable when it helps you make a significant decision. My first example of an estimation-informed decision is allocation of resources.
  • 8. Organizations have a mostly fixed amount of money and people, and usually there are too many worthwhile things to do. So people are faced with decisions: do we do A or B? Faced with such a decision it's useful to know how much effort (and cost) each will involve. To make sensible decisions about what to do, you need to have a feel for both the cost and the benefits. Another example is to help with coordination. The blue team wants to release a new feature to their web site, but cannot do so until the green team builds a new service to give them crucial data. If the green team estimates they will be done in two months and the blue team estimates that it will take them a month to build the feature, then the blue team knows it's not worthwhile to start today. They can spend at least a month working on some other feature that can be released earlier.
  • 9. Understanding the decision may also lead you to alternative actions that may not involve an estimate. Maybe task A is so much more important than B that you don't need an estimate to put all your available energies into doing it first. Perhaps there is a way for blue team members to work with the green team to get the service built more quickly. Similarly, tracking against a plan should also be driven by how it informs decision making. My usual comment here is that a plan acts as a baseline to help assess changes - if we want to add a new feature, how do we fit it into the FivePoundBag? Estimates can help us understand these trade-offs and thus decide how to respond to change. On a larger scale re-estimating a whole release can help us understand if the project as a whole is still the best use of our energy. A few years ago we had a year-long project that was cancelled after a re-estimate a couple of months in. We saw that as a success because the re-estimate suggested the project would take much longer than we had initially expected - early cancellation allowed the client to move resources to a better target.
  • 10. But remember with tracking against plans that estimates have a limited shelf life. I once remember a gnarly project manager say that plans and estimates were like a lettuce, good for a couple of days, rather witty after a week, and unrecognizable after a couple of months. Many teams find that estimation provides a useful forcing function to get team members to talk to each other. Estimation meetings can help get better understanding of various ways to implement upcoming stories, future architectural directions, and design problems in the code base. Estimation is neither good or bad. If you can work effectively without estimation, then go ahead and do without it. If you think you need some estimates, then make sure you understand their role in decision making. If they are going to affect significant decisions then go ahead and make the best estimates you can. Above all be wary of anyone who tells you they are always needed, or never needed. Any arguments about use of estimation always defer to the agile principle that you should decide what are the right techniques for your particular context.
  • 11. Continuous Integration (CI) Eliminate blind spots so you can build and deliver software more rapidly. Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several times a day. Each check-in is then verified by an automated build, allowing teams to detect problems early. By integrating regularly, you can detect errors quickly, and locate them more easily. Solve problems quickly Because you’re integrating so frequently, there is significantly less back- tracking to discover where things went wrong, so you can spend more time building features. Continuous Integration is cheap. Not continuously integrating is costly. If you don’t follow a continuous approach, you’ll have longer periods between integrations. This makes it exponentially more difficult to find and fix problems. Such integration problems can easily knock a project off-schedule, or cause it to fail altogether.
  • 12. Continuous Integration brings multiple benefits to your organization: Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them in the bud Spend less time debugging and more time adding features Proceed in the confidence you’re building on a solid foundation Stop waiting to find out if your code’s going to work Reduce integration problems allowing you to deliver software more rapidly More than a process Continuous Integration is backed by several important principles and practices. The Practices  Maintain a single source repository  Automate the build  Make your build self-testing  Every commit should build on an integration machine  Keep the build fast  Test in a clone of the production environment  Make it easy for anyone to get the latest executable  Everyone can see what’s happening  Automate deployment
  • 13. How to do it  Developers check out code into their private workspaces.  When done, commit the changes to the repository. The CI server monitors the repository and checks out changes when they occur.  The CI server builds the system and runs unit and integration tests.  The CI server releases deployable artefacts for testing. The CI server assigns a build label to the version of the code it just built.  The CI server informs the team of the successful build.  If the build or tests fail, the CI server alerts the team.  The team fix the issue at the earliest opportunity.  Continue to continually integrate and test throughout the project. Team Responsibilities Check in frequently Don’t check in broken code Don’t check in untested code Don’t check in when the build is broken Don’t go home after checking in until the system builds Many teams develop rituals around these policies, meaning the teams effectively manage themselves, removing the need to enforce policies from on high.
  • 14. Continuous Deployment Continuous Deployment is closely related to Continuous Integration and refers to the release into production of software that passes the automated tests. Essentially, “it is the practice of releasing every good build to users,” explains Jez Humble, author of Continuous Delivery. By adopting both Continuous Integration and Continuous Deployment, you not only reduce risks and catch bugs quickly, but also move rapidly to working software. With low-risk releases, you can quickly adapt to business requirements and user needs. This allows for greater collaboration between ops and delivery, fuelling real change in your organization, and turning your release process into a business advantage.