Give customers control over their software

As software developers, we need to listen to our customers. We collect feedback, organize customer focus groups, perform usability testing, and create customer surveys. But how many software packages provide a built-in mechanism allowing customers to modify the software to work exactly the way they need it to?

Your customers do want to customize your software if there were only an easy mechanism to do so. Imagine Microsoft Excel™ without any macro programming language. Not every user writes macros in Excel, but there is usually one advanced user in every office that customizes spreadsheets and creates macros for their specific application and shares them with their coworkers. But creating a modern user interface using Excel macros is nearly impossible.
One of the reasons most software cannot be easily customized is that the development tools programmers are using do not provide an architecture or framework for customization.

Customers are capable of programming

More and more customers are learning web programming to handle their own needs. Community colleges are teaching courses in web site development, and programming in PHP, JavaScript, or Visual Basic script. Customers are becoming more computer literate and many of your customers have now been using computers since they were children.

Many developers dismiss the idea of allowing end-users to customize their application thinking that the customer is not capable of such complex programming. However, like web development, customers can and will program if you give them programming tools they can understand. Most modern programming languages used by developers are far too complex for the average customer, with obscure syntax or advanced concepts such as classes and objects. Object-oriented programming is wonderful for programmers, but not for end-users.

What kind of development tools are needed for customers?

To customize your software, customers need tools that are familiar, easy to use and understand. But these tools also need to provide the power necessary to accomplish what the customer needs. Here are some basic requirements for end-user development tools:

zApp provides the tools needed by customers

Zugg Software has developed zApp, a system that can be used to create applications easily customized by end-users. It is compatible with existing development tools such as Visual Studio, .NET, Delphi, or any other system capable of creating Windows COM objects or ActiveX components.

zApp programs are written using XML, building upon the customer’s knowledge of web programming. The user or developer can choose any scripting language supported by Windows, including Visual Basic script, JavaScript, PERL, Python, PHP, and many others. These scripting languages can be freely mixed within an application or within plugins written for your application.

Extensive function libraries are provided for string manipulation, date and time calculations, mathematical operations, network and web page access, XML processing, and file manipulation.

A powerful set of visual components are provided to create modern user interfaces. All components are tightly integrated, and provide features such as built-in as-you-type spellchecking, integrated database access, and Windows Theme skin support on all versions of Windows. Visual components include modern menus and toolbars, edit controls with regular-expression masking support, combo-boxes, lists, check and radio boxes, buttons, panels, HTML-aware labels, multi-line memos with rich-text, HTML, and template support, Grid and Tree views, tabbed pages, and much more.

Native database access is provided for a wide range of databases, from robust client/server systems such as MySQL, Microsoft SQL Server, Oracle, Sybase, DB2, PostgreSQL, and Interbase (Firebird), to simple local database access using SQLite or Microsoft ADO. Every visual control is zApp is data-aware, and controls such as the Grid and Tree support powerful data visualization.

Applications written using zApp can be deployed as a single executable file that does not require the end-user to own zApp. Or, end-users can purchase their own version of zApp and create plugins for your application and customize your application in any way that they want, while preserving your intellectual property. Once your application is deployed, updates can be sent via small XML text files without redistributing the entire application.

zApp provides the best of both worlds: for high performance, code from existing development tools can be used in the form of Windows COM objects or ActiveX controls, while end-user customization and user-interface creation can be performed in a simple and powerful scripting environment. Computer processing power has increased to the point where scripting applications are a viable choice for developers.

zApp puts the control over your application into the hands of your customer. Learn more about zApp at http://www.zuggsoft.com/zapp