PatternForge was born by initiative of Antonio Maña, a professor of Software Engineering and Security Engineering at the ITIS Software institute of the University of Málaga in Spain. However, this is not the result of a one man vision; the software engineering community in general, and the pattern community in particular, have always wanted to offer software engineers a centralized online location to find curated software engineering artifacts (which we will call SEAs for short).
At PatternForge we collect, refine, and improve not only design patterns but all kinds of SEAs, which for us essentially means anything that contributes to the development of quality software. The curation process is collaboratively done by community-selected software engineering experts adopting the “forge” approach, consequently, PatternForge provides web-based collaboration tools supporting the whole artifact lifecycle inspired by the work done in the PLoP conference series.
Many initiatives have tried to do this, with different levels of success. However, most of them have focused on publishing instruments as human-oriented documents in different formats (ranging from wiki-based to plain text or PDFs). This approach serves the purpose of education, but the initiatives based on it have many disadvantages, which explains why none of them has reached a wide use:
- Quality: Some of the instruments (patterns, principles, etc) are not easy to understand and use. Some descriptions are even misleading, and may result in problems when adopting the instrument.
- Trust: Some of the instruments (patterns, principles, etc) are provided without the necessary community revision and consensus.
- Usability and Speed: Going through some of the instruments may involve a lot of time and effort invested by the readers before thay can apply the instrument.
- Searching and indexing: There are no tools to help software engineering instrument users (or consumers) to find the artifacts that they need to solve their problem (I believe there was even a repository called Pattern Labirinth). In some fast-evolving fields this may represent an insuperable barrier to the adoption of those instruments.
- Lack of computer-orientation. While all software engineering instruments must have a human-oriented perspective to serve the purposes of understanding, transparency and education, the lack of a computer-oriented perspective hinders their adoption in real world where our users (or consumers) work with CASE (Computer-Aided Software Engineering) tools such as modelling tools or IDEs. We firmly believe that, apart from ensuring their quality, usability, trust and searchability, being able to use SEAs directly in CASE tools is a must if we want to foster their use and to move from education-oriented instruments to engineering instruments.
- Lack of sustainability. Most of the existing initiatives are either heroic efforts to contribute to the community, or commercially-oriented efforts. This means that after some initial enthusiasm and devoting lots of their time, these efforts get to a point in which they are no longer sustainable and they (sometims slowly, sometimes quickly) die because their model is not sustainable. Some commercially-oriented initiatives survive thanks to this commercial nature, but their content can never be as wide, or fresh, or have the same level of quality as a community-based initiative.
In line with the previous reasoning, we offer software engineers a centralized online location to find curated software engineering resources. But we do not only want to make them available to the community, but to facilitate their use by software developers in real projects and with the support of CASE tools. We aim to collect, refine, and improve not only design patterns but all kinds of software engineering instruments (a.k.a. artifacts, which for us essentially means anything that contributes to the development of quality software). The curation process is collaboratively performed by selected software engineering experts adopting the “forge” approach, consequently, PatternForge provides web-based collaboration tools supporting the whole artifact lifecycle inspired by the work done in the PLoP conference series.
Learn more at https://patternforge.org/