Features for preventing problems
Above all, it should be mentioned that there's no single method of software development that is suitable for all software projects. The qualities of a good software development methodology are the features that provide solutions to the problems facing a project, hence software development methodologies that focus on providing solutions to non-existent problems will have less relevance than methodologies that are designed to address the problems that do exist within the project. The first question to be answered shouldn't be about which methodology to choose, but what are the problems faced or likely to be faced by the software project?
Formality
Although it may not sound like a feature, having an element of formality will help to keep the project on track by providing a process that people are aware of. With formality come rules and requirements, which in turn produce discipline — required by the development team and the client.
It is the outcome of formality...