Two increasingly critical challenges to effective, money-making, customer-delighting collaboration immediately leap to mind:
- getting apps built, deployed and tailored as needed rapidly and cost-effectively; and
- getting and keeping those those apps aligned with critical, subject-to-sudden-change key business processes.
I thought Colin might have some useful thoughts on the current state and near-term future of business application-building. And I was right, as you'll read below. (I've added links to appropriate Wikipedia definitions and other resources rather than inserting a bunch of distracting explanations for some of the terms Colin uses. You're welcome.)
Q1: What is the greatest challenge facing business application builders today?
A1: Time/Cost. The business manager might say "We just need to manage XXX". He/she thinks of it in terms of a simple Web interface and expects that it should take a few days or weeks to complete.
But to meet corporate standards and government compliance, it also needs a ton of back-end and reporting functionality, such as: auditability, dashboards, automated backups, security, [support for] Web services/REST APIs, graphical charts, searching, synchronization with other systems, data integrity constraints, database connectivity [and] export/import capabilities. The list goes on and on.
By the time they have finished and debugged all this, the "little" project has taken man-years, cost a million dollars and may well be obsolete because requirements have changed.
Q2: What is the greatest challenge facing providers of tools and solutions for business application builders today?
A2: Providing a compelling value proposition. The old proposition of "Invest in months of training so that you can build applications that only the original developer can maintain" is no longer acceptable, especially when it involves some proprietary language.
With the possible exception of Microsoft, no single company can really afford to keep their proprietary technology apace with the rate of open-source development stacks. The LAMP [Linux/Apache/MySQL/PHP] and open-source Java stacks are simply evolving too quickly. Compare the rate at which Android has developed, as compared to the Microsoft smart-phone OS (assuming you can still find a Microsoft-based phone).
Tools and solutions for business applications builders must therefore leverage the open-source stacks, while adding compelling value.
For example, the tool might automate provision of all the "standard" functionality such as auditability, dashboards, automated backups, etc. The developer could then focus on development of the user interface and specialized business logic, so that the whole application could be built in a matter of weeks.
Q3: What is the "next big thing" in the building of enterprise applications -- technological, cultural or other?
A3: Removing the need for hand-coding. It is not only a huge time-sink, but the source of most problems.
The Google App Inventor [for Android] is doing this in the smart-phone space and we are doing it in the enterprise application space.
Let’s examine the main reasons that CIOs are fired, as described in a 2009 CIO Strategy article:
Project never gets finished or goes too far over budget. (Removing the need for custom coding reduces the time required to develop a project by a factor of four or more.)
Major application failure. (If the tool allows the project to be developed using the functionality built into the core platform, then it will be leveraging a code set that has been tested for scalability, audited for security and proven in hundreds of enterprises worldwide.)
Non-compliance or a high-risk issue compromises the organization. (Compliance support can be automated with a tool that only shows an auditor what a defined business process is and how the system enforces it, but how the process has been followed in any particular instance. The framework can capture and collate data, such as who logged in, what IP address they came from, what records they viewed, edited, etc.)
There are further advantages [when the need for hand/custom coding is eliminated]:
- User adoption is a lot easier with a system that can be rapidly adjusted based on their feedback.
- If there is no custom code, there are no code-compatibility issues with upgrades.
- Business managers no longer need to agree with one another on everything six months in advance. After all, the system can be changed using just a browser in a few hours. They are also no longer dependent on the “common sense” of programmers to deliver the system they need.
- The system is self-documenting because everything is exposed through the admin browser.
- Data integrity is automatically maintained by the system, not by custom code.
- Code maintenance accounts for 80% of the cost of software projects. With no code to write, there is no code to maintain so cost, hassles and unpredictable delays are eliminated.
One of the major drivers of IT into the heart of almost every business on the planet was this intentionally vague value proposition: automate/eliminate mundane tasks and let people concentrate their skills and efforts on higher-value activities. As technologies for building, tailoring and deploying applications have evolved, "programming" such applications is increasingly becoming more mundane than unique and creative.
Of course, that means the "programming" of tools such as App Inventor for Android and EnterpriseWizard must result in tools that are powerful, yet relatively simple to use for those building and tailoring applications. Colin and his team, like the team at Google Labs building and refining App Inventor for Android, understand the criticality of combining power, flexibility and simplicity in a balance that favors, supports and empowers users.
Companies seeking to build premise-based or hosted/cloud-based applications that improve competitiveness and agility without requiring extensive programming or IT support resources should look closely at solutions such as App Inventor for Android for mobile applications and EnterpriseWizard for others. The better your business applications, and the fewer resources you have to spend on building, running and improving them, the better the collaborations your company translates into revenue and profit. You have little to risk, and much to gain, by exploring such solutions now.