What happens when there are a lack of open problems? On the surface, it seems to make it more difficult to have impactful contributions. I just think it requires you to think outside of the box.


Drupal is a great platform to look at this issue. A few nights ago, I was using my online banking system which required me to answer security questions as a form of two-factor authentication. I thought this would be a great problem to solve in Drupal. However, this is a solved problem: https://drupal.org/project/security_questions


How does one contribute when problems are already solved? Let's consider four ways.


Contribute and improve existing problems solved. In Drupal, modules often have issue queues. Identify some modules you understand well and think you can pitch in. Request co-maintainership and tackle some issues. Try to use the module extensively and put in your own issues to improve it.


Usability. Development communities may often use a module in unexpected or unintended ways. But, if the module is developed in a discrete way, this can be expected. However, these implementations often will identify some challenges to the existing paradigm. Most likely these come in the form of usability improvements that can add polish to a project. Try to identify how a module can be used in different ways and suggest improvements to help the module become even more useful.


Compounded problems / solutions. Modules can often be paired together to solve more complex problems. An example of this is Organic Groups, PURL, and Context modules to create one site that has a series of community-based services (see: ELMS distribution in Drupal, which uses this technique to create a course management system). Integration of these modules led to the development of patches to the existing modules and modules intended to bridge the functionality between existing modules. 


Contribute to the core system. Drupal has a strong mentoring program in which seasoned veterans mentor new contributors. This helps with the onboarding process. These contributions normally focus on issues related to the core Drupal system, not a specific implementation problem on top of the system. Solving these issues have wide impact, as every Drupal system using the version can benefit from your contributions.



Although problem solving can be intimidating (and yes, I completely recognize this), don't hesitate to jump in and participate. There is never a short supply of opportunities to do so.