Feature Driven Development (FDD) is an agile software development process that divides projects into small incremental pieces of work called features. The FDD process involves 5 main steps: developing an overall model, building a features list, designing by feature, coding by feature, and testing by feature. Key roles in FDD include a project manager, chief architect, and development manager who work with chief programmers and class owners to plan and implement features in 2 week iterations. FDD aims to improve communication, reduce complexity, and increase quality through its iterative approach and emphasis on modeling, class ownership, and tracking progress at the feature level.