By working iteratively, fixing bugs often instead of leaving them to the end, and integrating early, Adobe was able to produce better quality code, release enough functionality, and improve the working environment for developers.
The details of all of their practices are not discussed in the article, but a focus on (1) iterative development and (2) per-engineer bug limits (if any engineer's bug count passes 20, they have to stop working on features and fix bugs instead) are described as the main practices that enabled success. The article also implied that adoption of a practice is more than 'just do it' but involves being patient and persevering through the hard times.
Finally, having a champion who has 'been there, done that' is one of the most effective methods to achieve successful adoption of development practices.