SlideShare ist ein Scribd-Unternehmen logo
1 von 64
Business & Strategy · Maxime Topolov @mtopolov · 24 September
2013
DRUPAL FIXED BUDGET PROJECTS:
THE ART OF ESTIMATES
100 Drupal Experts
50 projects per year
@adyax
Forecasting
& Estimates
4 tasks job
"Some things are so
unexpected that no one is
prepared for them."
-- Leo Rosten
Estimated by senior,
done by junior
Perimeter misunderstanding or changesPerimeter misunderstanding or changes
Human factor
What do we need to
estimate ?
What do we need to
estimate ?
S1 : Simple site : no authenticated trafic, less than 10 content types,
less than 20 templates, no external data flow, no or simple workflow
S2 : Medium site : simple user related features like comments, voting,
sharing, from 10 to 20 content types, from 20 to 50 templates, some
simple XML data sources, workflow and custom business features,
simple data migration
S3 : Complex site : transactional web site with high trafic (e-
commerce, social network, intranets), more than 20 content types,
more than 50 templates, many custom business logic and several
complex data sources, advanced data migration
Site complexity s1, S2, S3
Front-end complexity F1, F2, F3
F1 : Standard desktop output. Site is mostly blocs based, structure is
simple. No front-end animations, not much Javascript. No accessibility.
No mobile support. IE10+, FireFox, Chrome & Safari support.
F2 : More advanced front end with a mobile version for some templates.
Some basic front-end JS animations. Basic level of accessibility support.
IE8+ is now supported too. iOS & Android last two versions support.
F3 : Full-responsive design with 3 break-points. Level 2 of accessibility
support. IE6+ (degraded mode) support. Responsive tested in iOS,
Android, Windows Phone, UC Browser, Opera mini.
Drupal & modules install and setup
S1 : 2 to 3 days
S2 : 4 to 7 days
S3 : 8 to 15 days
Couple of days to setup :
Redmine,
Users,
Mailing lists,
etc...
Page titles
URLS
ANALYTIC
S
AD
PANELS
MICRODATA
CONTEXT
S
SEO, URL, page titles, ads, analytics
S1 : 3 days
S2 : 5 days
S3 : 10 days
TEMPLATESTEMPLATES
why templates are so important
TasksTasks HoursHours F1F1 HoursHours F2F2 HoursHours F3F3
Sketching 1 2 4
Wireframes &
validation
2 4 8
Design 4 10 16
HTML 3 6 16
Drupal templating* 8 12 16
SCARY
TOTALS
18 24 60
* complete bullshit, since Drupal templating strongly depends on features
Data migration
Data migration per content type
From Drupal : 1 day
From Structured DB : 2-3
days
From HTML : hell
EACH DEPLOY COSTs YOU $$$
Drupal Clouds* : 0,5 days
Capistrano like : 1 day
Old School : 3 days
* Acquia Managed Cloud, Commerce
Platform, Pantheon
Tests & QATests & QA
how much you test ?
S1 : 15% dev days
S2 : 20% dev days
S3 : 25 to 30% dev
days
Management
how much time to manage
S1 : 10% dev+qa days
S2 : 15% dev+qa days
S3 : 25% dev+qa days
Specifications
How much specifications
S1 DaysS1 Days S2 DaysS2 Days S3 DaysS3 Days
Content types 2 4 7+
External systems 0 3 10+
Workflow 0 1 5+
User related features 0 2 5+
Back-office 1 3 5+
Front-end 3 5 15+
SEO & Analytics 0,5 1 5+
Data migration 0 4 15+
Search 1 3 5+
Wait...
FEATURESFEATURES
User
Centric
RFPs
User centric RFP
Detailled presentation of features...
...but spreaded across several user stories.
You’ll need to be careful with templates and site structure...
...and with SEO, Analytics, Contexts, etc...
Page
Centric
RFPs
page centric RFPs
Easy to count templates
You’ll need to be carefull with business rules (why this
magic bloc actually appears on that particular page) and the
back-office (you need a dashboard for that ? really ?)
Features List
RFPs
page centric RFPs
Easy to get features
You almost have to imagine the templates, contexts and
probably back-office features would not be described.
COSTS
HIDDEN COSTS
Back-office clean up and theming
Workflow, notifications and user permissions
WYSIYWG setup, CSS clean up
Optimisations and architecture fine tuning
How to avoid being the
most expensive bidder.
avoid being the most expensive
Be precise in your quotes. Describe exactly what you’ll do. Usual
number of rows in a quote : 20 (S1), 50 (S2) or 100 (S3)
Add as much options as you can.
In case of unclear feature, take low level estimate and explain exactly
what you’ll provide.
...or underestimate your build and bet on the run (dangerous strategy
usually employed by big IT companies)
BUILD PHASEBUILD PHASE
What's measured
improves
Redmine & timelogs
1 line in your quote = 1 super task in redmine
Any issue must be a subtask of a quote-based super task
Force everyone to log time daily (specially project managers)
project ‘backlog’
Your quote data Actual project data
sprint ‘backlog’
timelog take home messages
Everybody must log time
Keep the link between your initial quote and actual issues & tasks
Share estimates with developers & QA so they can warn you if you go
out of scope.
Stick to the plan, even during panic periods. (Yeah, i’ll log my hours next
week, we have a release now...)
Credits & Debits
how to manage change requests keeping
client happy
Credits & Debits
how to manage change requests keeping
client happy
credits & debits doc
change requests take home messages
Being precise in the initial quote, makes life easier when you need to bill
changes
If possible, don’t send many small bills but keep track of evolutions in a
credit / debit shared doc
When doing evolutions quotes keep in mind that the price should
include the dev of the evolution itself and the integration into the site
(which actually may be more complex thant the feature itself)
The STOP day.The STOP day.
Never ending acceptanceNever ending acceptance
avoid never ending acceptance
You do agile bla bla but yet you always have this final acceptance
period.
Acceptance must be time boxed. You MUST define, with the client a
precise period of acceptance.
Days / weeks before the release define with your client ‘blocker’ issues.
Explain to the client what happens during the guarantee period.
Avoid doing new not blocking features during the acceptance.
Support & Maintenance
100 Drupal Experts
50 projects per year
@adyax
THANK YOU!
WHAT DID YOU THINK?
Locate this session at the
DrupalCon Prague website:
http://prague2013.drupal.org/schedule
Click the “Take the survey” link

Weitere ähnliche Inhalte

Was ist angesagt?

Scaling Your Web Application
Scaling Your Web ApplicationScaling Your Web Application
Scaling Your Web ApplicationKetan Deshmukh
 
cPProtect - cPanel backup made easy, Dropbox and Amazon S3 as backup locations
cPProtect - cPanel backup made easy, Dropbox and Amazon S3 as backup locationscPProtect - cPanel backup made easy, Dropbox and Amazon S3 as backup locations
cPProtect - cPanel backup made easy, Dropbox and Amazon S3 as backup locationsBrRandD
 
Modern Static Site with GatsbyJS
Modern Static Site with GatsbyJSModern Static Site with GatsbyJS
Modern Static Site with GatsbyJSRiza Fahmi
 
SenchaCon 2016: Turbocharge your Ext JS App - Per Minborg, Anselm McClain, Jo...
SenchaCon 2016: Turbocharge your Ext JS App - Per Minborg, Anselm McClain, Jo...SenchaCon 2016: Turbocharge your Ext JS App - Per Minborg, Anselm McClain, Jo...
SenchaCon 2016: Turbocharge your Ext JS App - Per Minborg, Anselm McClain, Jo...Sencha
 
Backend & Frontend architecture scalability & websockets
Backend & Frontend architecture scalability & websocketsBackend & Frontend architecture scalability & websockets
Backend & Frontend architecture scalability & websocketsAnne Jan Brouwer
 
Caching Strategies for Scaling Drupal: Common Missteps vs Best Practices
Caching Strategies for Scaling Drupal: Common Missteps vs Best PracticesCaching Strategies for Scaling Drupal: Common Missteps vs Best Practices
Caching Strategies for Scaling Drupal: Common Missteps vs Best PracticesAcquia
 
Build WordPress themes like a heavyweight - WordCamp Lancaster 2013
Build WordPress themes like a heavyweight - WordCamp Lancaster 2013Build WordPress themes like a heavyweight - WordCamp Lancaster 2013
Build WordPress themes like a heavyweight - WordCamp Lancaster 2013Jonny Allbut
 
Bag Of Tricks From Iusethis
Bag Of Tricks From IusethisBag Of Tricks From Iusethis
Bag Of Tricks From IusethisMarcus Ramberg
 

Was ist angesagt? (10)

Scaling Your Web Application
Scaling Your Web ApplicationScaling Your Web Application
Scaling Your Web Application
 
cPProtect - cPanel backup made easy, Dropbox and Amazon S3 as backup locations
cPProtect - cPanel backup made easy, Dropbox and Amazon S3 as backup locationscPProtect - cPanel backup made easy, Dropbox and Amazon S3 as backup locations
cPProtect - cPanel backup made easy, Dropbox and Amazon S3 as backup locations
 
Modern Static Site with GatsbyJS
Modern Static Site with GatsbyJSModern Static Site with GatsbyJS
Modern Static Site with GatsbyJS
 
Lightswitch
LightswitchLightswitch
Lightswitch
 
Ajax
AjaxAjax
Ajax
 
SenchaCon 2016: Turbocharge your Ext JS App - Per Minborg, Anselm McClain, Jo...
SenchaCon 2016: Turbocharge your Ext JS App - Per Minborg, Anselm McClain, Jo...SenchaCon 2016: Turbocharge your Ext JS App - Per Minborg, Anselm McClain, Jo...
SenchaCon 2016: Turbocharge your Ext JS App - Per Minborg, Anselm McClain, Jo...
 
Backend & Frontend architecture scalability & websockets
Backend & Frontend architecture scalability & websocketsBackend & Frontend architecture scalability & websockets
Backend & Frontend architecture scalability & websockets
 
Caching Strategies for Scaling Drupal: Common Missteps vs Best Practices
Caching Strategies for Scaling Drupal: Common Missteps vs Best PracticesCaching Strategies for Scaling Drupal: Common Missteps vs Best Practices
Caching Strategies for Scaling Drupal: Common Missteps vs Best Practices
 
Build WordPress themes like a heavyweight - WordCamp Lancaster 2013
Build WordPress themes like a heavyweight - WordCamp Lancaster 2013Build WordPress themes like a heavyweight - WordCamp Lancaster 2013
Build WordPress themes like a heavyweight - WordCamp Lancaster 2013
 
Bag Of Tricks From Iusethis
Bag Of Tricks From IusethisBag Of Tricks From Iusethis
Bag Of Tricks From Iusethis
 

Ähnlich wie Fixed Budget Drupal Projects: The Art of Estimates

Lessons from Building Large-Scale, Multi-Cloud, SaaS Software at Databricks
Lessons from Building Large-Scale, Multi-Cloud, SaaS Software at DatabricksLessons from Building Large-Scale, Multi-Cloud, SaaS Software at Databricks
Lessons from Building Large-Scale, Multi-Cloud, SaaS Software at DatabricksDatabricks
 
Your Roadmap for An Enterprise Graph Strategy
Your Roadmap for An Enterprise Graph StrategyYour Roadmap for An Enterprise Graph Strategy
Your Roadmap for An Enterprise Graph StrategyNeo4j
 
Neo4j GraphTour New York_EY Presentation_Michael Moore
Neo4j GraphTour New York_EY Presentation_Michael MooreNeo4j GraphTour New York_EY Presentation_Michael Moore
Neo4j GraphTour New York_EY Presentation_Michael MooreNeo4j
 
Resume_Md ZakirHussain
Resume_Md ZakirHussainResume_Md ZakirHussain
Resume_Md ZakirHussainzakir hussain
 
30 billion requests per day with a NoSQL architecture (2013)
30 billion requests per day with a NoSQL architecture (2013)30 billion requests per day with a NoSQL architecture (2013)
30 billion requests per day with a NoSQL architecture (2013)Julien SIMON
 
Big Data Analytics in the Cloud with Microsoft Azure
Big Data Analytics in the Cloud with Microsoft AzureBig Data Analytics in the Cloud with Microsoft Azure
Big Data Analytics in the Cloud with Microsoft AzureMark Kromer
 
Maximize Big Data ROI via Best of Breed Patterns and Practices
Maximize Big Data ROI via Best of Breed Patterns and PracticesMaximize Big Data ROI via Best of Breed Patterns and Practices
Maximize Big Data ROI via Best of Breed Patterns and PracticesJeff Bertman
 
Your Roadmap for An Enterprise Graph Strategy
Your Roadmap for An Enterprise Graph StrategyYour Roadmap for An Enterprise Graph Strategy
Your Roadmap for An Enterprise Graph StrategyNeo4j
 
Your Roadmap for An Enterprise Graph Strategy
Your Roadmap for An Enterprise Graph Strategy Your Roadmap for An Enterprise Graph Strategy
Your Roadmap for An Enterprise Graph Strategy Neo4j
 

Ähnlich wie Fixed Budget Drupal Projects: The Art of Estimates (20)

Lessons from Building Large-Scale, Multi-Cloud, SaaS Software at Databricks
Lessons from Building Large-Scale, Multi-Cloud, SaaS Software at DatabricksLessons from Building Large-Scale, Multi-Cloud, SaaS Software at Databricks
Lessons from Building Large-Scale, Multi-Cloud, SaaS Software at Databricks
 
Your Roadmap for An Enterprise Graph Strategy
Your Roadmap for An Enterprise Graph StrategyYour Roadmap for An Enterprise Graph Strategy
Your Roadmap for An Enterprise Graph Strategy
 
resume_abdul_up
resume_abdul_upresume_abdul_up
resume_abdul_up
 
Neo4j GraphTour New York_EY Presentation_Michael Moore
Neo4j GraphTour New York_EY Presentation_Michael MooreNeo4j GraphTour New York_EY Presentation_Michael Moore
Neo4j GraphTour New York_EY Presentation_Michael Moore
 
Zakir_Hussain_cv
Zakir_Hussain_cvZakir_Hussain_cv
Zakir_Hussain_cv
 
Resume - Nagaraj G B
Resume - Nagaraj G BResume - Nagaraj G B
Resume - Nagaraj G B
 
SEO for Large Websites
SEO for Large WebsitesSEO for Large Websites
SEO for Large Websites
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Abhishek jaiswal
Abhishek jaiswalAbhishek jaiswal
Abhishek jaiswal
 
Resume_Parthiban_Ranganathan
Resume_Parthiban_RanganathanResume_Parthiban_Ranganathan
Resume_Parthiban_Ranganathan
 
ZakirHussain
ZakirHussainZakirHussain
ZakirHussain
 
Resume_Md ZakirHussain
Resume_Md ZakirHussainResume_Md ZakirHussain
Resume_Md ZakirHussain
 
IBM Rational HATS Overview 2013
IBM Rational HATS Overview 2013IBM Rational HATS Overview 2013
IBM Rational HATS Overview 2013
 
30 billion requests per day with a NoSQL architecture (2013)
30 billion requests per day with a NoSQL architecture (2013)30 billion requests per day with a NoSQL architecture (2013)
30 billion requests per day with a NoSQL architecture (2013)
 
Big Data Analytics in the Cloud with Microsoft Azure
Big Data Analytics in the Cloud with Microsoft AzureBig Data Analytics in the Cloud with Microsoft Azure
Big Data Analytics in the Cloud with Microsoft Azure
 
Maximize Big Data ROI via Best of Breed Patterns and Practices
Maximize Big Data ROI via Best of Breed Patterns and PracticesMaximize Big Data ROI via Best of Breed Patterns and Practices
Maximize Big Data ROI via Best of Breed Patterns and Practices
 
Resume
ResumeResume
Resume
 
Your Roadmap for An Enterprise Graph Strategy
Your Roadmap for An Enterprise Graph StrategyYour Roadmap for An Enterprise Graph Strategy
Your Roadmap for An Enterprise Graph Strategy
 
Murali Tummala Resume
Murali Tummala ResumeMurali Tummala Resume
Murali Tummala Resume
 
Your Roadmap for An Enterprise Graph Strategy
Your Roadmap for An Enterprise Graph Strategy Your Roadmap for An Enterprise Graph Strategy
Your Roadmap for An Enterprise Graph Strategy
 

Mehr von Adyax

Growing a Drupalshop from 1 to 12M€
Growing a Drupalshop from 1 to 12M€Growing a Drupalshop from 1 to 12M€
Growing a Drupalshop from 1 to 12M€Adyax
 
Applications métier avec Drupal
Applications métier avec DrupalApplications métier avec Drupal
Applications métier avec DrupalAdyax
 
Multiple countries & multilingual e-commerce platforms using Drupal
Multiple countries & multilingual e-commerce platforms using DrupalMultiple countries & multilingual e-commerce platforms using Drupal
Multiple countries & multilingual e-commerce platforms using DrupalAdyax
 
Estimation de projets Drupal
Estimation de projets DrupalEstimation de projets Drupal
Estimation de projets DrupalAdyax
 
Drupal n'est pas seulement un CMS
Drupal n'est pas seulement un CMSDrupal n'est pas seulement un CMS
Drupal n'est pas seulement un CMSAdyax
 
Réaliser un site e-commerce multi-pays et multilingue connecté à SAP
Réaliser un site e-commerce multi-pays et multilingue connecté à SAPRéaliser un site e-commerce multi-pays et multilingue connecté à SAP
Réaliser un site e-commerce multi-pays et multilingue connecté à SAPAdyax
 
Présentation de Drupal
Présentation de DrupalPrésentation de Drupal
Présentation de DrupalAdyax
 
Cours 3/3 - Architecture Web
Cours 3/3 - Architecture WebCours 3/3 - Architecture Web
Cours 3/3 - Architecture WebAdyax
 
Cours 2/3 - Architecture Web
Cours 2/3 - Architecture WebCours 2/3 - Architecture Web
Cours 2/3 - Architecture WebAdyax
 
Cours 1/3 "Architecture Web"
Cours 1/3 "Architecture Web"Cours 1/3 "Architecture Web"
Cours 1/3 "Architecture Web"Adyax
 
Gestion multi-pays & multilingue avec Drupal
Gestion multi-pays & multilingue avec DrupalGestion multi-pays & multilingue avec Drupal
Gestion multi-pays & multilingue avec DrupalAdyax
 
Gestion des médias dans Drupal
Gestion des médias dans DrupalGestion des médias dans Drupal
Gestion des médias dans DrupalAdyax
 
Varnish
VarnishVarnish
VarnishAdyax
 
La mobilité dans Drupal
La mobilité dans DrupalLa mobilité dans Drupal
La mobilité dans DrupalAdyax
 
Drupal + Magento pour la plus puissante plateforme e-Commerce
Drupal + Magento pour la plus puissante plateforme e-CommerceDrupal + Magento pour la plus puissante plateforme e-Commerce
Drupal + Magento pour la plus puissante plateforme e-CommerceAdyax
 
eCommerce sur Ipad et autres tablettes tactiles
eCommerce sur Ipad et autres tablettes tactileseCommerce sur Ipad et autres tablettes tactiles
eCommerce sur Ipad et autres tablettes tactilesAdyax
 
For a Social Local and Mobile Drupal
For a Social Local and Mobile DrupalFor a Social Local and Mobile Drupal
For a Social Local and Mobile DrupalAdyax
 
Réussir son projet Drupal
Réussir son projet DrupalRéussir son projet Drupal
Réussir son projet DrupalAdyax
 
Drupal usage by example : World Food Programme
Drupal usage by example : World Food ProgrammeDrupal usage by example : World Food Programme
Drupal usage by example : World Food ProgrammeAdyax
 
Learn How and Why Drupal was used for www.gouvernement.fr
Learn How and Why Drupal was used for www.gouvernement.frLearn How and Why Drupal was used for www.gouvernement.fr
Learn How and Why Drupal was used for www.gouvernement.frAdyax
 

Mehr von Adyax (20)

Growing a Drupalshop from 1 to 12M€
Growing a Drupalshop from 1 to 12M€Growing a Drupalshop from 1 to 12M€
Growing a Drupalshop from 1 to 12M€
 
Applications métier avec Drupal
Applications métier avec DrupalApplications métier avec Drupal
Applications métier avec Drupal
 
Multiple countries & multilingual e-commerce platforms using Drupal
Multiple countries & multilingual e-commerce platforms using DrupalMultiple countries & multilingual e-commerce platforms using Drupal
Multiple countries & multilingual e-commerce platforms using Drupal
 
Estimation de projets Drupal
Estimation de projets DrupalEstimation de projets Drupal
Estimation de projets Drupal
 
Drupal n'est pas seulement un CMS
Drupal n'est pas seulement un CMSDrupal n'est pas seulement un CMS
Drupal n'est pas seulement un CMS
 
Réaliser un site e-commerce multi-pays et multilingue connecté à SAP
Réaliser un site e-commerce multi-pays et multilingue connecté à SAPRéaliser un site e-commerce multi-pays et multilingue connecté à SAP
Réaliser un site e-commerce multi-pays et multilingue connecté à SAP
 
Présentation de Drupal
Présentation de DrupalPrésentation de Drupal
Présentation de Drupal
 
Cours 3/3 - Architecture Web
Cours 3/3 - Architecture WebCours 3/3 - Architecture Web
Cours 3/3 - Architecture Web
 
Cours 2/3 - Architecture Web
Cours 2/3 - Architecture WebCours 2/3 - Architecture Web
Cours 2/3 - Architecture Web
 
Cours 1/3 "Architecture Web"
Cours 1/3 "Architecture Web"Cours 1/3 "Architecture Web"
Cours 1/3 "Architecture Web"
 
Gestion multi-pays & multilingue avec Drupal
Gestion multi-pays & multilingue avec DrupalGestion multi-pays & multilingue avec Drupal
Gestion multi-pays & multilingue avec Drupal
 
Gestion des médias dans Drupal
Gestion des médias dans DrupalGestion des médias dans Drupal
Gestion des médias dans Drupal
 
Varnish
VarnishVarnish
Varnish
 
La mobilité dans Drupal
La mobilité dans DrupalLa mobilité dans Drupal
La mobilité dans Drupal
 
Drupal + Magento pour la plus puissante plateforme e-Commerce
Drupal + Magento pour la plus puissante plateforme e-CommerceDrupal + Magento pour la plus puissante plateforme e-Commerce
Drupal + Magento pour la plus puissante plateforme e-Commerce
 
eCommerce sur Ipad et autres tablettes tactiles
eCommerce sur Ipad et autres tablettes tactileseCommerce sur Ipad et autres tablettes tactiles
eCommerce sur Ipad et autres tablettes tactiles
 
For a Social Local and Mobile Drupal
For a Social Local and Mobile DrupalFor a Social Local and Mobile Drupal
For a Social Local and Mobile Drupal
 
Réussir son projet Drupal
Réussir son projet DrupalRéussir son projet Drupal
Réussir son projet Drupal
 
Drupal usage by example : World Food Programme
Drupal usage by example : World Food ProgrammeDrupal usage by example : World Food Programme
Drupal usage by example : World Food Programme
 
Learn How and Why Drupal was used for www.gouvernement.fr
Learn How and Why Drupal was used for www.gouvernement.frLearn How and Why Drupal was used for www.gouvernement.fr
Learn How and Why Drupal was used for www.gouvernement.fr
 

Kürzlich hochgeladen

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 

Kürzlich hochgeladen (20)

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 

Fixed Budget Drupal Projects: The Art of Estimates

  • 1. Business & Strategy · Maxime Topolov @mtopolov · 24 September 2013 DRUPAL FIXED BUDGET PROJECTS: THE ART OF ESTIMATES
  • 2. 100 Drupal Experts 50 projects per year @adyax
  • 4.
  • 5.
  • 6.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12. "Some things are so unexpected that no one is prepared for them." -- Leo Rosten
  • 14. Perimeter misunderstanding or changesPerimeter misunderstanding or changes
  • 16. What do we need to estimate ? What do we need to estimate ?
  • 17. S1 : Simple site : no authenticated trafic, less than 10 content types, less than 20 templates, no external data flow, no or simple workflow S2 : Medium site : simple user related features like comments, voting, sharing, from 10 to 20 content types, from 20 to 50 templates, some simple XML data sources, workflow and custom business features, simple data migration S3 : Complex site : transactional web site with high trafic (e- commerce, social network, intranets), more than 20 content types, more than 50 templates, many custom business logic and several complex data sources, advanced data migration Site complexity s1, S2, S3
  • 18. Front-end complexity F1, F2, F3 F1 : Standard desktop output. Site is mostly blocs based, structure is simple. No front-end animations, not much Javascript. No accessibility. No mobile support. IE10+, FireFox, Chrome & Safari support. F2 : More advanced front end with a mobile version for some templates. Some basic front-end JS animations. Basic level of accessibility support. IE8+ is now supported too. iOS & Android last two versions support. F3 : Full-responsive design with 3 break-points. Level 2 of accessibility support. IE6+ (degraded mode) support. Responsive tested in iOS, Android, Windows Phone, UC Browser, Opera mini.
  • 19.
  • 20. Drupal & modules install and setup S1 : 2 to 3 days S2 : 4 to 7 days S3 : 8 to 15 days
  • 21. Couple of days to setup : Redmine, Users, Mailing lists, etc...
  • 23. SEO, URL, page titles, ads, analytics S1 : 3 days S2 : 5 days S3 : 10 days
  • 25. why templates are so important TasksTasks HoursHours F1F1 HoursHours F2F2 HoursHours F3F3 Sketching 1 2 4 Wireframes & validation 2 4 8 Design 4 10 16 HTML 3 6 16 Drupal templating* 8 12 16 SCARY TOTALS 18 24 60 * complete bullshit, since Drupal templating strongly depends on features
  • 27. Data migration per content type From Drupal : 1 day From Structured DB : 2-3 days From HTML : hell
  • 28.
  • 29. EACH DEPLOY COSTs YOU $$$ Drupal Clouds* : 0,5 days Capistrano like : 1 day Old School : 3 days * Acquia Managed Cloud, Commerce Platform, Pantheon
  • 31. how much you test ? S1 : 15% dev days S2 : 20% dev days S3 : 25 to 30% dev days
  • 33. how much time to manage S1 : 10% dev+qa days S2 : 15% dev+qa days S3 : 25% dev+qa days
  • 35. How much specifications S1 DaysS1 Days S2 DaysS2 Days S3 DaysS3 Days Content types 2 4 7+ External systems 0 3 10+ Workflow 0 1 5+ User related features 0 2 5+ Back-office 1 3 5+ Front-end 3 5 15+ SEO & Analytics 0,5 1 5+ Data migration 0 4 15+ Search 1 3 5+
  • 38.
  • 40. User centric RFP Detailled presentation of features... ...but spreaded across several user stories. You’ll need to be careful with templates and site structure... ...and with SEO, Analytics, Contexts, etc...
  • 42. page centric RFPs Easy to count templates You’ll need to be carefull with business rules (why this magic bloc actually appears on that particular page) and the back-office (you need a dashboard for that ? really ?)
  • 44. page centric RFPs Easy to get features You almost have to imagine the templates, contexts and probably back-office features would not be described.
  • 45. COSTS
  • 46. HIDDEN COSTS Back-office clean up and theming Workflow, notifications and user permissions WYSIYWG setup, CSS clean up Optimisations and architecture fine tuning
  • 47. How to avoid being the most expensive bidder.
  • 48. avoid being the most expensive Be precise in your quotes. Describe exactly what you’ll do. Usual number of rows in a quote : 20 (S1), 50 (S2) or 100 (S3) Add as much options as you can. In case of unclear feature, take low level estimate and explain exactly what you’ll provide. ...or underestimate your build and bet on the run (dangerous strategy usually employed by big IT companies)
  • 51. Redmine & timelogs 1 line in your quote = 1 super task in redmine Any issue must be a subtask of a quote-based super task Force everyone to log time daily (specially project managers)
  • 52.
  • 53. project ‘backlog’ Your quote data Actual project data
  • 55. timelog take home messages Everybody must log time Keep the link between your initial quote and actual issues & tasks Share estimates with developers & QA so they can warn you if you go out of scope. Stick to the plan, even during panic periods. (Yeah, i’ll log my hours next week, we have a release now...)
  • 56. Credits & Debits how to manage change requests keeping client happy Credits & Debits how to manage change requests keeping client happy
  • 58. change requests take home messages Being precise in the initial quote, makes life easier when you need to bill changes If possible, don’t send many small bills but keep track of evolutions in a credit / debit shared doc When doing evolutions quotes keep in mind that the price should include the dev of the evolution itself and the integration into the site (which actually may be more complex thant the feature itself)
  • 59. The STOP day.The STOP day.
  • 60. Never ending acceptanceNever ending acceptance
  • 61. avoid never ending acceptance You do agile bla bla but yet you always have this final acceptance period. Acceptance must be time boxed. You MUST define, with the client a precise period of acceptance. Days / weeks before the release define with your client ‘blocker’ issues. Explain to the client what happens during the guarantee period. Avoid doing new not blocking features during the acceptance.
  • 63. 100 Drupal Experts 50 projects per year @adyax
  • 64. THANK YOU! WHAT DID YOU THINK? Locate this session at the DrupalCon Prague website: http://prague2013.drupal.org/schedule Click the “Take the survey” link

Hinweis der Redaktion

  1. Estimates are probably the most dangerous work a project manager do. Many projects are late, we even say that 70% of IT projects are late. Doing fixed budget projects, you may loose money.
  2. Everybody here knows the scary deadline. Approaching. And most of the time deadlines are not met.
  3. So after a while deadlines are not so dead and scary. Is meeting deadlines and make right estimates is really impossible ? After all, we're smart guys, you all here, you do Drupal, so you ARE smart. And we do crazy things. We do Panels, Views we even understand how to create a module in Drupal 8. We're experienced developers or project managers. But wait, you do estimates in every day life, and you do them pretty well. Imagine you're in Prague, with a good Drupal friend.
  4. He call's you in here, and says wazaaaaa.... hum, says let's have a glass of wine in the best bar in Prague. He gives you the address and what do you do ?
  5. You'll probably open google maps, check how to get there, time you'll need. Add some extra time in case of any unpredictable problems.And usually, you'll be on time.
  6. Not always. Everyone here knows some friends who're always late. Actually what make us late, in every day life, are errors in estimates and unpredictable events.
  7. If you want never being late, you should add risks and estimate impact of risks over your plan.
  8. For example : how long will it take to get to my bar if there is a strike and I have to go there walking.But you should also estimate the chances of actually this particular risk will happen and apply this percentage to your estimates. With all possible events. The problem of this approach is that some risks have unfinite consequences on your journey.
  9. As said Leo Rosten, "Some things are so unexpected that no one is prepared for them." But let's being honest, during a Drupal project you have a limited amount of events making your estimates going wrong :
  10. The first thing your developpers will work on, is Drupal & modules setup and content structure definition. Of course depending of site complexity you'll spent more or less time. We do not try to go deeply in details. But you'll need time to install this bulk set of modules, you eventually can speed up the process going with a distribution.
  11. This is an exactly example of hidden costs. You setup a ticketing system with your client, create user accounts, setup GIT repository, branches, install your developpment server or create a pantheon or commerce guys platform. But you'll spend time on this too.
  12. Contexts, you'll have a lot of small work to do with contexts. SEO, Analytics tag plan, Advertisement, Page titles, URLs, all rely on context. More contexts you have more work you'll have to produce. I rember this client we got. Big french machines rental company, Kiloutou. While we were in last stages of project release, you know those 2 weeks sprints that lasts 2 months... well we asked this client to send us tags plan. Site was a 30 templates e-commerce site. We got a 70 pages specifications and 300 tags to implements on pages, but also on clicks, actions, and different checkout scenarios. God, we spent 2 weeks implementing it. So be careful with contexts related tasks as they are directly linked to the number of templates.
  13. Now we'll talk about something very special. Something that from my point of view gives you the most accurate way to measure the site's size. The templates. Templates are so important because while creating a brand new website you will there are so many people and time used on each of them, it always freaks me out.
  14. You start sketching the product page, you sketch in all 3 responsive versions, then you probably try to make validations, backs and forths with the client so you create 3 wireframes. Finally, after that your designer will produce PSDs (again to validate them with the client), finally you'll produce statics HTML of each template to test on so many devices you sold to your clients (yeah rember during the presales phase when you actually said that this responsive will work even on a Nokia 3310, they finally silently added nokia's support to the contract). Then your drupal developer will work on implementing it in drupal. Finally. Let's see some metrics. Those numbers are some kind of empiric values from 250 projects we've done so far in Adyax.
  15. Very diffcult to estimate but usually you spend from 2 to 5 days per content type depending of the source easiest from Drupal to Drupal, then from a highly structured DB to Drupal, and finally the worse, from unstructured HTML (with those so easy structure, if you have a <P> tag put is as teaser, and then, always, promise, always a <strong> means sub-title, hum, yeah really really all our contributors try to respect those rules... since 5 years....).
  16. Deploy is always a big debate. If you're running on Acquia, Pantheon or Commerce Platform you can almost do continuous integration stuff and each deploy will take you minutes. On more classical hosters it will depends of the deploy policy you've setup with your client. So alway take this in account at early stages of the project. I got a big customer and we agreed to deploy after each sprint, so we agreed on 12 deploys. The problem was the client was running his live environemnt with an old school very big hosting company, who deploy manually using a tar.gz files on an FTP. Making errors during each and arguing it was our fault. We spent 25 man days on deploys. But wait, we said that deploying on Acquia, Pantheon or Commerce Platform would take minutes, that's not exactly truth. Deploy means, write down release notes (export deployed tickets from redmine for example), prepare your features, write some module_update functions, test the deploy, and THEN deploy. It take time. Usually each deploy
  17. I do wonder why developers do bugs. They do, and that's why we need testers. How many of you have dedicated test teams ? ... Actually that might be developers doing QA or dedicated, doesn't really matters. What we've actually noticed is that testing is directly related to developpment time. It takes from 15 up 30 percent depending of site complexity. I include and mix here manual and automated testing.
  18. Here again many variants are possible. A freelancer project may not require any management at all, while a big project envolving 10 developpers may require several project managers. But again, even a freelancer does some management work. The hard thing in estimation of management is the fact that management efforts depend not only from the project, not even from the knowledge level of your team, but from the kind of the client you have.
  19. You know I had a project, an invite only community site, and the client was like 5 persons without any knowledge of the web stuff at all. Thoses are usually spotted by us, but we don't know why we accepted this project and the nightmare lasted for several months... Like why the site is not opening when i enter the url [email_address] . Those kind of clients may make you loose money, if you can avoid them just do it. Best processes cann't nothing against human factor.
  20. Do you write specifications ? For all of your projects ? Say the truth. I think that agile did a lot against specifications. Actually I think that specs are the most important thing that will save your margins. You can write specs at the begingin of the project, or do it sprint by sprint, but you need to describe entirely the project by specs. And make sure you validate them with the client. This is the only way to decide what's in the scope what's not, what's a bug and what's a feature. I think even small project need specs. And large project need specs being constantly updated as they'll also serve as project documentation. If you don't want to lose money, write specs for all projects.
  21. But wait, guys. What about features.
  22. I mean those things that make your project unique. There is not only modules and templates. There are a lot of business logic, small or complex features. There are no rules of estimate of those things. The only way is to divide the features into small parts, templates, find modules that you could use and try to estimate the time for each part. As for the rest, the more precise you'll be the more accurate will be your estimates. For example for a "voting feature" you should estimate how long it would take to install and configure Voting API, FiveStars, do the theming for the fivestars, add some custom blocs, theme them, test everything, apply updates on content types, etc...
  23. Your project is live, client finished paying doesn't mean you finished spending money. The client will call you and while during the project it’s ok and probably included in specifications, project managemment and stuff. Once your project is live, how do you deal with support ? You guys once your project is live if the client calls you in ? Well the problem with the support is the fact that it’s so close to the commercial relationship you’ve setup with your client, so you cannot bill easily that. I mean you cannot say when the client has spent 6 month with you on the phone that you’ll not take his next call because he did not took the support. So the right thing to do is to prepare the client from the very beging of the project and explain your support policy. You can go for a global fixed annual price or a ticket based system, but the most important is to prepare you client from the begining of the project or even during the presales phase.