When I receive a new request to develop a WordPress site, I go through a list of questions in my head to help me estimate a project’s complexity.
In an effort to fine tune that process, I decided to write down all these questions and actually give possible answers a score. I hope this score will help me quickly benchmark a project against previous projects, as I push more projects through this system, I’ll be able to make it more accurate and effective.
Here are the questions, and some comments about each of them:
Client parameters:
Is this a repeat client?
I’ve found it easier to work with repeat clients, as you already know what their expectations for the outcome of a project are, and it makes it easier to estimate. If it’s a bad client, why aqre you still accepting projects from them?
Client’s attention to details:
this can have a big impact on whether you’ll make a profit from the project if you quote a fixed price. If the client turns out to be really picky about every little detail, it can very time consuming to satisfy them.
Is the client easy to work with? Yes or no
Project assets
Overall completeness of request?
This is probably an area I can improve. I currently don’t have a systematic approach to communicating what is needed to begin a project. This could be solved by offering a template or form for clients to fill out.
I usually expect PSD files for every template variation, and I expect the files to be well organized with named layers and groups, grid guides,… a good example of this is Photoshop Etiquette.
If the design uses custom fonts then I expect them to be provided as a separate download. As well as any repeatable, seamless graphics that the designer has created, either as a graphic or a photoshop pattern.
A document that describes the functionality of the different areas that are not static pages. This is often overlooked, and results in a lot of back and forth with the client, and is usually a cause for underestimating a project’s scope.
A style guide: it can be simple, but it’s very helpful to have a document that outlines font sizes, colors, hover styles and such. Very often, typography and styling is inconsistent across the design files, and it’s time consuming to measure every paragraph and title in Photoshop because there’s a slight difference in color or font size. In my opinion there should be consistency in the typography and styles. This reinforces the overall look and feel.
Contents and photography
If the project includes adding the contents and images, have they been provided or do I need to extract the images and text from the Photoshop file?
I also judge the overall design, is it poor, average or excellent. Was it done with the web in mind, or does it look like a print brochure, and does the designer expect it to behave like it? Fixed heights on pages, etc…
Hosting
Most often, the client already has a hosting plan. If it’s not on my list of “approved” hosting providers, I apply a penalty. Hostgator, DreamHost, BlueHost, WP Engine are all good choices. I don’t want to mess around with VPS or custom dedicated servers that aren’t configured for WordPress.
Implementation parameters
Looking at the needed functionality, are there areas that I can use code from my existing code base for? If I can, I’ll reuse code for lightbox galleries, sliders, tabs and other such custom functionality that I’ve already developed on previous projects.
I also keep a library of code snippets in Evernote for future use/reference.
How complex is the overall functionality of the website?
Is it a typical brochure site with a few pages? Or does it have many different sections with different functionality and purpose?
Does the client have specific requirements for theme and/or plugins that don’t fit into my workflow?
Over time I developed an optimized process and I’ve chosen a few plugins and themes that allow me to be more efficient. If I can’t use those then I makes my job harder.
Will some aspect require me to learn a new skill?
Maybe learn an API or how to extend a cerrtain plugin.
Admin Area
If the dashboard / admin requires customization, can I use a plugin like Adminimize or will it be entirely custom? I have an existing include file that lets me quickly hide or disable parts of the admin, menus, options…
Custom menus
Does the site require multiple custom menus?
Does the menu design warrant a custom walker, or use of filters to modify the default menu output?
CMS Modules
Does the site require one or some of the following?
Ecommerce, membership area, downloads area, events, testimonials, a portfolio section, something else?
Theme
How many different layouts does the design require?
How many different templates? If the site requires custom post types and taxonomies then they will require creating templates for the archives and single view, maybe different templates for categories and tags.
Does the design have many different thumbnail sizes?
Is it better to use custom thumbnail sizes or a solution like WP Thumb? (not Timthumb)
Is the display of contents consistent across the different templates?
Are there repeatable content blocks, ( use of partial templates)
Home page
How complex is the design of the home page template?
Is there a blog section? Are comments enabled?
Can I use an out of the box commenting system like Disqus or Jetpack?
Is the comments design similar to the default comments in the framework I use? (Genesis or Underscores)
Does the project require a custom search functionality? Taxonomy filtering, multiple criteria search?
Does the project require the use of custom fields? Can I use Advancde Custom Fields, which is my preferred solution. It has excellent addons like the Repeater, Flexible content and Gallery.
Front End requirements
Is the design to be responsive?
Are the typography styles complex?
Is the design graphics heavy?
Meaning lots of background images, borders, underlines to extract and convert to CSS.
Does the project require Javascript functionality such as tabs, modal windows, ajax, slideshows, lightboxes,accordions,…
What are the browser comparability requirements? IE, old IE…
What devices should the site be optimized for?
Well that’s about all I can think about for now. I’m sure I could have gone into more detail about some questions, and I’ve probably missed some that you deem important. Let me know in the comments!