I’ve been a software developer for over 10 years. I’ve worked using multiple design paradigms– Waterfall, Cowboy, and something like Agile. I personally prefer an Agile software development method– many regular releases as customers need them, versus huge planned releases. One of the keys behind successful and efficient Agile development is shortening iterations.
Iterations are all over. Every time I check in source code, build on my build machine, and run it on a QA machine(and potentially go back to change more code to fix/enhance something), is an iteration. Other iterations exist when shipping changes to a website, processes for fulfilling license keys, etc. Each step in the process takes time– being able to eliminate/streamline that process will pay dividends time and time again, in exchange for a little time upfront to automate it.
Even better yet, is being able to automate iterations so they’re triggered and performed automatically. One of these, is automatic fulfillment of license keys. I sell two of my products, Overseer Network Monitor and Employee Scheduling Pro, online. When someone purchases a key, they expect that license immediately. While it may take time to write the appropriate code to integrate with the shopping cart, doing so pays off two fold– one, in that I don’t have to spend the time manually generating the key and sending it to the customer, and the other is that the customer gets it immediately, which makes them happy(happy customers are good customers).
It’s important not to lose site of this… With everything you do, think about how many times you do those steps, and think if you can automate the process– and potentially even the triggering of that process. You’ll thank yourself later.