Software development appears to be heading in a similar direction as automobile assembly. Before Henry Ford revolutionized the industry every car was unique and complicated. They required specialized mechanics who knew the specific vehicle inside-and-out. This sounds very much like software development today; it is possible for any developer to get into an application and make changes but it is only efficiently done by someone intimately familiar with the specific nuances of the application.
We're very close to a tipping point in development where applications may be created on an "assembly line". It is already beginning, you no longer (and haven't for quite a while) need to know HTML to create a website because many hosting companies have a WYSIWYG editor that allows you to generate the markup needed to display content on a site. I'm writing this in a blogging engine right now that doesn't require me to change my CSS to alter the look/feel of my post. Using Google Drive you can already create forms that accept data and store it for analysis. When you're talking about a simple application there isn't much left that needs to be automated for anyone without development experience to be able to create an application.
Many developers (including myself) would say that the last part is probably the most difficult because it consists of what many would call the business logic. These rules around what needs to happen when certain data is entered or certain events occur is where many developers spend their time because it is so intricate and specific. Perhaps the "assembly line" will end up creating everything except for this detailed logic but the possibility for this to become computer generated seems inevitable as well.
Developers are inherently efficient; we strive to solve a problem only once and allow tools to manage it from then out. How many different tools do you use in your development workflow and how many of them are designed to automate a portion the process? The development for the software assembly line has already begun and it exists in small disparate tools created by individuals to help solve a small problem or annoyance.
When we finally hit this point where software is generated by more software where will all the developers be? Will developers become more like auto mechanics today only jumping into applications to fix things when normal wear-and-tear as taken it's toll? Should the focus now be on building, maintaining, and updating better assembly lines?
We're very close to a tipping point in development where applications may be created on an "assembly line". It is already beginning, you no longer (and haven't for quite a while) need to know HTML to create a website because many hosting companies have a WYSIWYG editor that allows you to generate the markup needed to display content on a site. I'm writing this in a blogging engine right now that doesn't require me to change my CSS to alter the look/feel of my post. Using Google Drive you can already create forms that accept data and store it for analysis. When you're talking about a simple application there isn't much left that needs to be automated for anyone without development experience to be able to create an application.
Many developers (including myself) would say that the last part is probably the most difficult because it consists of what many would call the business logic. These rules around what needs to happen when certain data is entered or certain events occur is where many developers spend their time because it is so intricate and specific. Perhaps the "assembly line" will end up creating everything except for this detailed logic but the possibility for this to become computer generated seems inevitable as well.
Developers are inherently efficient; we strive to solve a problem only once and allow tools to manage it from then out. How many different tools do you use in your development workflow and how many of them are designed to automate a portion the process? The development for the software assembly line has already begun and it exists in small disparate tools created by individuals to help solve a small problem or annoyance.
When we finally hit this point where software is generated by more software where will all the developers be? Will developers become more like auto mechanics today only jumping into applications to fix things when normal wear-and-tear as taken it's toll? Should the focus now be on building, maintaining, and updating better assembly lines?
Comments