I've been maintaining a growing amount of modules over the years. I am starting to document my observations, habits and challenges, in the hope they'd be useful to other Drupal coders.
I devote time and energy to the development of a module. Since I consider myself a software craftsman, each module is a creation of mine - an artifact to which I try to imbue functional and aesthetic values.
In late 2004, I convinced a couple of friends to start an open source-based consultancy in Cairo, Egypt. I had discovered FOSS during my Master's at Université de Montréal, and going back to Microsoft technologies soon felt unbearable. I quit my job, spent a sabbatical year, then started developing Web applications on WAMP as a freelancer. I wanted to be useful to my community, instead of developing software for inhuman corporations!
I often wish Drupal.org had more social networking features. I feel they would enhance my ability to act as a productive Drupal community member, both benefiting and benefiting from the great platform that we're using.
For example, when I receive a new issue in my modules' queues, I usually check the interaction record of the posting member, just by looking at the "Track" tab of their account. It gives me a context through which I (think I can) better interact with the member towards resolving the issue positively.
Social networking has connotations of frivolity - think Facebook.
The aim of Drupal architecture is to implement the logic demanded by the application while resorting to a minimal amount of new code written. Modules are used as logic blocks that are assembled to yield the desired software structure that will acquire, store and display the site's content.
Coding for Drupal involves mainly creating reusable modules that implement specific logical manipulations of information. The crucial reason why this modular approach works in Drupal is that each module exposes hooks that allow other modules to extend its own functionality.