In order to eliminate repetition you must first identify it.
The enterprise applications domain is ripe with examples of repetition among projects and among concepts within the same project. Particularly interesting are the modules that repeat themselves across different apparently dissimilar projects.
No matter what the underlying technology, no matter how fast you are in coding, repetition is the most obvious way projects are being held back from what they can be in terms of compatibility and production efficiency.
Here are some modules that are interesting and have passed in my experience:
-
Authentication and Authorization: beyond the simple login module, or even the simple group/role formalizations.
-
Content Defintion and Rendering: This is really a huge itch for me. Everyone handles it differently (.NET WebForms, WinForms/Flash Interactive Models, Qt, Desktop MVC frameworks, Web MVC frameworks, Drupal's Node/CCK/Theming, Declarative Frameworks Flex/WPF/Silverlight ..) They're all radically different approaches to the same exact problem.
I won't stretch myself by listing more because am most familiar with the above at the moment.
I created a forum in raw php and posted it on github a little while ago.
Here. It depends completely on HTTP for interaction (GET/POST). No client side code yet. I was thinking we can discuss different methods to transform it into a more interactive application using Ajax, and build something reusable in other kinds of projects. I want to think of this project as a use case rather than the end product.
What does you think?