I just recieved an email that asked the following question:
“How much will cost to code a WordPress theme?”
I cannot answer this question without know the answer to a plethora of other questions. I cam up with the following off the top of my head:
- What browsers/devices need to be supported?
- What core WordPress functionality needs to be supported?
- What template files need to be created?
- Are there and custom page templates?
- Is the theme to be internationalized?
- Does the theme offer functionality outside the scope of WordPress core?
- How complex is the design?
- What level of accessibility is expected?
- How much of WordPress functionality is represented in the PSD?
Unfortunately, I do not have all of these written down anywhere and I’m sure that I am missing very important things. To save me time in the future as well as to help other freelancers, I thought it might be a good idea for everyone to list the questions they ask potential clients when asked to develop a theme from an unknown design.
I think some of your questions are too wide. You still cannot break down each answer in hours.
Some of the questions I ask:
- Are there widgets? Which?
- Which theme options are needed? Details? Colors, text fields, image uploads etc.
- Custom post types and taxonomies? Very, very detailed.
- How are the comments displayed? This one is missing on many PSD files. Do you need a custom walker?
- What should happen when the user has a minimum font size of 24px?
- What should happen when the user’s window is just 35em wide? I couldn’t find the pay button on Amazon once on my laptop because the designer had not thought so far …
- Which plugins do you have to integrate? Contact forms, social buttons, subscribe to comments etc.
- Functionality of nav menus: Icons, descriptions, embedded images?
- Is a slider needed? What should it do? How are the items added?
- Will the output for small devices be handled by a separate/child theme?
Some things you don’t need to ask but to know to estimate the time:
- How many sprites do you have to build?
- How much support will the client need? When in doubt use 25% of the total time.
- Have you written your last code abstract enough to reuse it?
Break down each step in hours. Sum the hours up, then double them. If you are a beginner, triple the time. Then add the support time.