Sadly in the software development we don’t have the same luxury than Edison. Even though it’s kind of a “corner stone” to learn something new.
Is there an easy way to be same time productive and able to learn how to do things that work? And maybe even improve our skills to provide solution that could be called beautiful? The answer for the latter part is easy: by (test) automation. But the same thing could also be helpful for the first step, when automatic tool creates code from models. Models, that define how system should work and what kind of processes it should use.
OK, so automation would help us improve, and help us to reserve time to tasks that seem (currently) too hard to automate. Is recognizing and making these hard tasks manually the ultimate final goal? Goal, which leaves IT industry to live happily ever after? The answer to this almost rhetorical question is “no”. If industry gets some “spare time”, it’s used. It’s used for either development of better tools to handle also those hard tasks automatically. Or figures out new problems, that are too hard for current automation. A bit like Universe:
“There is a theory which states that if ever anyone discovers exactly what the Universe is for and why it is here, it will instantly disappear and be replaced by something even more bizarre and inexplicable. There is another theory, which states that this has already happened” The Original Hitchhiker Radio Scripts, Douglas Adams.
Just one note about automation: It can solve things quickly, and destroy things even quicker. Knight capital provided use nice example of this.