I just read an article from Jason Gorman, from Parlez|UML, on skepticism in software development. He explains that a lot of preconceived theories about software development abound but few of those theories have been thoroughly investigated and therefore, it is difficult to know if they bring value to the engineering process or not. For example, Jason mentions refactoring that claims to make changes easier without supporting research. In my understanding, this leads to more academic research on those theories to validate them and also to explore their practical boundaries and limits. I believe that this is a perfectly valid, and necessary approach.

However, in parallel to this academic approach, I would have a tendency to take a more pragmatic route. If a concept like refactoring comes to my attention, I would try it out in my environment, see if it has value to my organization and decide, after retrospective, to continue using the method or not. Also, you can not detach the software engineering method or principle from the human component. The method, under properly applied leadership,  has to be accepted and embraced by the programmers, testers, or UX designers that would use it. Therefore, the development team, including its lead, decides, if a particular theory helps bring more value to customers.

[via Parlez|UML]