Agile practices such as unit testing, story-based requirements gathering, and pairing are intuitively appealing ways to achieve higher quality and mitigate risk of change. At first glance, they even seem relatively easy to execute: how hard can it be for two people to collaborate, write small business-oriented requirements, and code tests with each bit of software? Executing Agile practices can be quite difficult to perform. For one thing, they make people uncomfortable because they challenge work habits long established in IT. For another, they give the appearance of reducing productivity. This can lead teams to try to take shortcuts to becoming Agile. Selectively gaining experience with Agile practices is of value when first taking them on, but denying them completely leaves the benefits of Agile practices unrealized, and can cause more harm than good to a development team.
Interesting Read. Blogmarking it