Drupal is a system that helps people build and maintain websites. It does this by offering developers an application framework to build from, and by offering content creators a configurable set of tools for the creation and maintenance of online media.
To explain the Drupal development process I'm going to use the analogy of a home cooked meal. Starting with raw ingredients you're able to create a wholesome meal; a similar process is used for creating wholesome user experiences. Let me explain:
Drupal core is a basic set of modules that are in place to provide minimum functionality.

When developers in the community find that Drupal's core set of modules don't provide the functionality they require, they submit what are known as contributed modules. These modules allow the developer to extend Drupal's default functionality.

However it takes a lot more than raw ingredients to make a meal; the next step in the development process is to configure our modules. Configuration is generally done through Drupal's administrative web interface, it enables modules to function specifically as the developer requires them to.

At this point in the process the website will be functional. The final step in the process is to theme the website. The final step is often where we start; as an end user or a client the experience is what we’re after.

Serve.