SlideShare a Scribd company logo
1 of 58
Download to read offline
WordCamp Nashville May 16, 2015
Agile Contracts for
WordPress Consultants
Michael Toppa
Co-founder, CTO
Poka Yoke Designs
www.pokayoke.co
@mtoppa
About me…
Copyright Random House Books
* I’ve been developing for the web since the days of HTML 1.0, when web pages were first painted on cave walls.
* I’ve been involved with WordPress since I developed my first plugin inn 2007, I’ve made contributions to WordPress core, and I was the lead developer
for the NBC Latino news site on the WordPress VIP platform.
* Over the years I’ve worked at Ask Jeeves, E-Trade, Stanford, Georgetown, Penn, WebDevStudios, and others.
* Most of my work has been as a developer, but I’ve also done a good deal of project management and team management, and I’m a big believer in
Agile and Lean practices.
I’m here today representing two companies. The first is PromptWorks, where I work currently. We’re a 15 person consultancy in Philadelphia. We do a lot of
work in Ruby, Rails, Python, JavaScript, and infrastructure automation. We’ve signed over 30 time and materials contracts over the past 2 years, and most
of this talk is based on that experience.
ポカヨケ
www.pokayoke.co
My wife has a new job in Boston, so we’re moving, and I’ll be starting a new job too. I’ll be co-founder and CTO of Poka Yoke Design, and I’m looking forward to working
more with WordPress again. My partner is based in Memphis, so I’m very pleased to be strengthening my ties to the WordPress community here in Tennessee.
Disclaimer #1
image source
* I am not your lawyer

* I am not a lawyer at all

* Nothing you may take from this presentation should be considered legal advise

* I am here to give you business advise, not recommend specific language for use in your contracts
Disclaimer #2
I see WordPress as a web application development framework
* The WordPress community is big and vibrant, and an unfortunate consequence is we tend to talk only to each other. There’s a lot we can learn from people using
other technologies and platforms.

* As my mother says to me, “you think you’re special, you’re not so special”

* WordPress isn’t a full stack framework in the conventional sense, but for many purposes it’s competitive with other frameworks, and for CMS projects, it’s hard to beat

* There’s no particular reason why your approach to negotiating a contract for a WordPress project should be different than a project using a different platform.
Agenda!
1. Agile
2. Professionalism
3. Agile contracting
Before talking about contracts, I want to explain what I mean when I say “Agile” and I want to talk professionalism. Contracts are only meaningful in the context of a
business relationship, so I first want to talk about what those relationships look like.
1. Agile
image source
* It would take a couple days to explain Agile properly, so unfortunately I don’t have time to explain the details of Agile practices, but it’s important that I explain the
beliefs and values that motivate these practices.

* In 2001, a group of 17 very experienced software developers got together and came up with the Agile Manifesto. They had spent their careers struggling with the all
too common pattern in software projects: they would be late, go over budget, quality would suffer as people rushed to meet big deadlines, and customers and
developers would end up frustrated.

* One of the key problems they saw were big plans that were inflexible, which meant opportunities were missed for feedback, learning, and adapting to change.

* Another key problem they saw was a lack of a strong partnership with customers. Energy went into contract negotiation and lengthy documentation instead of working
together to get things done.
Plans vs. experiments
image source
* With a traditional FPFS contract, you’re taking the approach shown on the left: that with enough detailed planning you can correctly understand and estimate all the
specifics of a project, and deliver it on time and on budget.

* With software projects this is hard, because every project is different, and experience has shown that there are always unknowns that you will encounter, no matter
how much you plan, and the fast pace of business often requires changes to the plan.

* We know this, so we deliberately overestimate, to cover the unknowns. We can’t overestimate by too much, because we don’t want to lose the bid, and we don’t want
to overestimate by too little, because we want to actually make some money.

* As the project progresses, you can end up at odds with your customer:

* The work often takes longer than you thought, even beyond your padded estimate, which tempts you to rush and cut corners

* The customer may come up with new business requirements, which threaten the plan

* With an Agile approach, a project is instead seen more as a series of small experiments, which both you and the customer learn from, and you use that learning to
constantly refine your ideas for what to do next.

* Change is welcome, as opposed to being a source of contention.
Incremental & iterative development
image source
* An Agile development approach focuses on developing in small incremental steps, through repeated, iterative cycles.

* The idea is to focus on developing one feature at time, starting with the features that have the most business value. With each feature, you start with the simplest thing
that could possibly work, get feedback, and continue refining until it is good enough.
Frequent delivery of working software
image source
* The product backlog contains a prioritized, high level breakdown of the project, but not in great detail

* When it’s time to take new work from the top of the backlog, the details are worked out, and we estimate how much we’ll get done in the next sprint

* standup…

* demo…

* retrospective…

* feedback is ket
2. Professionalism
* The question is, how do you successfully negotiate a contract that will support this open-ended Agile approach?

* Before I can answer that, I need to first talk about professionalism: what it means to form a professional relationship with your client. This relationship is crucial to how
you approach negotiating a contract, and how you work with your client once the project is underway.
image source
* Like some of the concepts in Lean, like Kaizen and Kanban, we can learn from the Japanese.

* [My time in Japan]

* A hallmark of Japanese culture is the consistent level of politeness, kindness, and excellent service you will receive.

* A forbes.com columnist said: “Wherever I ventured, in stores large and small, I experienced what would be considered white-glove service back home, delivered with
the kind of warmth, enthusiasm and salesmanship typically found in black-and-white movies.”
“There is customer service, and then
there is Japanese customer service”
Tadashi Yanai, CEO, Uniqlo
source
When Uniqlo opened a store in Melbourne, Australia, they spent a full year training the Australian staff, to get them to a Japanese level of quality service
image source
Go to a department store when it first opens in the morning, and no one is there [story about bowing]. If anything goes even slightly wrong, the people helping you will be
profusely apologetic, and work to address the situation as quickly as possible. When you leave a store after making a purchase, the person who helped you will follow
out the door, and bow deeply – staying bowed until you've reached the end of the block.
“I just wanted to hug everyone”
a friend visiting Japan for the first time
The Japanese aren’t known for being friendly, but they actually are, especially if you venture outside of Tokyo. If you make an effort to engage socially, you may be
surprised at the warmth of the interactions you’ll have.
image source
It's typical to see a Japanese worker perform the lowliest job as if it were the best. [cashier story]
image source
People take pride in their work. They are treated with respect by everyone, and paid a living wage. The culture also emphasizes the interests of the collective group over
individual interests.
In Japan,
the customer is king
…?
Westerners typically perceive this as a selfless devotion to the customer: that Japanese workers will do anything to please you, since you are made to feel so well taken
care of.
The customer is king
But this perception is the result of our own Western cultural assumptions, where we presume a hierarchical relationship, and it’s not what’s really going on. The Latin root
of the words service and servant are “servus.” This is also the same word for slave. The Japanese concept of service has a different cultural context.
お持て成し
Omotenashi
* Omotenashi has two different literal translations: “single-hearted” and “achieve.” It’s the combination of these meanings that defines the Japanese concepts of
service and hospitality. It’s about anticipating your customer’s needs, and pro-actively meeting them.

* You and your customer each have a role to play, and you are equals. 

* As a customer, you never tip waiters, taxi drivers, or anyone else. You’re not even expected to say thank you.

* But you are expected to respect the professional judgement of your service provider, and respect their expertise.

* If the customer presses you for something, it means something has gone wrong. It could mean you’re not doing your job well, or…
In Japan,
the customer is incompetent,
but is made to feel like a king
…the customer has overstepped the bounds of their role. Maybe they don’t realize it, or don’t fully understand the ramifications of what they’re asking for. For the sake of
the customer actually having a good experience, and for the sake of your reputation, you have a responsibility to not be pushed into behaving unprofessionally. In this
kind of situation, a Japanese service provider will still be incredibly polite, will patiently try to educate you, and will resist doing the wrong thing with steely resolve.
[bags story]
image source
[gift wrapping story]
“We want a blog”
[client with blog idea story]
“Don’t do it that way,
do it this way”
[client project for modeling energy efficiency]
3. Omotenashi and contracts
A traditional fixed scope, fixed price contract typically implies a typical Western style hierarchical relationship with your client.
Schedule
CostScope
* They will try to squeeze you all 3 sides of the triangle: they’ll try to get the scope - all the features you’ll build - the price, and the schedule, all written into the
contract.

* At the beginning of the project is when you know the least about it. This is when you are given a narrow window to exercise your judgement about the scope and cost
of the project.

* Most of the risk and responsibility is placed on you. It’s not a relationship of equal partners.
“I find your lack of faith disturbing”
Copyright Lucasfilm Ltd
With these kinds of contracts, things almost always start to go wrong part way through the project, and when that happens, you don’t want to end up like this guy.
So you don’t want to go that route - instead you want to take an Agile approach. Maybe you’re an Agile Jedi. You know the Agile Manifesto values collaboration over
contract negotiation. If your potential client has not worked in an Agile way before, you talk to them about adapting to change, about working in short iterations that
deliver functioning features, and velocity to track progress.
Copyright Lucasfilm Ltd
* But that’s not enough. Even if your potential client likes what you’re saying, you’re asking them to take a leap of faith into something they don’t fully understand yet.
So it sounds risky, and they and their lawyers don’t like risk.

* You need to explain the benefits of taking an Agile approach, and not using a FPFS contract, in concrete terms they will find persuasive.
Examine the assumptions of
fixed price - fixed scope (FPFS)
contracts
* Clients have a natural preference for traditional contracts because they spell out what will be delivered, when, and for how much. At first glance, they appear to
protect the client from risk, and put the risk on the contractor.

* So a good starting point is to highlight the misplaced assumptions and expectations your clients may have about FPFS contracts.

* These contracts assume a waterfall development process, where software development is treated like a construction project.
Assumptions of FPFS contracts
Long lead times
There is a long delay between the start of the project and the delivery of a useful product
Assumptions of FPFS contracts
Limited feedback
Feedback is only possible late in the project, and cannot play a large role in shaping deliverables
Assumptions of FPFS contracts
Infrequent, large payments
Payments are made only when major milestones are achieved. This raises the pressure and anxiety for both parties around milestones.
Assumptions of FPFS contracts
Early termination = failed project
The client will have major problems if the project stops at an unplanned point before the scheduled time. If the project was scheduled for 12 months, and the contract is
terminated at 8 months, that can only mean something has gone disastrously wrong.
These assumptions are invalid in an
Agile project!
The Agile approach instead assumes a highly variable, research and development process.
Frequent delivery of working software…
❖ means the customer realizes value at regular intervals
❖ means the contractor can get paid at regular intervals
❖ mitigates risk and liability for both parties
Iterative and incremental… launch early… note this assumes:

* The contractor has a mature and disciplined development process – that they have the ability to deliver complete, tested features in short cycles

* The client will stay strongly engaged in the project throughout it's lifecycle.
Adapting to change decreases risk
Ongoing opportunities for feedback and change also decreases risk. The traditional approach obligates delivery of the original set of requirements, and requests for
change only add time and cost.
FPFS contracts actually increase
risk and cost
* Lack of frequent feedback is a root cause.

* The Agile Contracts Primer mentions an offshore outsourcing company in India that has learned to game the system of FPFS contracts. They know from experience
that the contract's requirements won't end up meeting the customer's actual needs, and they look forward to the ongoing “rent” of the work they're asked to do after
the contract is complete, evolving the unsatisfactory system they built, to meet the true needs.
An Agile contract is more an agreement
about a collaboration process,
and less about deliverables
* FPFS contracts can encourage an adversarial mindset. They require BDUF, which means all the particulars need to be negotiated in detail up front. This pushes worry
about risk to the forefront, and who is bearing the risk.

* An Agile contract instead focuses on having an agreement about how we will work together, to deliver a successful project.

* This gets us much closer to an Omotenashi kind of relationship
Contract documents
❖ Project proposal
❖ Master Services Agreement (MSA)
❖ Scope of Work (SOW)
So what goes into an Agile contract?

* The project proposal makes the case for why the client should choose you, and describes the project at a high level

* If the client likes the proposal you can move on to the MSA and SOW

* The MSA is the “legalese” document that talks about liability, warranties, etc

* The SOW is the agreement describing the work for the project
Project proposal
❖ Supplier information
❖ Project motivation
❖ Initial requirements
❖ Risks
❖ Project participants
❖ Project plan
❖ Deliverables
❖ Project timeline
❖ Project cost
❖ Next steps
* Our project proposals are typically 10 or 11 pages. Things to highlight:

* We make the case for why they should hire us: our depth and breadth of experience, the quality of our work and technical practices, and our other awesome clients

* We make the case for an Agile approach, including emphasizing the importance of their being strongly engaged in the project throughout it’s lifecycle

* We highlight risks we see, that could affect the quality, timeliness, or cost of the project

* Our deliverables section is short: source code, automated tests, browser compatibility, and deployment
Peter Stevens: Types of Contracts
❖ Time and Materials with Variable Scope
❖ Time and Materials with Variable Scope & Cost Ceiling
❖ Fixed Price, Fixed Scope
❖ Time and Materials with Fixed Scope & Cost Ceiling
❖ Phased Development
❖ Fixed Profit
❖ “Money for Nothing, Changes for Free”
❖ Joint Ventures
* There are many possible types of contracts. In the proposal we make the case for a time and materials approach. 

* We use T&M contracts because they’re simple, easy to understand, easy to bill, and provide the flexibility needed for running an Agile project

* At PromptWorks we’ve signed over 30 time and materials contracts in the 2 years we’ve been in business.
Our Time and Materials Approach
❖ Ballpark project estimate based on initial requirements
❖ Do an initial prioritization if not already provided
❖ Give them a dedicated team
❖ Deliver working features weekly
❖ Bill monthly for “developer weeks”
❖ Work continuously to evolve and prioritize features
❖ Stop when it makes sense
* We make it clear this is a non-binding estimate only, based on our initial understanding of the requirements

* A small project estimate can take just an hour or two, a large one can take a day

* Involve at least two people in estimating

* Sometimes you may need to do a 2nd round of estimating, if the initial project scope information turns out to be insufficient
About 50% raise concerns
How do I know we’ll stay on budget?
How do I know we’ll stay on schedule?
These are trust and confidence questions. Building trust is key to an agile approach. If you don’t succeed in building trust, that doesn’t bode well for the project,
regardless of the type of contract
Responses
❖ Provide references
❖ Re-iterate Agile advantages
❖ We can include a “not to exceed” clause
❖ Client can cancel at any time, with 30 days notice
❖ Our TDD code is portable to other contractors
* We work closely with you to prioritize features, so the most important parts of your application are built first. Your budget will go to the most important aspects first.

* We’ll actually want to go live before your launch date, with test users
We still lose about 25%…
…and that’s ok
* Sometimes our price is too high for them

* Sometimes we just can’t win them over.

* Some prefer the lower level of day to day client engagement that typically goes with FPFS contracts

* Some remain attached to the feeling go security and familiarity if an FPFS contract

* Sometimes they face insurmountable bureaucratic obstacles to accepting a T&M contract
* [tell story behind this email]
Master Services Agreement (MSA)
❖ Services
❖ Term
❖ Cooperation
❖ Payment: Expenses
❖ Changes
❖ Warranties
❖ Confidentiality
❖ Ownership
❖ Infringement Indemnity
❖ Limitations of Liability
❖ Force Majure
❖ Miscellaneous
* This is the legalese document

* These are the sections in our MSA
MSA Highlights
❖ Code ownership
❖ Open source aspects
❖ 30 days notice to cancel by either party
❖ Services: “software development”
❖ Beware extreme requirements from clients
❖ “most favored nation” clause
* Sometimes they are uncomfortable with clauses indicating we may use open source software, which the client will not own, and which PromptWorks does not
warranty
Scope of Work (SOW)
Keep it simple
An Omotenashi relationship
* In our project proposals, we observe that traditional BDUF contracts sets the developer and client at odds, as each tries to bend ambiguity in the contractually-
specified features to their advantage. If the big-design estimate is too low, the developer can only absorb so much of the risk before calling it quits.

* We want to be our clients’ partner over the long term. We’ve learned the best way to align our interests and succeed together is to charge on a time-and-materials
basis and cooperatively manage the risks inherent in all software projects.

* We bring our expertise in software development and Agile practices, and we work together with ours clients who bring their domain expertise, business requirements,
and priorities. We work to respect each other’s roles, and together, we do great things.
終わり
Questions?

More Related Content

What's hot

30% faster coder on-boarding when you have a code cookbook
30% faster coder on-boarding when you have a code cookbook30% faster coder on-boarding when you have a code cookbook
30% faster coder on-boarding when you have a code cookbookGabriel Paunescu 🤖
 
Agile and Simpson
Agile and SimpsonAgile and Simpson
Agile and SimpsonHenry Jacob
 
D3 Design By Games Agile India Pune 2005
D3 Design By Games   Agile India   Pune 2005D3 Design By Games   Agile India   Pune 2005
D3 Design By Games Agile India Pune 2005Henry Jacob
 
Rethinking Object Orientation
Rethinking Object OrientationRethinking Object Orientation
Rethinking Object OrientationIASA
 
Rethinking Enterprise Software - Brandolini
Rethinking Enterprise Software - BrandoliniRethinking Enterprise Software - Brandolini
Rethinking Enterprise Software - BrandoliniCodemotion
 
Richardrodger nodeday-2014-final
Richardrodger nodeday-2014-finalRichardrodger nodeday-2014-final
Richardrodger nodeday-2014-finalRichard Rodger
 
19th Athens Big Data Meetup - 2nd Talk - NLP: From news recommendation to wor...
19th Athens Big Data Meetup - 2nd Talk - NLP: From news recommendation to wor...19th Athens Big Data Meetup - 2nd Talk - NLP: From news recommendation to wor...
19th Athens Big Data Meetup - 2nd Talk - NLP: From news recommendation to wor...Athens Big Data
 

What's hot (8)

30% faster coder on-boarding when you have a code cookbook
30% faster coder on-boarding when you have a code cookbook30% faster coder on-boarding when you have a code cookbook
30% faster coder on-boarding when you have a code cookbook
 
Agile and Simpson
Agile and SimpsonAgile and Simpson
Agile and Simpson
 
My Profile
My ProfileMy Profile
My Profile
 
D3 Design By Games Agile India Pune 2005
D3 Design By Games   Agile India   Pune 2005D3 Design By Games   Agile India   Pune 2005
D3 Design By Games Agile India Pune 2005
 
Rethinking Object Orientation
Rethinking Object OrientationRethinking Object Orientation
Rethinking Object Orientation
 
Rethinking Enterprise Software - Brandolini
Rethinking Enterprise Software - BrandoliniRethinking Enterprise Software - Brandolini
Rethinking Enterprise Software - Brandolini
 
Richardrodger nodeday-2014-final
Richardrodger nodeday-2014-finalRichardrodger nodeday-2014-final
Richardrodger nodeday-2014-final
 
19th Athens Big Data Meetup - 2nd Talk - NLP: From news recommendation to wor...
19th Athens Big Data Meetup - 2nd Talk - NLP: From news recommendation to wor...19th Athens Big Data Meetup - 2nd Talk - NLP: From news recommendation to wor...
19th Athens Big Data Meetup - 2nd Talk - NLP: From news recommendation to wor...
 

Viewers also liked

Agile Project Outsourcing - Dealing with RFP and RFI
Agile Project Outsourcing - Dealing with RFP and RFIAgile Project Outsourcing - Dealing with RFP and RFI
Agile Project Outsourcing - Dealing with RFP and RFISiddhi
 
Agile Contracts by Drew Jemilo (Agile2015)
Agile Contracts by Drew Jemilo (Agile2015)Agile Contracts by Drew Jemilo (Agile2015)
Agile Contracts by Drew Jemilo (Agile2015)Drew Jemilo
 
Hype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerHype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerLuminary Labs
 
TEDx Manchester: AI & The Future of Work
TEDx Manchester: AI & The Future of WorkTEDx Manchester: AI & The Future of Work
TEDx Manchester: AI & The Future of WorkVolker Hirsch
 

Viewers also liked (6)

Agile Contracts
Agile ContractsAgile Contracts
Agile Contracts
 
Agile Project Outsourcing - Dealing with RFP and RFI
Agile Project Outsourcing - Dealing with RFP and RFIAgile Project Outsourcing - Dealing with RFP and RFI
Agile Project Outsourcing - Dealing with RFP and RFI
 
Agile Contracts
Agile ContractsAgile Contracts
Agile Contracts
 
Agile Contracts by Drew Jemilo (Agile2015)
Agile Contracts by Drew Jemilo (Agile2015)Agile Contracts by Drew Jemilo (Agile2015)
Agile Contracts by Drew Jemilo (Agile2015)
 
Hype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerHype vs. Reality: The AI Explainer
Hype vs. Reality: The AI Explainer
 
TEDx Manchester: AI & The Future of Work
TEDx Manchester: AI & The Future of WorkTEDx Manchester: AI & The Future of Work
TEDx Manchester: AI & The Future of Work
 

Similar to WordCamp Nashville 2015: Agile Contracts for WordPress Consultants

WordCamp Boston 2015: Agile Contracts for WordPress Consultants
WordCamp Boston 2015: Agile Contracts for WordPress ConsultantsWordCamp Boston 2015: Agile Contracts for WordPress Consultants
WordCamp Boston 2015: Agile Contracts for WordPress Consultantsmtoppa
 
Service Design Network Global Conference 2014 report
Service Design Network Global Conference 2014 reportService Design Network Global Conference 2014 report
Service Design Network Global Conference 2014 reportErik Roscam Abbing
 
Design the Conversation: A case study on making digital banking clear and human
Design the Conversation: A case study on making digital banking clear and humanDesign the Conversation: A case study on making digital banking clear and human
Design the Conversation: A case study on making digital banking clear and humanSara Walsh
 
Project Management in the Real World
Project Management in the Real WorldProject Management in the Real World
Project Management in the Real WorldKate Daly
 
How to Foster Engagement and Understanding Using Agile
How to Foster Engagement and Understanding Using AgileHow to Foster Engagement and Understanding Using Agile
How to Foster Engagement and Understanding Using AgileSalesforce Admins
 
How To Write Proposals That Close Without Lowering Your Prices
How To Write Proposals That Close Without Lowering Your PricesHow To Write Proposals That Close Without Lowering Your Prices
How To Write Proposals That Close Without Lowering Your PricesJonathan Stark
 
Lean Blog Podcast #115 - Mark Graban Interviews Eric Ries on "The Lean Startup"
Lean Blog Podcast #115 - Mark Graban Interviews Eric Ries on "The Lean Startup"Lean Blog Podcast #115 - Mark Graban Interviews Eric Ries on "The Lean Startup"
Lean Blog Podcast #115 - Mark Graban Interviews Eric Ries on "The Lean Startup"Mark Graban
 
Wait what? How to Enhance your Responsive Process with Content Questions
Wait what? How to Enhance your Responsive Process with Content QuestionsWait what? How to Enhance your Responsive Process with Content Questions
Wait what? How to Enhance your Responsive Process with Content QuestionsEileen Webb
 
First Impressions Matter: LeanUX Design of Landing Page #2
First Impressions Matter: LeanUX Design of Landing Page #2First Impressions Matter: LeanUX Design of Landing Page #2
First Impressions Matter: LeanUX Design of Landing Page #2Kazumichi (Mario) Sakata
 
The user group you never knew you had ux camp 2015
The user group you never knew you had   ux camp 2015The user group you never knew you had   ux camp 2015
The user group you never knew you had ux camp 2015Hello Group
 
How 'Open' Changes Product Development
How 'Open' Changes Product DevelopmentHow 'Open' Changes Product Development
How 'Open' Changes Product DevelopmentPhase2
 
(PROJEKTURA) agileadria agile for corporations
(PROJEKTURA) agileadria agile for corporations(PROJEKTURA) agileadria agile for corporations
(PROJEKTURA) agileadria agile for corporationsRatko Mutavdzic
 
Hiring a developer: step by step debugging
Hiring a developer: step by step debuggingHiring a developer: step by step debugging
Hiring a developer: step by step debuggingLaurent Cerveau
 
New globe translations - From Trailing Spouse to Legal Translation
New globe translations - From Trailing Spouse to Legal TranslationNew globe translations - From Trailing Spouse to Legal Translation
New globe translations - From Trailing Spouse to Legal TranslationLorraine Artur de La Villarmois
 
Filling Your Freelance Pipeline
Filling Your Freelance PipelineFilling Your Freelance Pipeline
Filling Your Freelance PipelineMichael Fellows
 

Similar to WordCamp Nashville 2015: Agile Contracts for WordPress Consultants (20)

WordCamp Boston 2015: Agile Contracts for WordPress Consultants
WordCamp Boston 2015: Agile Contracts for WordPress ConsultantsWordCamp Boston 2015: Agile Contracts for WordPress Consultants
WordCamp Boston 2015: Agile Contracts for WordPress Consultants
 
Client vs design
Client vs designClient vs design
Client vs design
 
Service Design Network Global Conference 2014 report
Service Design Network Global Conference 2014 reportService Design Network Global Conference 2014 report
Service Design Network Global Conference 2014 report
 
Design the Conversation: A case study on making digital banking clear and human
Design the Conversation: A case study on making digital banking clear and humanDesign the Conversation: A case study on making digital banking clear and human
Design the Conversation: A case study on making digital banking clear and human
 
Project Management in the Real World
Project Management in the Real WorldProject Management in the Real World
Project Management in the Real World
 
How to Foster Engagement and Understanding Using Agile
How to Foster Engagement and Understanding Using AgileHow to Foster Engagement and Understanding Using Agile
How to Foster Engagement and Understanding Using Agile
 
How To Write Proposals That Close Without Lowering Your Prices
How To Write Proposals That Close Without Lowering Your PricesHow To Write Proposals That Close Without Lowering Your Prices
How To Write Proposals That Close Without Lowering Your Prices
 
Lean Blog Podcast #115 - Mark Graban Interviews Eric Ries on "The Lean Startup"
Lean Blog Podcast #115 - Mark Graban Interviews Eric Ries on "The Lean Startup"Lean Blog Podcast #115 - Mark Graban Interviews Eric Ries on "The Lean Startup"
Lean Blog Podcast #115 - Mark Graban Interviews Eric Ries on "The Lean Startup"
 
Wait what? How to Enhance your Responsive Process with Content Questions
Wait what? How to Enhance your Responsive Process with Content QuestionsWait what? How to Enhance your Responsive Process with Content Questions
Wait what? How to Enhance your Responsive Process with Content Questions
 
First Impressions Matter: LeanUX Design of Landing Page #2
First Impressions Matter: LeanUX Design of Landing Page #2First Impressions Matter: LeanUX Design of Landing Page #2
First Impressions Matter: LeanUX Design of Landing Page #2
 
The user group you never knew you had ux camp 2015
The user group you never knew you had   ux camp 2015The user group you never knew you had   ux camp 2015
The user group you never knew you had ux camp 2015
 
How 'Open' Changes Product Development
How 'Open' Changes Product DevelopmentHow 'Open' Changes Product Development
How 'Open' Changes Product Development
 
(PROJEKTURA) agileadria agile for corporations
(PROJEKTURA) agileadria agile for corporations(PROJEKTURA) agileadria agile for corporations
(PROJEKTURA) agileadria agile for corporations
 
PyTexas 2014
PyTexas   2014PyTexas   2014
PyTexas 2014
 
Hiring a developer: step by step debugging
Hiring a developer: step by step debuggingHiring a developer: step by step debugging
Hiring a developer: step by step debugging
 
Think Digital
Think DigitalThink Digital
Think Digital
 
Ici magazine
Ici magazineIci magazine
Ici magazine
 
Agile presentation notes
Agile presentation notesAgile presentation notes
Agile presentation notes
 
New globe translations - From Trailing Spouse to Legal Translation
New globe translations - From Trailing Spouse to Legal TranslationNew globe translations - From Trailing Spouse to Legal Translation
New globe translations - From Trailing Spouse to Legal Translation
 
Filling Your Freelance Pipeline
Filling Your Freelance PipelineFilling Your Freelance Pipeline
Filling Your Freelance Pipeline
 

More from mtoppa

RubyConf 2022 - From beginner to expert, and back again
RubyConf 2022 - From beginner to expert, and back againRubyConf 2022 - From beginner to expert, and back again
RubyConf 2022 - From beginner to expert, and back againmtoppa
 
RailsConf 2022 - Upgrading Rails: The Dual Boot Way
RailsConf 2022 - Upgrading Rails: The Dual Boot WayRailsConf 2022 - Upgrading Rails: The Dual Boot Way
RailsConf 2022 - Upgrading Rails: The Dual Boot Waymtoppa
 
Applying Omotenashi (Japanese customer service) to your work
Applying Omotenashi (Japanese customer service) to your workApplying Omotenashi (Japanese customer service) to your work
Applying Omotenashi (Japanese customer service) to your workmtoppa
 
Talking to strangers causes train wrecks
Talking to strangers causes train wrecksTalking to strangers causes train wrecks
Talking to strangers causes train wrecksmtoppa
 
A11Y? I18N? L10N? UTF8? WTF? Understanding the connections between: accessib...
A11Y? I18N? L10N? UTF8? WTF? Understanding the connections between:  accessib...A11Y? I18N? L10N? UTF8? WTF? Understanding the connections between:  accessib...
A11Y? I18N? L10N? UTF8? WTF? Understanding the connections between: accessib...mtoppa
 
The promise and peril of Agile and Lean practices
The promise and peril of Agile and Lean practicesThe promise and peril of Agile and Lean practices
The promise and peril of Agile and Lean practicesmtoppa
 
Why do planes crash? Lessons for junior and senior developers
Why do planes crash? Lessons for junior and senior developersWhy do planes crash? Lessons for junior and senior developers
Why do planes crash? Lessons for junior and senior developersmtoppa
 
Boston Ruby Meetup: The promise and peril of Agile and Lean practices
Boston Ruby Meetup: The promise and peril of Agile and Lean practicesBoston Ruby Meetup: The promise and peril of Agile and Lean practices
Boston Ruby Meetup: The promise and peril of Agile and Lean practicesmtoppa
 
A real-life overview of Agile and Scrum
A real-life overview of Agile and ScrumA real-life overview of Agile and Scrum
A real-life overview of Agile and Scrummtoppa
 
WordCamp Nashville 2016: The promise and peril of Agile and Lean practices
WordCamp Nashville 2016: The promise and peril of Agile and Lean practicesWordCamp Nashville 2016: The promise and peril of Agile and Lean practices
WordCamp Nashville 2016: The promise and peril of Agile and Lean practicesmtoppa
 
Dependency Injection for PHP
Dependency Injection for PHPDependency Injection for PHP
Dependency Injection for PHPmtoppa
 
Rails testing: factories or fixtures?
Rails testing: factories or fixtures?Rails testing: factories or fixtures?
Rails testing: factories or fixtures?mtoppa
 
WordCamp Lancaster 2014: A11Y? I18N? L10N? UTF8? WTF?
WordCamp Lancaster 2014: A11Y? I18N? L10N? UTF8? WTF?WordCamp Lancaster 2014: A11Y? I18N? L10N? UTF8? WTF?
WordCamp Lancaster 2014: A11Y? I18N? L10N? UTF8? WTF?mtoppa
 
A real-life overview of Agile workflow practices
A real-life overview of Agile workflow practicesA real-life overview of Agile workflow practices
A real-life overview of Agile workflow practicesmtoppa
 
Why Agile? Why Now?
Why Agile? Why Now?Why Agile? Why Now?
Why Agile? Why Now?mtoppa
 
Object Oriented Programming for WordPress Plugin Development
Object Oriented Programming for WordPress Plugin DevelopmentObject Oriented Programming for WordPress Plugin Development
Object Oriented Programming for WordPress Plugin Developmentmtoppa
 
Dependency Injection for Wordpress
Dependency Injection for WordpressDependency Injection for Wordpress
Dependency Injection for Wordpressmtoppa
 
Clean code for WordPress
Clean code for WordPressClean code for WordPress
Clean code for WordPressmtoppa
 
Dependency Inversion and Dependency Injection in PHP
Dependency Inversion and Dependency Injection in PHPDependency Inversion and Dependency Injection in PHP
Dependency Inversion and Dependency Injection in PHPmtoppa
 
Why Do Planes Crash?
Why Do Planes Crash?Why Do Planes Crash?
Why Do Planes Crash?mtoppa
 

More from mtoppa (20)

RubyConf 2022 - From beginner to expert, and back again
RubyConf 2022 - From beginner to expert, and back againRubyConf 2022 - From beginner to expert, and back again
RubyConf 2022 - From beginner to expert, and back again
 
RailsConf 2022 - Upgrading Rails: The Dual Boot Way
RailsConf 2022 - Upgrading Rails: The Dual Boot WayRailsConf 2022 - Upgrading Rails: The Dual Boot Way
RailsConf 2022 - Upgrading Rails: The Dual Boot Way
 
Applying Omotenashi (Japanese customer service) to your work
Applying Omotenashi (Japanese customer service) to your workApplying Omotenashi (Japanese customer service) to your work
Applying Omotenashi (Japanese customer service) to your work
 
Talking to strangers causes train wrecks
Talking to strangers causes train wrecksTalking to strangers causes train wrecks
Talking to strangers causes train wrecks
 
A11Y? I18N? L10N? UTF8? WTF? Understanding the connections between: accessib...
A11Y? I18N? L10N? UTF8? WTF? Understanding the connections between:  accessib...A11Y? I18N? L10N? UTF8? WTF? Understanding the connections between:  accessib...
A11Y? I18N? L10N? UTF8? WTF? Understanding the connections between: accessib...
 
The promise and peril of Agile and Lean practices
The promise and peril of Agile and Lean practicesThe promise and peril of Agile and Lean practices
The promise and peril of Agile and Lean practices
 
Why do planes crash? Lessons for junior and senior developers
Why do planes crash? Lessons for junior and senior developersWhy do planes crash? Lessons for junior and senior developers
Why do planes crash? Lessons for junior and senior developers
 
Boston Ruby Meetup: The promise and peril of Agile and Lean practices
Boston Ruby Meetup: The promise and peril of Agile and Lean practicesBoston Ruby Meetup: The promise and peril of Agile and Lean practices
Boston Ruby Meetup: The promise and peril of Agile and Lean practices
 
A real-life overview of Agile and Scrum
A real-life overview of Agile and ScrumA real-life overview of Agile and Scrum
A real-life overview of Agile and Scrum
 
WordCamp Nashville 2016: The promise and peril of Agile and Lean practices
WordCamp Nashville 2016: The promise and peril of Agile and Lean practicesWordCamp Nashville 2016: The promise and peril of Agile and Lean practices
WordCamp Nashville 2016: The promise and peril of Agile and Lean practices
 
Dependency Injection for PHP
Dependency Injection for PHPDependency Injection for PHP
Dependency Injection for PHP
 
Rails testing: factories or fixtures?
Rails testing: factories or fixtures?Rails testing: factories or fixtures?
Rails testing: factories or fixtures?
 
WordCamp Lancaster 2014: A11Y? I18N? L10N? UTF8? WTF?
WordCamp Lancaster 2014: A11Y? I18N? L10N? UTF8? WTF?WordCamp Lancaster 2014: A11Y? I18N? L10N? UTF8? WTF?
WordCamp Lancaster 2014: A11Y? I18N? L10N? UTF8? WTF?
 
A real-life overview of Agile workflow practices
A real-life overview of Agile workflow practicesA real-life overview of Agile workflow practices
A real-life overview of Agile workflow practices
 
Why Agile? Why Now?
Why Agile? Why Now?Why Agile? Why Now?
Why Agile? Why Now?
 
Object Oriented Programming for WordPress Plugin Development
Object Oriented Programming for WordPress Plugin DevelopmentObject Oriented Programming for WordPress Plugin Development
Object Oriented Programming for WordPress Plugin Development
 
Dependency Injection for Wordpress
Dependency Injection for WordpressDependency Injection for Wordpress
Dependency Injection for Wordpress
 
Clean code for WordPress
Clean code for WordPressClean code for WordPress
Clean code for WordPress
 
Dependency Inversion and Dependency Injection in PHP
Dependency Inversion and Dependency Injection in PHPDependency Inversion and Dependency Injection in PHP
Dependency Inversion and Dependency Injection in PHP
 
Why Do Planes Crash?
Why Do Planes Crash?Why Do Planes Crash?
Why Do Planes Crash?
 

Recently uploaded

VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...aditipandeya
 
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024APNIC
 
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Callshivangimorya083
 
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779Delhi Call girls
 
Networking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOGNetworking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOGAPNIC
 
How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)Damian Radcliffe
 
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night StandHot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Standkumarajju5765
 
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts servicesonalikaur4
 
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024APNIC
 
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...tanu pandey
 
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...Diya Sharma
 
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersMoving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersDamian Radcliffe
 
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptxAWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptxellan12
 
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Sheetaleventcompany
 
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girlsstephieert
 
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663Call Girls Mumbai
 
Challengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya Shirtrahman018755
 

Recently uploaded (20)

VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
 
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024
 
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
 
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
 
Networking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOGNetworking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOG
 
How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)
 
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night StandHot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
 
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
 
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
 
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
 
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
 
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
 
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersMoving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
 
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptxAWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
 
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
 
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
 
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
 
Challengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya Shirt
 

WordCamp Nashville 2015: Agile Contracts for WordPress Consultants

  • 1. WordCamp Nashville May 16, 2015 Agile Contracts for WordPress Consultants Michael Toppa Co-founder, CTO Poka Yoke Designs www.pokayoke.co @mtoppa
  • 2. About me… Copyright Random House Books * I’ve been developing for the web since the days of HTML 1.0, when web pages were first painted on cave walls. * I’ve been involved with WordPress since I developed my first plugin inn 2007, I’ve made contributions to WordPress core, and I was the lead developer for the NBC Latino news site on the WordPress VIP platform. * Over the years I’ve worked at Ask Jeeves, E-Trade, Stanford, Georgetown, Penn, WebDevStudios, and others. * Most of my work has been as a developer, but I’ve also done a good deal of project management and team management, and I’m a big believer in Agile and Lean practices.
  • 3. I’m here today representing two companies. The first is PromptWorks, where I work currently. We’re a 15 person consultancy in Philadelphia. We do a lot of work in Ruby, Rails, Python, JavaScript, and infrastructure automation. We’ve signed over 30 time and materials contracts over the past 2 years, and most of this talk is based on that experience.
  • 4. ポカヨケ www.pokayoke.co My wife has a new job in Boston, so we’re moving, and I’ll be starting a new job too. I’ll be co-founder and CTO of Poka Yoke Design, and I’m looking forward to working more with WordPress again. My partner is based in Memphis, so I’m very pleased to be strengthening my ties to the WordPress community here in Tennessee.
  • 5. Disclaimer #1 image source * I am not your lawyer * I am not a lawyer at all * Nothing you may take from this presentation should be considered legal advise * I am here to give you business advise, not recommend specific language for use in your contracts
  • 6. Disclaimer #2 I see WordPress as a web application development framework * The WordPress community is big and vibrant, and an unfortunate consequence is we tend to talk only to each other. There’s a lot we can learn from people using other technologies and platforms. * As my mother says to me, “you think you’re special, you’re not so special” * WordPress isn’t a full stack framework in the conventional sense, but for many purposes it’s competitive with other frameworks, and for CMS projects, it’s hard to beat * There’s no particular reason why your approach to negotiating a contract for a WordPress project should be different than a project using a different platform.
  • 7. Agenda! 1. Agile 2. Professionalism 3. Agile contracting Before talking about contracts, I want to explain what I mean when I say “Agile” and I want to talk professionalism. Contracts are only meaningful in the context of a business relationship, so I first want to talk about what those relationships look like.
  • 8. 1. Agile image source * It would take a couple days to explain Agile properly, so unfortunately I don’t have time to explain the details of Agile practices, but it’s important that I explain the beliefs and values that motivate these practices. * In 2001, a group of 17 very experienced software developers got together and came up with the Agile Manifesto. They had spent their careers struggling with the all too common pattern in software projects: they would be late, go over budget, quality would suffer as people rushed to meet big deadlines, and customers and developers would end up frustrated. * One of the key problems they saw were big plans that were inflexible, which meant opportunities were missed for feedback, learning, and adapting to change. * Another key problem they saw was a lack of a strong partnership with customers. Energy went into contract negotiation and lengthy documentation instead of working together to get things done.
  • 9. Plans vs. experiments image source * With a traditional FPFS contract, you’re taking the approach shown on the left: that with enough detailed planning you can correctly understand and estimate all the specifics of a project, and deliver it on time and on budget. * With software projects this is hard, because every project is different, and experience has shown that there are always unknowns that you will encounter, no matter how much you plan, and the fast pace of business often requires changes to the plan. * We know this, so we deliberately overestimate, to cover the unknowns. We can’t overestimate by too much, because we don’t want to lose the bid, and we don’t want to overestimate by too little, because we want to actually make some money. * As the project progresses, you can end up at odds with your customer: * The work often takes longer than you thought, even beyond your padded estimate, which tempts you to rush and cut corners * The customer may come up with new business requirements, which threaten the plan * With an Agile approach, a project is instead seen more as a series of small experiments, which both you and the customer learn from, and you use that learning to constantly refine your ideas for what to do next. * Change is welcome, as opposed to being a source of contention.
  • 10. Incremental & iterative development image source * An Agile development approach focuses on developing in small incremental steps, through repeated, iterative cycles. * The idea is to focus on developing one feature at time, starting with the features that have the most business value. With each feature, you start with the simplest thing that could possibly work, get feedback, and continue refining until it is good enough.
  • 11. Frequent delivery of working software image source * The product backlog contains a prioritized, high level breakdown of the project, but not in great detail * When it’s time to take new work from the top of the backlog, the details are worked out, and we estimate how much we’ll get done in the next sprint * standup… * demo… * retrospective… * feedback is ket
  • 12. 2. Professionalism * The question is, how do you successfully negotiate a contract that will support this open-ended Agile approach? * Before I can answer that, I need to first talk about professionalism: what it means to form a professional relationship with your client. This relationship is crucial to how you approach negotiating a contract, and how you work with your client once the project is underway.
  • 13. image source * Like some of the concepts in Lean, like Kaizen and Kanban, we can learn from the Japanese. * [My time in Japan] * A hallmark of Japanese culture is the consistent level of politeness, kindness, and excellent service you will receive. * A forbes.com columnist said: “Wherever I ventured, in stores large and small, I experienced what would be considered white-glove service back home, delivered with the kind of warmth, enthusiasm and salesmanship typically found in black-and-white movies.”
  • 14. “There is customer service, and then there is Japanese customer service” Tadashi Yanai, CEO, Uniqlo source When Uniqlo opened a store in Melbourne, Australia, they spent a full year training the Australian staff, to get them to a Japanese level of quality service
  • 15. image source Go to a department store when it first opens in the morning, and no one is there [story about bowing]. If anything goes even slightly wrong, the people helping you will be profusely apologetic, and work to address the situation as quickly as possible. When you leave a store after making a purchase, the person who helped you will follow out the door, and bow deeply – staying bowed until you've reached the end of the block.
  • 16. “I just wanted to hug everyone” a friend visiting Japan for the first time The Japanese aren’t known for being friendly, but they actually are, especially if you venture outside of Tokyo. If you make an effort to engage socially, you may be surprised at the warmth of the interactions you’ll have.
  • 17. image source It's typical to see a Japanese worker perform the lowliest job as if it were the best. [cashier story]
  • 18. image source People take pride in their work. They are treated with respect by everyone, and paid a living wage. The culture also emphasizes the interests of the collective group over individual interests.
  • 19. In Japan, the customer is king …? Westerners typically perceive this as a selfless devotion to the customer: that Japanese workers will do anything to please you, since you are made to feel so well taken care of.
  • 20. The customer is king But this perception is the result of our own Western cultural assumptions, where we presume a hierarchical relationship, and it’s not what’s really going on. The Latin root of the words service and servant are “servus.” This is also the same word for slave. The Japanese concept of service has a different cultural context.
  • 21. お持て成し Omotenashi * Omotenashi has two different literal translations: “single-hearted” and “achieve.” It’s the combination of these meanings that defines the Japanese concepts of service and hospitality. It’s about anticipating your customer’s needs, and pro-actively meeting them. * You and your customer each have a role to play, and you are equals. * As a customer, you never tip waiters, taxi drivers, or anyone else. You’re not even expected to say thank you. * But you are expected to respect the professional judgement of your service provider, and respect their expertise. * If the customer presses you for something, it means something has gone wrong. It could mean you’re not doing your job well, or…
  • 22. In Japan, the customer is incompetent, but is made to feel like a king …the customer has overstepped the bounds of their role. Maybe they don’t realize it, or don’t fully understand the ramifications of what they’re asking for. For the sake of the customer actually having a good experience, and for the sake of your reputation, you have a responsibility to not be pushed into behaving unprofessionally. In this kind of situation, a Japanese service provider will still be incredibly polite, will patiently try to educate you, and will resist doing the wrong thing with steely resolve.
  • 25. “We want a blog” [client with blog idea story]
  • 26. “Don’t do it that way, do it this way” [client project for modeling energy efficiency]
  • 27. 3. Omotenashi and contracts A traditional fixed scope, fixed price contract typically implies a typical Western style hierarchical relationship with your client.
  • 28. Schedule CostScope * They will try to squeeze you all 3 sides of the triangle: they’ll try to get the scope - all the features you’ll build - the price, and the schedule, all written into the contract. * At the beginning of the project is when you know the least about it. This is when you are given a narrow window to exercise your judgement about the scope and cost of the project. * Most of the risk and responsibility is placed on you. It’s not a relationship of equal partners.
  • 29. “I find your lack of faith disturbing” Copyright Lucasfilm Ltd With these kinds of contracts, things almost always start to go wrong part way through the project, and when that happens, you don’t want to end up like this guy.
  • 30. So you don’t want to go that route - instead you want to take an Agile approach. Maybe you’re an Agile Jedi. You know the Agile Manifesto values collaboration over contract negotiation. If your potential client has not worked in an Agile way before, you talk to them about adapting to change, about working in short iterations that deliver functioning features, and velocity to track progress.
  • 31. Copyright Lucasfilm Ltd * But that’s not enough. Even if your potential client likes what you’re saying, you’re asking them to take a leap of faith into something they don’t fully understand yet. So it sounds risky, and they and their lawyers don’t like risk. * You need to explain the benefits of taking an Agile approach, and not using a FPFS contract, in concrete terms they will find persuasive.
  • 32. Examine the assumptions of fixed price - fixed scope (FPFS) contracts * Clients have a natural preference for traditional contracts because they spell out what will be delivered, when, and for how much. At first glance, they appear to protect the client from risk, and put the risk on the contractor. * So a good starting point is to highlight the misplaced assumptions and expectations your clients may have about FPFS contracts. * These contracts assume a waterfall development process, where software development is treated like a construction project.
  • 33. Assumptions of FPFS contracts Long lead times There is a long delay between the start of the project and the delivery of a useful product
  • 34. Assumptions of FPFS contracts Limited feedback Feedback is only possible late in the project, and cannot play a large role in shaping deliverables
  • 35. Assumptions of FPFS contracts Infrequent, large payments Payments are made only when major milestones are achieved. This raises the pressure and anxiety for both parties around milestones.
  • 36. Assumptions of FPFS contracts Early termination = failed project The client will have major problems if the project stops at an unplanned point before the scheduled time. If the project was scheduled for 12 months, and the contract is terminated at 8 months, that can only mean something has gone disastrously wrong.
  • 37. These assumptions are invalid in an Agile project! The Agile approach instead assumes a highly variable, research and development process.
  • 38. Frequent delivery of working software… ❖ means the customer realizes value at regular intervals ❖ means the contractor can get paid at regular intervals ❖ mitigates risk and liability for both parties Iterative and incremental… launch early… note this assumes: * The contractor has a mature and disciplined development process – that they have the ability to deliver complete, tested features in short cycles * The client will stay strongly engaged in the project throughout it's lifecycle.
  • 39. Adapting to change decreases risk Ongoing opportunities for feedback and change also decreases risk. The traditional approach obligates delivery of the original set of requirements, and requests for change only add time and cost.
  • 40. FPFS contracts actually increase risk and cost * Lack of frequent feedback is a root cause. * The Agile Contracts Primer mentions an offshore outsourcing company in India that has learned to game the system of FPFS contracts. They know from experience that the contract's requirements won't end up meeting the customer's actual needs, and they look forward to the ongoing “rent” of the work they're asked to do after the contract is complete, evolving the unsatisfactory system they built, to meet the true needs.
  • 41. An Agile contract is more an agreement about a collaboration process, and less about deliverables * FPFS contracts can encourage an adversarial mindset. They require BDUF, which means all the particulars need to be negotiated in detail up front. This pushes worry about risk to the forefront, and who is bearing the risk. * An Agile contract instead focuses on having an agreement about how we will work together, to deliver a successful project. * This gets us much closer to an Omotenashi kind of relationship
  • 42. Contract documents ❖ Project proposal ❖ Master Services Agreement (MSA) ❖ Scope of Work (SOW) So what goes into an Agile contract? * The project proposal makes the case for why the client should choose you, and describes the project at a high level * If the client likes the proposal you can move on to the MSA and SOW * The MSA is the “legalese” document that talks about liability, warranties, etc * The SOW is the agreement describing the work for the project
  • 43. Project proposal ❖ Supplier information ❖ Project motivation ❖ Initial requirements ❖ Risks ❖ Project participants ❖ Project plan ❖ Deliverables ❖ Project timeline ❖ Project cost ❖ Next steps * Our project proposals are typically 10 or 11 pages. Things to highlight: * We make the case for why they should hire us: our depth and breadth of experience, the quality of our work and technical practices, and our other awesome clients * We make the case for an Agile approach, including emphasizing the importance of their being strongly engaged in the project throughout it’s lifecycle * We highlight risks we see, that could affect the quality, timeliness, or cost of the project * Our deliverables section is short: source code, automated tests, browser compatibility, and deployment
  • 44. Peter Stevens: Types of Contracts ❖ Time and Materials with Variable Scope ❖ Time and Materials with Variable Scope & Cost Ceiling ❖ Fixed Price, Fixed Scope ❖ Time and Materials with Fixed Scope & Cost Ceiling ❖ Phased Development ❖ Fixed Profit ❖ “Money for Nothing, Changes for Free” ❖ Joint Ventures * There are many possible types of contracts. In the proposal we make the case for a time and materials approach. * We use T&M contracts because they’re simple, easy to understand, easy to bill, and provide the flexibility needed for running an Agile project * At PromptWorks we’ve signed over 30 time and materials contracts in the 2 years we’ve been in business.
  • 45. Our Time and Materials Approach ❖ Ballpark project estimate based on initial requirements ❖ Do an initial prioritization if not already provided ❖ Give them a dedicated team ❖ Deliver working features weekly ❖ Bill monthly for “developer weeks” ❖ Work continuously to evolve and prioritize features ❖ Stop when it makes sense * We make it clear this is a non-binding estimate only, based on our initial understanding of the requirements * A small project estimate can take just an hour or two, a large one can take a day * Involve at least two people in estimating * Sometimes you may need to do a 2nd round of estimating, if the initial project scope information turns out to be insufficient
  • 46. About 50% raise concerns
  • 47. How do I know we’ll stay on budget? How do I know we’ll stay on schedule? These are trust and confidence questions. Building trust is key to an agile approach. If you don’t succeed in building trust, that doesn’t bode well for the project, regardless of the type of contract
  • 48. Responses ❖ Provide references ❖ Re-iterate Agile advantages ❖ We can include a “not to exceed” clause ❖ Client can cancel at any time, with 30 days notice ❖ Our TDD code is portable to other contractors * We work closely with you to prioritize features, so the most important parts of your application are built first. Your budget will go to the most important aspects first. * We’ll actually want to go live before your launch date, with test users
  • 49. We still lose about 25%…
  • 50. …and that’s ok * Sometimes our price is too high for them * Sometimes we just can’t win them over. * Some prefer the lower level of day to day client engagement that typically goes with FPFS contracts * Some remain attached to the feeling go security and familiarity if an FPFS contract * Sometimes they face insurmountable bureaucratic obstacles to accepting a T&M contract
  • 51. * [tell story behind this email]
  • 52. Master Services Agreement (MSA) ❖ Services ❖ Term ❖ Cooperation ❖ Payment: Expenses ❖ Changes ❖ Warranties ❖ Confidentiality ❖ Ownership ❖ Infringement Indemnity ❖ Limitations of Liability ❖ Force Majure ❖ Miscellaneous * This is the legalese document * These are the sections in our MSA
  • 53. MSA Highlights ❖ Code ownership ❖ Open source aspects ❖ 30 days notice to cancel by either party ❖ Services: “software development” ❖ Beware extreme requirements from clients ❖ “most favored nation” clause * Sometimes they are uncomfortable with clauses indicating we may use open source software, which the client will not own, and which PromptWorks does not warranty
  • 54. Scope of Work (SOW) Keep it simple
  • 55.
  • 56. An Omotenashi relationship * In our project proposals, we observe that traditional BDUF contracts sets the developer and client at odds, as each tries to bend ambiguity in the contractually- specified features to their advantage. If the big-design estimate is too low, the developer can only absorb so much of the risk before calling it quits. * We want to be our clients’ partner over the long term. We’ve learned the best way to align our interests and succeed together is to charge on a time-and-materials basis and cooperatively manage the risks inherent in all software projects. * We bring our expertise in software development and Agile practices, and we work together with ours clients who bring their domain expertise, business requirements, and priorities. We work to respect each other’s roles, and together, we do great things.