In my last article I mentioned that Drupal would work as a CMS out of the box but that you need to configure it to meet your needs.
It is meant for you to take the core tool set API's and for you to add to it, to customize it, to make your own site and community interest group. One that fills your needs with no requirement to link to Drupal.org, no need to use features that you don’t need.
Drupal core gives you a lot of functionality out of the box. It is not meant to be the end solution, it is meant to be the functional starting point for configuring and building a site to meet your needs. It provides a flexible base that gives you the tools and control to accomplish this whether those tools are contributed modules, modules you write or php snippets you use to add value to your site. Fortunately with the huge contributed module repository and the theme and php snippets docs, writing your own may not be necessary. Of course, something that fills your needs may not exist, in which case you will need to develop or fund development for it yourself.