The business of Drupal

Terminology, working with other Drupal professionals, optimizing your site, getting hosting up and running — there’s a lot to think about when you’re starting up a Drupal site for the first time. This section focuses on the business side of things — hiring, marketing, e-commerce, and getting the basics into place before you actually roll up your sleeves and start building the site.

How to speak “Drupal”

One of the biggest hurdles to overcome when learning about Drupal is all the terminology thrown around -- node, contrib, CCK -- what the heck are they talking about? In this section you'll find some links to resources that will help you dive more into the world of Drupal.

Where to learn more about Drupal

So you’ve heard about Drupal and understand the basics, but you may still have more in depth questions. There are ample places you can learn more about Drupal, including books, courses, websites and even online chat. Below is a list of various resources that you can check out.

Books

There are many books out there that cover Drupal as a whole or specific aspects of it. 2008 is definitely the year of the Drupal book!

Some of the titles you may encounter include Drupal: Creating Blogs, Forums, Portals, and Community Websites by David Mercer and Building Online Communities With Drupal, phpBB, and WordPress by Robert T. Douglass, Mike Little, and Jared W. Smith. While these books were once very useful and popular, they are pretty outdated at this point and we wouldn’t recommend them.

There is also Pro Drupal Development by John VanDyk and Matt Westgate. This book is current and an excellent resource, it is much more programmer-focused and steers you towards writing your own modules. Buy it for your developers ;)

For beginners, there is Drupal 5 Themes by Ric Shreves. This book is new and a perfect introduction to theming with Drupal 5. It does require knowledge of CSS and HTML, along with a dose of creativity in order to get full use of the potential of the book. However, as an introduction to themes and Drupal basics, it is an excellent read.

Building powerful and robust websites with Drupal 6 by David Mercer is the newest book coming out from Packt Publishing and is a follow-up to Drupal: Creating Blogs, Forums, Portals and Community Websites. This book is the perfect introduction to building a site with Drupal. It will lead you from initial planning of a site right through to the launching of your site. It’s full of helpful advice to less technical site implementers. There will be other books coming out within the next year too, aimed at different audiences.

So far there are also plans for upcoming books on:

  • Drupal Ecommerce
  • Drupal Site Recipes
  • Pro Drupal Development, updated for Drupal 6
  • Learning Drupal module development

Schools

While there are some schools that may teach general courses in regards to CMSes, few of these will cover Drupal specifically. This doesn’t mean there aren’t any, however, finding a class specifically catered towards Drupal is unlikely. Check your local schools for any courses on content management systems or dynamic web sites, or even online journalism (Drupal is popular for news websites and this is sometimes taught in the curriculum).

DrupalCon

DrupalCon.org is the best place to keep on top of the planning and scheduling of major Drupal conferences around the world. DrupalCon is the world-wide meet up for Drupal programmers and users alike. Hundreds of people from all over the world get together to learn more about Drupal, as well as connect with people who may be able to assist in their own websites. There are usually two per year, one in North America and one in Europe.

Local meet-ups

Traveling about the world to attend conferences isn’t always a possibility for everyone. However, all over the world there are also smaller meet-ups and user groups which are an excellent way of networking and discussing with local Drupal users. Searching on Google for your location and “drupal” is the best way to find these, or look for your location’s group on groups.drupal.org. Most meet ups of this size are free and less scary than bigger conventions can be. They vary from casual, social get togethers, to multi-day training. These are great for new users to Drupal!

Lullabot Workshops and Seminars

Lullabot is a company that has pretty much cornered the market on workshops and seminars. They are real Drupal experts and major contributors to the Drupal community who teach to both beginners and more advanced users. Their hands-on workshops are usually around 50 people, and range from one day to a week long. They run from hundreds of dollars to $1500+, but if you’re serious about learning and benefit from face-to-face training, this is the way to do it.

Web Resources

While there are many books and seminars one could attend, it’s not required you spend anything in order to find out more about Drupal. All you need is your internet connection! Some are better resources than others, but you’ll find everything from quick lists of tips to full video training online.

Drupal.org

Drupal.org is the heart and soul of Drupal. This site (http://drupal.org/) is the central place for all things Drupal and is the best place for an official answer, and the only place you should be downloading modules or Drupal itself from. Many Drupal users from all skill levels post on this website to learn, as well as help others with their Drupal experiences.

There are two excellent places to check out on the drupal.org website. There’s the Handbooks - http://drupal.org/handbooks which gives you everything from beginners and getting started with Drupal, straight through advanced development for Drupal. However, this isn’t the only place to learn more. There is also the drupal.org forum - http://drupal.org/forum which is where you can peruse various categories to learn more about the program. Search, search, search! Try Drupal’s advanced search (http://drupal.org/search) and you can limit your query to searching modules, forums, etc.

People on drupal.org are generally very helpful, friendly, and fun, especially if you provide a detailed description of your issue and are patient (and have searched thoroughly first).

Groups.drupal.org

Drupal’s Groups are an offshoot of the Drupal community where people gather around more specific areas, either geographically or topically. You’ll find working groups for people creating social networking sites, or non-profits, or designers. These are a great place if you are looking to integrate yourself with a group of like-minded people trying to accomplish similar goals with Drupal.

drupaldojo.com

Another excellent website for everything Drupal is drupaldojo.com. This is an incredible effort to have regular sessions of online video training on Drupal topics. Even if you can’t attend the meetings when they are scheduled, Drupaldojo.com always records and then archives their meetings for later reference.

YouTube

Drupallerslove creating screencasts. These are videos where the creator actually records his/her screen and voice while walking you through a particular tutorial. Best place to find these? YouTube. Often there will be a higher quality version of the video available elsewhere too, but YouTube is the best starting point to find Drupal-specific tutorials and be able to see ranking and comments on the quality of the video.

Del.icio.us

Del.icio.us is a social bookmarking website. Much like YouTube, it’s a gold mine of excellent Drupal links. Look for recent links that have been saved by many other people, or search for specific tags. For example, here are the top tagged links for “drupal ecommerce”: http://del.icio.us/search/?fr=del_icio_us&p=drupal+ecommerce&type=all

IRC

If you aren’t familiar with IRC, just think online chat. IRC requires you to use a software application (“client”) to connect to the server. Here’s an overview of how to do this (http://groups.drupal.org/node/2326). From there, several different chat rooms exist for discussing Drupal. This page (http://drupal.org/node/108355) best explains the difference between the channels and also explains some general etiquette and procedures.

There are many, many places that can help you learn more about Drupal. Some people will gravitate more towards one form or another, but it’s good to know the wide range of resources available for learning more.

Giving back

Remember to post your solution when you find an answer to your question, so the next person coming along can find it! You may still feel like a “newbie”, but if you’ve successfully done anything with Drupal then you’re already able to help out!

 

Hiring Drupal developers, designers, and other web professionals

So, you need to hire someone to help with your site – who do you hire? How much do they charge? What qualities should you look for? Where can you find someone?

This process can seem confusing to those not familiar with hiring technical help to build or maintain a website, it’s not so bad! Before starting, it’s important that you determine your needs and have a basic idea of budget.

Planning your Drupal project

Scope of Project

When it looks like you’ll need to hire someone, you need to be detailed and specific. I can’t emphasize this enough. Defining the scope of the project is the biggest thing that will save you from encountering major problems later on. As I mentioned, you need to be as specific as possible. If you need modules changed or new functionality created, be sure to state this. Do you require a new theme, too? Will you require installation and modification? What’s your timeline? Think about the user perspective – what can an anonymous user do? What happens when they click there? Should that be hidden in search results? What should it look like?

While these seem somewhat obvious, remember that the developer or designer cannot read your mind. Vagueness never helps your bottom line.

Budget

Now that you have an idea of the project scope, you need to figure out a budget. When talking with programmers in regards to price you need to be clear - know exactly what you can afford. Don’t worry at this point, once you quote a price, the programmer will let you know what can and can’t be done within your budget. Sure, you may need to cut back on what you can get done at this time, however, this also allows you to break up the project into smaller tasks - which sometimes are easier on cost as well as stress levels. Be wary of flat rate quotes when you haven’t provided much detail yet.

Match skill level to task

With a budget in place, the next step is to match the desired skill level to the specific task. You wouldn’t want a plumber to rewire your house. The same idea applies to your website. You need the right person for the right job. For example, if you require a new theme, you need someone with CSS knowledge and Drupal experience to create what you desire. Take into consideration that experienced people can do most jobs in a shorter time, and implemented with higher quality, which will ultimately save you money.

Pricing

Pricing is a very difficult realm to estimate. It’s like asking how much a house costs. Pricing will vary depending on the features you require, your timeline, and goals. You can find outsourced programmers for $10/hr, or you may pay $150/hr for a senior Drupal developer. You shouldn’t expect to pay less than $30/hr for a Drupal developer or themer with solid experience, and more likely in the $40-70/hr range. Exceptions exist, but they are often red flags, and you should proceed with caution if a candidate seems too good to be true. I would discourage you from working with a flat rate for your entire project, unless it a simple and very well defined task, such as installing Drupal on your server, adding a small feature to a module (these are often posted as “bounties” — as in “I will pay $X for feature Y”), or creating a simple Drupal theme from a set of detailed mockups.

Currently there are fewer good Drupal developers than the organizations who want them. Drupal has had a slower adoption in the corporate and mainstream world, but that is starting to change. If you are implementing a unique and complex set of features, it is best to go for a very experienced developer who knows Drupal’s best practices and will save you headaches down the road.

Mydrupal.com has a directory of Drupal service providers where some individuals and firms have listed their hourly rate.

Don’t forget the old story about the employer who complained that the repairman charged him $1000 for fixing a problem, even though he only tapped one spot with his hammer. So, the repair man itemized his bill: 1 tap = $5, knowing where to tap = $995.

Drupal is very much about “knowing where to tap,” and that takes months, if not years of building Drupal sites to be proficient at.

Tools/Documents

Now comes the time to actually hire on these people needed to get your website going. There are plenty of good resources out there on the technicalities of hiring a contractor, but here is a brief overview. You’ll want documentation, like a functional specs document, stating clearly what you require as detailed as possible, which includes agreed upon milestone dates. Wireframes are also a key document for planning and defining scope.

You will also need a contract. An excellent website to check out for contractor agreements and other legal forms is http://www.nolo.com. This site caters to the legal aspects of a business you’ll most commonly encounter.

Always expect that things will cost more and take longer than you think. The best thing you can do to keep your project on schedule and budget is get all materials to your workers as soon as possible, in particular preparing your site’s content when they request it. Building a site without having real content to enter is always a huge headache.

Contributing back to the community

Drupal is open source software, and there is a strong community around contributing and sharing code with each other. You should talk to your developer about whether there will be modifications made or custom modules that you could contribute back to the community by posting it on Drupal.org. This is the main reason that Drupal is as fantastic as it is today. If you are a business or organization building your site on Drupal, the code you sponsor can be marked with your name and link when posted to the site, which ultimately helps your site!

Developer, themer, webmaster -- who do I need?

The great thing about Drupal is that you can do a lot yourself without needing to be a programmer or sysadmin – but here is a rundown of some common titles that you may encounter.

What is a Drupal developer/programmer?

A Drupal developer is a person who writes PHP code that specifically interacts with Drupal. They often live and breathe Drupal, and make up the core part of the Drupal community. Drupal programmers can also often suggest other helpers you may require for other parts of your project. Your developer should have specific knowledge of Drupal’s APIs, as well as have a good working knowledge of MySQL and PHP. Speaking from experience, I’ve never had a job go well where the developer was a PHP coder who figured Drupal would be easy to pick up along the way. Go for someone who already knows Drupal.

What’s a sysadmin?

A sysadmin is short form for a system administrator. Sysadmins are hired most often in order to maintain or operate a computer system/network. While their main duty is to keep your web server running and secure, they may also be put in charge of other smaller responsibilities like installation, maintenance, and support of the site. Sysadmins are also the ones who generally handle backups and site performance issues (together with your developer). Sometimes, sysadmins may even do programming or scripting for your site - each case varies depending on project and person. You should make sure you are clear about who on your technical staff is doing what – will your developer be setting up your website on your server, or do you need someone to do this for you?

Site builder/Webmaster

A site builder or webmaster is usually responsible for configuration of the website, along with maintaining it. They also may set up modules and themes for you, as well as being responsible for setting up access for the different user accounts needed. Your webmaster may help with content entry and configuration of various displays of content (such as Views and Blocks, in Drupal terms). Webmasters often know CSS/HTML and perhaps even PHP. They should know the ins and outs of Drupal and how to keep the pieces running smoothly once your site is set up. If you have a site that won’t require any programming, you may just need a webmaster or Drupal site builder to set up your installation and modules, and then be ready to go!

What is a SEO Specialist?

If your goal is a successful and popular website, one of the most important aspects is how easy it is to find in search engines. This is where a SEO Specialist comes in. SEO stands for Search Engine Optimization and these people help rank your site higher in search engines. SEO Specialists have several responsibilities - while it may seem easy to just use keywords in order to be found, there are countless unwritten rules and complex algorithms at play in your search engine rankings. SEO involves optimizing your code, content, presentation, and fixing problems that may prevent your website from ranking highly. SEO can be a shady business where a sly ‘professional’ looking to make a quick buck can actually ruin your long-term prospects for SEO, so it’s best to pick someone based on a good recommendation, not just a random forum post or Google ad. There are individuals and companies who specialize in SEO within Drupal, and many modules dedicated to improving search engine placement.

Graphic/Web designer

A graphic or web designer can be hired to create the visual look and feel of your website. You will likely need a company logo, business cards, and marketing materials, as well as your web site design. Some designers only do print or web design, and some do both. Make sure you are clear about this – a “web designer” may know nothing about preparing design materials for print, and there are too many horror stories about print designers thinking they can create web site designs.

You may also work with someone doing information architecture (IA) at this stage. This is someone who focuses on the layout, functionality, and content on each page, without working with the graphic design yet. They usually create “wireframes”, which are outlines of what your pages should look like.

Your designer likely works in Adobe Photoshop, and may only create “mockups” or “comps” (which are static pictures of what your website will look like), or he/she may also create the cut up web-ready graphics and CSS for you. In some cases, your graphic designer may also be proficient at creating a whole Drupal theme, but this is not a common combination of skills. If you have either just mockups, or static HTML/CSS, you will still need a themer to turn this into a live Drupal theme.

Themer

A themer is someone who specifically creates the Drupal theme (aka “skin” or “template”) for your website. This is a position that bridges the gap between designers and developers, and your themer may be on more of the creative or technical end of the scale. Your themer must know CSS, be very familiar with Drupal’s configurations, and should also have some graphics editing and PHP skills. If you have a developer and/or designer as well, the themer will need to work closely with them.

What is a Community Manager?

Depending on your project, you may also need a moderator, editor, or community manager. If you are going to have a large amount of user-generated content, such as a video site or large forum, you may also need someone to assist with moderating and managing this content. Editors and writers can also provide content for your site.

Where to hire Drupal professionals

So, you’ve got your budget in order and a solid idea of who you need now. Now, where do you find these people? There are so many places online to look for contractors that we could write a book on it. However, we will go over some of the bigger and better places to find skilled Drupal workers.

Drupal.org

Since your website is a Drupal site, one of the best places to find these helpers is the "playground" of Drupal users and coders. Drupal.org offers several different areas on their website alone in order to find a person. You can try the forum at http://drupal.org/forum/51 - this will take you right to the Paid Drupal Service forum. Here you can post exactly what you desire, how much you’re able to spend and get quotes for time as well as cost for entire or part of the project. Make sure you provide contact information in your post, or go into your account and enable your contact form so people can reach you.

You can also try http://drupal.org/profile/drupal-services. This will take you to a list of names and contact information of people who provide Drupal services. You can check out their profiles at this site, as well as be linked to their personal websites and even what country they’re located in.

There is also the #drupal-consultants channel on IRC (chat).

Drupalancers

Another handy site to check out is drupalancers.com. This site is a one-stop shop for anything and everything Drupal freelancers. You have to register and pay to post a job, but there is a rating list to see who the top programmers are. Make sure you ask about specific Drupal experience.

Craigslist

You may not really think of Craigslist as a place to find programmers. However, it is an excellent way to find a programmer in your area or long distance. Listings are free and you can mask your e-mail address. Again, you should be very specific in what you’re looking for and always remember to be careful on these types of sites. Make sure the person is legit before offering any form of payment. The last thing you want is a person saying work is done and then not giving you anything more than an empty wallet.

Elance, Guru and odesk

Elance, Guru and odesk are exactly what you’d think - on-line marketplaces to find freelance workers. These three are a lot alike. They all provide escrow services to ensure that you get your finished product before turning payment over to the contractor, and even help you with things like issuing tax forms or file storage for your work-in-progress.

However, watch out for very low cost providers who may not offer the kind of quality you need. We’ve had varying luck with contractors on these sites – some stellar quality work for rock-bottom prices, but some miserable experiences with providers who vanish or misrepresent their skills. You’ll have to sign up to post projects on each of these sites, but, there is no cost for posting jobs (they make their money on a percentage of what you pay contractors) unless you want to feature your ad.

Creating an online store with Drupal

Setting up an e-commerce website involves a fair amount of effort and planning, but the benefits are considerable. With e-commerce, customers may enter payment information on your website to purchase products and services from anywhere in the world. A well-designed online store also allows customers to select between multiple product variations and shipping options, giving them an easy to use and rewarding shopping experience. And the funds (minus processing/service fees) are deposited to your bank account within weeks (or even days)!

Depending on the complexities of your website/product, an e-commerce site can be a simple do-it-yourself endeavor or require lots of technical/development expertise. In either case the initial steps are the same:

  1. Establish a business entity to conduct business online, including a business name and location.
  2. If you are shipping products, obtain a tax ID to charge sales tax in the state where your business resides.
  3. Pick a general structure that gives your business a separate legal and tax identity from yourself, including a dedicated business bank account. This allows you to be sure that the money and acts of your business are separate from your own.
  4. Choose a reliable, reputable web host and begin development on a test site.

Electronic Commerce And Drupal

Übercart has become the leading option for Drupal e-commerce, though there are others such as the "e-Commerce" suite of modules.

e-Commerce is a solid platform that can handle most needs, but we feel Übercart is more user-friendly and possesses a stronger support and development community. And since Übercart is nearly equivalent in terms of features, and is at a stable release now, we believe it is the winning choice.

Of course, every project is unique, so look at both and choose the option best for you. One may have a specific feature that you need. A more in-depth comparison can be seen here.  This post is a bit out of date now, but there is still solid info here, and check the comments for more info.

Übercart Overview

Übercart allows you to sell physical products from various sized product catalogs, file downloads (music, videos, software), and site access/role promotions (i.e. for members-only websites, including automatic renewals and expiration of user access).  This site you’re on right now is built with Ubercart!  Also, check out their live demo of Ubercart.

Übercart’s main features:

  • Products are nodes, making it possible to create multiple product types with classes, and you can add any standard Drupal fields to your products.
  • Products may have attributes that modify the price, SKU/model, and/or weight of items.
  • Products are then displayed in your catalog, with or without images, by category, and with numerous configurable options.
  • Store administrators can manually create orders for customers, add products, shipping prices, etc. from a single screen.
  • Stock tracking options are available.
  • Activity logging shows all the changes made to an order, including payment processing.
  • All checkout information is gathered on a single screen composed of configurable checkout panes.
  • Support for international shipping and formats is available.
  • Shipping quotes are generated in real time from modules or web services.
  • A healthy and growing list of module contributions submitted by community members, as posted here.
  • More information about Übercart can be downloaded here (pdf).

Integration With Drupal

Unlike shopping cart-only systems, Drupal allows you to combine a fully functional community, business, or news website with your e-commerce. This adds powerful options for blogs, forums, social networking, custom displays of content, newsletters, and much more. These features can help your bottom line, as studies show the longer browsers stay on a site the more likely they are to purchase.

Other advantages of using Drupal for e-commerce include Drupal’s secure application framework and search engine optimization features. In addition, Drupal and Übercart have an ever-growing community of developers, a growing list of themes available for download, and numerous consultants offering design/theming services.

Übercart also leverages the power of Drupal through:

  • User System: User accounts are automatically generated when a purchase is made. This allows you to track and communicate with your customers, and encourages repeat business.
  • Taxonomy System: This important aspect of Drupal’s content management is integrated with Übercart’s core product catalog.
  • CCK: Übercart works with the CCK (Content Construction Kit) suite of modules to allow product customization in numerous ways.
  • Views: Übercart integration enables product display and organization by selected fields, filters, page views, etc.
  • Userpoints: Users may accumulate points for performing certain actions on your site, such as posting nodes, commenting or moderating a comment, and this can be tied in to your shopping cart
  • Fivestar: A module that enables customers to review/rate selected products (seen in stores like Amazon.com where multiple products and manufacturers are offered).

Payment Options

Übercart works with the 2 main types of payment gateways:

  1. Third party. A secure order form takes customers to another site for credit card processing and payment. The main advantages are no SSL certificate is required for your site, and the third party deals with all CC processing, but these usually charge higher per-transaction fees and require the customer to be bounced over to the payment processor’s site. Some common third party gateway providers are PayPal, 2Checkout, and ClickBank.
  2. Merchant-side Application Program Interfaces (or API). This is a server-based system allowing the entire transaction to be handled on your website. The main benefits are that it keeps people on your site and offers more options for customizing the checkout experience. These also usually offer a lower per-transaction cost, but you will need an SSL certificate.  Some popular merchant-side gateways are Authorize.net, PayPal (yes, they do both options), and LinkPoint.

Currently Ubercart works with dozens of payment options.  A full list can be viewed here, and other payment plugins can be easily written.

If you are going with the API option, you’ll need an SSL certificate.  This is often the most confusing part of your e-commerce setup.  This is essentially what gets your end users notification that your server and purchasing process is secure.  If you are concerned about your customers having the highest level of trust for your site, you will want to stick with one of the top few SSL certificate providers.  We like DigiCert as a lower cost but still top tier SSL provider.

Drupal-specific Considerations

With the ever-growing number of modules available for Drupal, the options for Übercart integration are extensive. Here are some additional modules that are often used with a Drupal e-commerce site:

  • Google Analytics: You can track core sales, customer and product reports with Google Analytics integration.
  • Securepages: Allows you to coordinate your site with its SSL certificate. SSL (secure sockets layer) encryption protects your customers’ sensitive information during online transactions.
  • Pathauto: Automatically generates path aliases for various kinds of content (nodes, categories, users) without requiring the user to manually specify the path alias.
  • XML Sitemap: Creates a site map in accordance with the sitemaps.org specification.

 

This should give you a good overview of what is involved with creating an e-commerce site in Drupal.  It’s not something that can be built in an hour, but we firmly believe that Drupal + Ubercart is the winning choice for creating an online store with free, open source software.