Code Less - Configure More

Before I go into details I want to mention a few things about participation in open source software projects. When you start using the outcome of an open source project you are a part of the community. You can get something from the project and you can contribute to the project too.

PUT and GET (Give and Take)

As a member of the community you have to think about two things (let's compare it with the Hypertext Transfer Protocol methods GET and PUT)

What do you want to GET out of it (money?, fame?, friends?, free beer?, [... other ...])

What do you want to PUT into it ( code?, ideas?, logistics?, money? [... whatever ...]

What's your Job?

Open source project are mostly software projects and it's good to know your own job description. Are you a site builder, a developer, a designer, an architect, a "rockstar" or something totally different?

Developers

Years ago most of the community members were developers. They are developing code more or less like this!

"Code" is basically stored in text files with all kinds of information.

And the others?

If developer do all this stuff, what are site builders, designers, architects and rockstars doing? Are they necessary in an open source projects?

Let's jump to another world - Cars

Local Motors is an open source automobile company. They co-create vehicles with their community of auto designers, engineers, enthusiasts and customers. Local Motors is in production with their first vehicle called the Rally Fighter, an off-road race vehicle designed to also be street legal which customers buy as part of a build experience with Local Motors engineers in a Local Motors Micro-factory (Figure 1).

The Rally Fighter, designed by community member Sangho Kim is the first car to be openly developed and built with the collaboration of the local motors community. Sangho penned the Rally Fighter design in 2008, and posted it to the Local Motors community for review and critique. Community feedback was immediately positive, and many demanded the car to be built. You can download the chassis file from http://www.local-motors.com/open.php (Figure 2), create a microfactory and build it (Figure 3) and finally mod the produced car (Figure 4).

How does it work?

The process in general is quite simple

Getting started

Create it

Develop it

Build it

Mod it

Text from the YouTube video description:As an Automotive 3.0 company, Local Motors works very differently than any other car company in the world. This video will give you insight into how Local Motors harnesses the power of the community, while also empowering the community to create, develop, build, and mod new, original cars.

Creating Websites

Even if it sound simple. Most of the outcomes of Drupal, Joomla!, WordPress and TYPO3 projects are websites and it is so much easier compared to the car example.

If we look at the five steps again and think of our behaviour in software projects like Drupal 7, it looks a bit like this:

Getting started done

Create it <- done (that's the design)

Develop it <- done

Built it <- "Drupal Shop" or web agency

Mod it <- "one man army" or freelancer

So most of the work is already done and now it's time to configure it in the right way.If you look at step 4 and 5 and think of the existing 10,000 Drupal pieces to play with (http://drupal.org/project/modules), you see it's a big playground.

Keep it simple

Most of the customers will mention in the first meeting that their business is totally different from the others and much more complicated. Often this is the step where the website starts to become more and more expensive (often through custom development).

Be aware that clients often don’t get the idea of an open source project and your wonderful customization and other things, even though they spend €500,000+ on their website. For them it is important to solve 'their' problem, whatever it may be, and whether you solve it with Drupal, Twix, Volkswagen or other brands is irrelevant.

A short example

Usually when I am working in the office Skype is switched on.

Question via Skype:

Where can I translate this text?” ... BLAH ...

It was about blocks on the frontpage of a client's website - at that point, not our client.

Remember the 10,000 Drupal modules to play with and just have a look at them before you start coding.

Just two things from my experience in smaller and bigger Drupal projects.

80+ % can be achieved via configuration

A big part of the costs of a website are a result of unnecessary coding

Code less - Configure more

After this long introduction we are coming to the point. The problem with configuration is often that the user interfaces are not user-friendly because of the complexity. One example is the views module. It is always possible to discover new settings and checkboxes you've never seen before :)

Configurations examples from the real world

Johan Falk from NodeOne did an amazing job in creating screencasts on advanced Drupal configuration. A bit feedback?

i think @Itangalo is going for the worldrecord in "most free drupal screencast in shortest time, that kicks ass"

Great screencast. I stared at the redirect destination field forever and didn’t realize I could use the variables in that field until this demo.

I want to thank you for this wonderful series, I have learned a lot with your screen cast and now can see the real power behind Drupal and modules like Panels.

This series is already awesome— I was unaware that there were other modules, besides panels, that make use of page manager.

Great work Johan, keep it up! I’ve learned a lot of Drupal with NodeOne’s screencasts.

Just wanted to say thanks for such an entertaining and helpful series here, I really learnt a lot!

1000* thanks @itangalo of @nodeone_se for your excellent screencast demonstrating the power of #drupal #pagemanager.

You'll find all examples on http://nodeone.se/exercises and I want to mention just a few examples to give an impression what's possible 'only' by configuring.

Views

As site member I want a tab on my user page showing all content I have posted to the site. The page should also show how many comments each piece of content has, and if there are any comments I have not yet read. This is important because it helps me keep track of discussions I participate in.

This user story is complete when:

There is a tab on each user page.

The tab leads to a page showing content posted by that user (and only that user).

The page shows content title, number of comments and if there are any unread comments; in a table.

Flags

This screencast is a part of the Learn Flag with NodeOne screencast series, introducing the Flag module and showing some different use cases. This episodes introduces the Flag module and some of its core concepts.

This screencast covers the following topics:

Installing the Flag module

What flags are and how they are used on your website

Some modules that Flag integrates with

The default bookmarks flag, and its view

Flag + Rules + Content Access

This screencast shows how to use Content Access and Rules to set and revoke access to nodes. It covers: