Today, software is being developed and maintained not just by engineers educated formally but also by people from widely different backgrounds including children, knowledge workers among many others. However, a number of studies indicate that most of these people are not equipped with enough software engineering skills leading to low-quality software. On the other hand, an analysis of literatur...