To innovate in any field one needs to be passionate and at the same time have a complete understanding of all aspects of that field.
Of course the above is not completely true as far as software development is concerned. There are many formal aspects to software development, for argument sake the user interface design, that could require some formal education as one could apply industrial psychology in terms of colors, naturally occurring eye movements and other factors. There are also physical factors like eye strain and more psychology like human eye habits, development and training of user habits. (This is so that your software users expects your navigation. For example the difference in interface between an apple and a ms windows pc)
True software innovation springs from the delivery of something new, something useful, unexpected and it grows into something that any user would not be able to imagine how they even survived before that specific software was available.
In truth computer software hardly ever just becomes available. Software goes through a continuing process of development and use before developing maturity and then usually follows the route of over development as the drivers of that software over develops it. let’s take the ever popular WordPress blogging software as an example:
WordPress has become the defacto standard in blogging software in a reasonably short space of time. The WordPress application is stable, mostly secure and has hundreds of plugin applications developed by many companies that build on the WordPress success by developing their own products that can be sold additionally to the free WordPress system software. WordPress also has hundreds of people that develop templates for the popular blogging software and earns a living from doing so.
The latest versions of WordPress are however showing classic signs of over development as the software administration interface now checks for browser versions and whether the user of the blogging software’s browser is at it’s latest version. (Probably because it uses bleeding edge browser functionality that has not yet become standards or widely accepted or reviewed)
Over development of software is a natural process as the drivers are usually last to accept that their application has reached it’s pinnacle in terms of user expectations and the drivers always believe that they can just add this or that to further enhance the popularity of their offering and it is only when popularity starts declining that such over development becomes apparent.