Update: I had the filename as drush.autocomplete.sh, but the filename should now be drush.complete.sh. Brent noticed this. The info below as been updated as such.
Not architecting features can lead to more work than is necessaryA common problem for building features without architecture is that developers tend to build the features directly without a plan for scalability.