Each human being is unique and has a different personality, behaviour, and mindset. Therefore, defects and imperfections will always arise inevitably in the process of development.
Defect prediction is something that a tester performs while creating test-cases. This expression you can use to describe all test design techniques. After all, the main goal of this process is to identify the place and circumstances of the error possibility. Not less important part is to check it in the process of the testing. This particular skill is a great help to the quality assurance engineer. It is, however, not necessary to have experience in software development to predict errors. What is needed to be understood are the basic logic of coding and the requirements applying to the end product. It is also worth mentioning that having experience in similar projects will be helpful. If there is no such experience, the alternative way is to use the help from the colleges who apply this technique to daily work. Nevertheless, the best thing is to focus on those known techniques which help to achieve reliable results.