Originally published on drupalconnect.com.
With the release of Drupal 8 knocking on the door, many organizations and individuals are considering it for their project. A current estimate suggests a release candidate sometime in late September (subject to change). The question is:
Should we use Drupal 8 for our project?
As one might expect, the answer is "it depends". There are several factors that be evaluated, which will change over time. The best approach is to understand a website's requirements and see if something invalidates Drupal 8 as an option. This shouldn't be rushed. While Drupal 8 has a plethora of benefits and new features, it is best to be realistic with this decision.
The current state of Drupal 8
As of now, Drupal 8 is not released. That alone doesn't exempt it from consideration. As it stands a few critical issues remain before Drupal 8 will hit Release Candidate (RC) status and be considered production ready but Drupal 8 core and it's APIs are stable enough to start planning for some projects.
Website requirements vary like any engineering project. It's best to establish the general goals and acceptance criteria in an initial discovery phase before determining appropriate technical solutions. When considering Drupal 8 for a project, discovery is even more important due to Drupal 8’s adolescence - understanding client needs and setting client expectations will be key. Creating design mockups and a style guide can also inform decision making.
Contributed modules and themes
Once the requirements for a project are well defined, contributed modules and themes should be evaluated. If these components are both available and stable, then Drupal 8 is likely a good choice for the website build. Otherwise, consider using Drupal 7, or plan out the work for Drupal 8 components. That is, use the issue queue and contribute back to the community for the benefit of and maintenance by all interested parties. Speaking of...
Drupal is open source software (OSS) maintained and developed by a community of over 1 million users and developers (drupal.org). The greatest benefits of OSS are the number of available resources that maintain components for Drupal (core and contributed code) and reduced redundancy. A website's moving parts aren't relegated to the knowledge and work hours of just a few developers. Embracing community-based development makes websites easier to build, more secure, more packed with features, more predictable, and easier to maintain.
If such an effort isn't within a project's budget, that's okay. Evaluate the Drupal 8 modules and themes; estimate the efforts (planning, building, testing, training, and content creation) to bring a live site up; create a projected timeline. When does this site need to launch? If the effort required surpasses the deadline, stick with Drupal 7 for now. Keep in mind that deadlines are always a moving target based on the complexity of a build and many other uncontrollable variables. Here is a spreadsheet that helps illustrate the evaluation of contributed code.
Migrating from another site
Whether migrating from a Drupal site or a non-Drupal site, Drupal 8 has built-in content migration API. Once the new site's data structures are established, a review of the old website's content is required, followed by documentation of field mappings and data processing functions.
If migrating from a Drupal site, any functionality (that needs to be ported to the new site) will need to be evaluated for Drupal 8 changes. Any old contributed modules or themes will also need to be vetted for a Drupal 8 equivalent. If a Drupal 8 option does not exist, an alternative should be considered or the module/theme will need to be ported.
If migrating from a non-Drupal site, any functionality intended for the new site will need to be implemented as Drupal 8 modules and/or themes.
Training should never be forgotten. The success of a website is often hinged on how it is maintained. Training material includes things like API documentation, video tutorials, books, blog post, posts in issue queues, and community events.
There are different training targets to consider, too:
As Drupal 8 is currently in its infancy, available training materials are still scarce. This can directly impact the amount of effort involved in creating a new website, as there are no Drupal 8 veteran developers early on. This will obviously improve over time, but similar to evaluating available contributed components, training material should also be considered.
Content manager training
Engineers may create the best bucket for a website's content, but people want to see them full of rich, pertinent stuff. Content administrators will need to be trained on Drupal administration. Aside from a bounty of available training material (or lack thereof), custom components are specifically tailored for a website and will need documentation and coaching for the folks that manage the site content.
To answer the original question: Crunch the numbers. Evaluate the solutions. Go through the process. Engineer the answer. Drupal 8 will be a great solution for many website projects, more so as it evolves. Help Drupal 8 evolve if the project budget allows.