A framework, sometimes known as a software framework, is a foundation for creating software applications. It serves as a basis for software developers to construct applications for a certain platform. A framework may also comprise code libraries, a compiler, and other software development tools. Framework engineers are responsible for designing and developing frameworks. They may also work with 3rd party developers to integrate their products with the framework under development. Sometimes they are referred to as "framework maintainers". A framework developer starts with an idea that this new framework will help people create their own apps more easily. He or she may also start with some existing technologies and design a new framework using those elements. The framework developer may also use parts of other existing frameworks if they feel that it will help them create a better framework. There are many different roles within the framework community. Some of the most common ones include: Framework architects/designers - they think about what features a new framework should have. They may also work with users to understand how they want to use the framework once it's finished. Developers - these people write code that can be used to build applications following the rules of the framework. They may also contribute ideas for improvements or new features for the framework. Testers - these people test newly written or modified pieces of code to make sure that they work properly. They may also use utilities to find errors in your code.