See also theodorosploumis/drupal-best-practices.
How to estimate the costs and time needed to fix issues or make changes to a Drupal website that you did not develop! Before giving a proposal (RFP) you need to inspect the site! But inspecting a Drupal site is not as simple as you believe... Here is a basic checklist of the Report that you need to deliver before doing anything on the site.
See and example of a report on example-report.md.
- Technical specification document (if exists).
- Current Process flow diagram (in case the system communicates with other services)
- Drupal admin credentials (user 1, or Admin role account). This is needed to check the existing structure, functionality, modules etc. Normally there whould be a dev subdomain to log in. If not credentials and demo provided ask for the git code and a dumb database to install the project locally.
- A brief of the project scope.
- What are the project goals (eg register new members)? How do they measure them? Do they currently meet the goals?
- What happened with the previous Developer/Company (and there is no collaboration anymore)?
- Why the site needs the changes (fixes, update, upgrate, migration etc)?
- How much time needed to build the project?
- Will there be a new Skin (or theme, template whatever they call it)?
- What are the things that do not work well now and they would like to improve?
- How many different Authors are currently adding content?
- How many different User Roles exist (eg Anonymous, Member, Pro Member etc)? Which are each Role permissions on the project? Can we simplify any process for the users?
- How many Drupal nodes (you can name it as "pages") are currently on the database?
- Will we need a data migration? If so, are there any content entry fields we need to remove or any new we need to add?
- Are there any (high) payments to 3rd party services that we can avoid? Eg a CDN.
- Who is going to support the project technically (Drupal updates, security issues, technical support)? Remember to provide a yearly Support subscription with specific tasks on the contract.
- Where is the project hosted now? What are the needs for Database, PHP etc? Are there any special software used? Offer to move to a new hosting provider if current does not fit us. For big customers offer Drupal cloud based solutions (Acquia, Pantheon etc).
Other (not so important but could be important)
- Hosting credentials (to check server/system details, tools installed etc that are special for the project to work).
- Other services credentials (eg CDN, SSL provider, Google Analytics etc) that are used.
- Site performance (use well known services such as PageSpeed, gtmetrix and yellowlab.tools)
- SEO (Does the project follow the basic SEO rules?)
- Mobile UX and design (does it work well on small screens?)
- Heatmap reports (eg using tools like Hotjar)
- Security issues reports (eg using hackertarget.com/drupal-security-scan, securityheaders.com, sitecheck.sucuri.net)
- Drupal content Structure (Content types, taxonomy etc)
- What is the main functionality (Features and Functionality, F&F) provided (eg login, register, add comments, share content etc)
- Drupal forms
- How many different pages are there
- Is there a mobile verison of the website or responsive css styles
- Usage of special modules (eg Panels, Features, Context, Paragraphs, php etc)
- Drupal user Roles
- Create 1 demo user for each Drupal Role and get into the site to inspect functionality (take screenshots, investigate bad UX etc). Alternatively you can use masquerade to become another user)
- Drupal best practices
- Theming (uses ds, template files, preprocess functions, field layout, panels, patternlab etc)
- Total modules enabled
- Modules that should not be used
- Modules that should be used
- (Security) Updates
- Views best practices
- Menus and navigation
- Text filters and editors
- Block types and block structure
- Multilingual behavior
- PHP and server settings (eg using a high php memory limit, not protected settings file etc)
- A pdf of the report (use Google Docs to create the official report)
- Include images/screenshots when needed to explain the text
- Propose changes with details for every aspect that need to change
- Include prices and timesheet for every change mentioned
- An invoice of 10hr - 100hr working (the working hours depend on the size of the site)
Example report here.
- quant (7.x)
- content_report (7.x)
- panels_pane_report (7.x)
- systeminfo (7.x)
- forena (7.x, 8.x)
- erd (7.x, 8.x)
- unused_modules (7.x, 8.x)
- site_audit (7.x, 8.x)
- security_review (7.x, 8.x)
- seckit (7.x, 8.x)
- seo_checklist (7.x, 8.x)
- prod_check (7.x, 8.x)
- content_type_report (8.x)
- entities_info (8.x)
- entitiesinfo (8.x)
- field_report (8.x)
- entity_reports (8.x)
- site_complexity (8.x)
- documentation_export (8.x)
- plugin (8.x)
- entity_relationship (8.x)
- dependency_visualizer (8.x)
- entity_dependency_visualizer (8x)
- upgrade_check (6.x, 7.x - obsolete)
- d8_migration_check (7.x - obsolete)
- migration_audit_reports (7.x)
- mglaman/drupal-check
- field_tools (8.x)
https://drupalconsole.com/docs/en/commands
- drupal field:info
- drupal debug:*
- Avoid giving an estimate/proposal before making a site Report.
- Do not start the Report before getting the credentials or a demo.
- Try to find out what does the website mean for the owner (eg if it is the main income source).
- If able propose to fix one thing at a time using agile methodology and get paid by the hour.
- Tell your customer that this Report is like a Doctor diagnosis and that it can be used for future tasks.
- Do not forget to include costs such as for copying the site/db, creating a dev environment, uploading changes to live environment (eg usage of features module) etc.
- After the Report, avoid touching projects that are not well structured and do not follow (Drupal) best practices!
- Avoid expressing negative for other Companies/Developers (talk about the site and not about the people that were involved).
- Such projects are good to "learn" new things and other people practices (educational projects).
- Drupal Audit Guide
- Slide, Auditing Drupal Sites
- The Gizra way pricing method
- Palantir Build Spec 1.0 - Google Sheets
- Drupal Early Estimation Sheet Template (version 3, Feb 2011) - Google Sheets
- Drupal Spec Tool v2.0.0 (current) - Google Sheets
- Drupal Estimation Techniques by Project Managers
- Drupal fixed budget projects : the art of estimates
- How Big, How Long, How Much: Estimating Drupal Project Size, Duration, and Cost - YouTube
- How we estimate our Drupal web development projects - Internetdevels
- Estimating Drupal Projects | Metal Toad
- Are we afraid to estimate our work in Drupal and open source? - Drupal Webform Estimation Open Source
- 10 problems with Web Development Projects and how we've solved them
- EvolvingWeb.ca: Writing an RFP for Web Development and Design
- Video, DrupalCon New Orleans 2016: Let's be honest: Estimation is guessing
- Video, DrupalCon Vienna 2017: Estimates are dead, long live forecasting!
- Video, DrupalCon Denver 2012: NO RFPS! WHY REQUESTS FOR PROPOSALS ARE BAD FOR BUSINESS
- Video, Bay Area Drupal Camp 2015: How to do a Site Audit
- Video, DrupalCon New Orleans 2016: How to audit Drupal Sites for performance, content and best practices
- Video, How to audit Drupal Sites for performance, content and best practices, 2016
- Video series - Estimation in Drupal Projects, Drupalize.me