The communication errors which results in loss of details about what the application should do and should not do lead to bugs. Sometimes programming errors can also lead to bugs. Other reasons for bugs are, changing requirements, short time limit which hurries the software development and leads to bugs.