Enterprise Software Design Blog

Archive for the ‘On Demand’ Category

As discussed in my earlier post(Extensibility Design), an extensible design provides the ability to customize an enterprise application software to server business needs of different customers. Extensibility is critical to the application software vendor especially if the software is delivered through a SaaS or On-Demand model. The underlying application architecture should support a metadata based model, which will provide a framework to extend the out of the box application to suite different customers’ needs. The framework should provide a generalized mechanism to construct application components to build the software.

The generalized mechanism for extensibility will mainly provide following three features.

  • Data Model Extensibility: The end users should be able to manage attributes with in a business objects. They should be able to add a new attribute of any data type and define rules for it.
  • UI Extensibility: The end users should be able to add new attribute to the UI forms as a field and the data can be added/modified using these fields. The field can be either simple editable text, number (such as amount, percentage), lookup or even media object (such as image, video) etc.,
  • Security Privileges: The design should take in to account that can extend a business object and once extended who can view and manage these extended attribute.

Data Model Extensibility

Data model extensibility is achieved through flexible attributes. Flexible attributes are generic attributes that is associated with a logical business objects. Flexible attributes are of generic data type (such as Raw) and can hold data of any type. The data will be stored as raw bytes and will be converted to appropriate data type on the business layer before transaction processing. An example of flexible attribute for CRM Opportunity object is given below.

UI Extensibility

UI Extensibility refers to the ability to add a field on runtime to a page. A ‘customize’ link will bring up the extensibility editor which will allow the users to create a new field in the form. The editor will prompt the user to enter the label and type. The types can either text, number of lookup. If lookup is chosen, then the editor will prompt the user to enter the lookup items. The user can also choose other properties such as required field and validation rules (not shown in wireframe below).

Security Privileges

The visibility of extended attributes and fields will depend on the security privileges. The attributes in the data model will inherit the data security policy defined for the logical business object and the function security will depend on any of the following.

  • Organization Hierarchy: The field can be made visible to the any of the organization hierarchy defined such as sales org, marketing organization etc.,
  • Employee Hierarchy: The field can be made visible to the any of the employee hierarchy defined. The administrator will choose a sales VP and all employees reporting under sales VP will see the fields.
  • All Users: The field can be made visible to all the uses with in a enterprise.

It should be noted that in a SaaS model, the customization will be visible only to those who extends the product. Subscribers’ from other customers will not be able to see these changes.

Advertisements

Enterprise Software products are unique and generally different organizations use it differently. It will be rare or impossible to see enterprise software used without modifications by enterprises. A typical enterprise has unique needs based on their organization structure and they customize the software available off the shelf. They hire functional and technical consultants, who have expert level knowledge of underlying technology and functionality to perform these customizations. The nature of customization could be either simple UI change, data model change or it could even more complex such as behavioral change (i.e. configuring workflows, adding business rules etc.,) or third party integrations. The consultants will typically make changes to the application source code and would require source code maintenance with the enterprise.

With the emergence of SaaS delivery model and multi-tenancy needed to achieve economies of scale, software customization for individual is not a viable option. The vendor will not be able to maintain versions of software for every customer and with software available on cloud the enterprises cannot maintain source code in house. At the same time, customers should be able to extend the product functionality to suit their needs. Software extensibility framework helps software to be customization without a need to change the underlying source code. A good extensibility framework design will allow the end users to customize the software and these customization will be visible only in the instance which the customer is accessing.

An extensible design can be categorized as following.

  • UI Extensibility: The user interface layer should be extensible and the customer should be able to customize the look and feel of the application. This customization can range from changing colors, application branding (i.e. changing logos), changing widgets look and feel and advanced customization such as customizing label texts, show/hide UI widgets, customizing error messages etc.,
  • Data Model Extensibility: The end users should be able to extend the data model for any object. They should be able to add a new field to the form and add data to it. The field can be of any data type including the multimedia content. The application should allow for defining validation rules and lookup values. Note that the data model extensibility generally doesn’t allow for creating data model or re-defining object relationships.
  • Workflow Extensibility: A typical business process consists of a workflow that is sequence of connected steps helps complete a task. The extensibility should allow the end users to configure these workflow steps (i.e. add/delete a step), define business rules, add notifications etc.,

I will discuss each of these with an example in my subsequent posts.

Introduction

Predictive analytics is the latest buzzword in the enterprise software industry and it you go by predictions from industry watchers, every vendor will offer predictive analytics solutions. With most enterprise vendors acquiring predictive analysis technologies (i.e. Oracle acquired Hyperion, SAP acquired business objects and IBM acquired SPSS) we would definitely see some predictive analytics solution coming out from these companies. The customers are more than happy to give predictive analysis a try and why not in this economic malaise, if somebody is offering a sneak peek in to what’s in store in future, then why not.

Predictive Analytics

Predictive analytics is a technique by which the current and historical data are analyzed either thru sophisticated data mining tools or (and) applying statistical techniques to predict a future event. The future event could be predicting future sales, employee performance, budget requirements etc. The output could be either a detailed report (i.e. table, chart) or it could just be a single number. Predictive analytics is different from the traditional BI analytics in that predictive analytics looks at the present and historical data and predicts a future event where as tradition BI analytics looks same date and provides insights in to these data such sales by products, sales by territories etc.,

Traditionally application vendors provided predictive analytics tool as separate software that needs to be integrated with the existing database systems. Some tools will read the data directly from OLTP and data warehouse sources where as some other will define its own multi-dimension database (or cube) to load data in to it. These tools are capable for implementing sophisticated statistical techniques such as linear regression, time series forecasting, prediction model etc. The end users of these tools should be well versed with the business data, data warehouse concepts and statistical algorithms to effectively use these tools.

Pain Points

Though predictive analysis software offers real business benefit to enterprises, it is only used by very few with the enterprise. This is due the fact that majority of the enterprise users such sales managers, HR managers are not statistics expert and usually they don’t have enough bandwidth to engage statisticians and dive in to the maze of enterprise data. Senior executives such as the C’ level executives and VPs use these with the help of these experts. They basically use these to make important business decision such as budget allocation, high level territory performance and forecast etc. Most often these tools are not used regular day-to-day users.

To bring the benefits of predictive analysis to the end users, I suggest the following.

  1. Embed predictive analytics in to transaction pages
  2. Helps complete a business process
  3. Avoid technical and statistical terms in UI as much as possible.
  4. Do not over engineer

Design Solution

The example given below predicts the future sales of a particular product. It looks at the historical data ( i.e. from Jan – Sep ) and predicts the sales for the next quarter. This analytics will be used by a sales manager to view the sales target and the predicted sales through out a calendar year.The sales manager will use this tool to better plan and align the sales resources.

Month       Sales               No of sales rep
Jan             $100,000                 1
Feb            $120,000                  3
Mar            $123,000                  3
Apr            $110,000                  2
May           $112,000                  2
Jun             $119,000                 3
Jul             $115,000                   4
Aug           $110,000                  2
Sep             $100,000                2

Product Category         Customer Category        Sales
Desktop                                 2M-3M                                        $112,000
Desktop                                 3M-5M                                        $140,000
Printer                                   2M-3M                                       $120,000
Printer                                   3M-5M                                       $150,000
Laptop                                   2M-3M                                       $122,000
Laptop                                   3M-5M                                       $115,000
Services                                2M-3M                                      $120,000
Services                                3M-5M                                       $130,000

Predict Future Sales

The application uses time linear time series regression model to compute the future sales. The predictive model uses the following dependent variable to predict the future sales.

  1. Potential Revenue in pipeline
  2. No. of sales rep reporting to sales manager
  3. Product category sold
  4. Customer size

The sales manager can either use the standard forecasting method or use any of the standard averaging technique to predict the quota. Though this is little too technical for a enterprise user, having different technique till help the manager look at the other model and minimize errors and risk and it will give him confidence in the prediction.
The predicted sales and the red bar in the chart will change as and when any change is made. The model uses the liner regression with any of the chosen method and uses the time series forecasting to predict the future sales for the coming months and quarters. The user can adjust the dependent variables view real-time how the sales will be for next quarter and he can continue to do it until the target value is reached. At the end of the prediction, the end user will know what should the pipeline revenue, how many sales rep, what products should be sold to what kind of customers will be known and the he can strategize the sales activities

Software as a Service (or On-demand applications) has evolved tremendously over the past couple of years. After the success of companies such as salesforce.com and Netsuite, even the traditional on-premise vendors have started delivering their applications on an on-demand and hybrid model. This presents a disruptive change and challenges to the vendors, customer and integration partners on how they conduct their business. Gone are the days when a vendor used to sell a product for a fixed license cost and is assured of maintenance revenue every year. The customers no longer have to make huge capital expenditure to make the application and system work since it has been purchased. The system integration partners can no longer offer implementation and customization services. In the SaaS (or on demand) vs on premise series of posts, I’ll discuss these challenges faced by the entire enterprise software eco-system and how it can be overcome with smart design.

On traditional on-premise model, once the customers buy enterprise software, they will ensure that software is implemented, customized and used by all its employees. They will spend much more (which incidentally forms the bulk of the TCO) than the application cost to implement the software. They need to hire expensive business and technical consultants who will help them define business process, customize the application and get the application up and running for the employees to use. Since most software implementation brings in big changes with-in the organization, they need to conduct elaborate training program with the help of partners and enterprise software vendors to bring the employees up to speed. Even after the successful implementation and training, there is no guarantee that the software will be used across the enterprise. If the software is not used by the employees (due to poor user experience or poor short term benefits to the users), then the entire customer’s investment goes in vain. There is no incentive for the application software vendors to make the software useful to their clients.

On an on-demand model there is no compulsion on customers somehow make the software work since there is no upfront investment. They can use the software on a trial basis and if the software is not used within the organization (due to poor design or no apparent benefits emerging out of software or don’t add value to the company), then there is good chance that the customer can easily switch to another vendor or just stop using the software. The customer can terminate the subscription and recurring revenue tap will be turned off for the enterprise software vendor.

The software vendors will realize the fact that its not enough to deliver a software that is feature rich, moderately useable and with accepted quality standards. They need to ensure that the software is usable, adaptable and provides short term clear benefits to the end user that’s attracts them towards the software. The software needs to be exciting to end user and it should have a ‘pull factor’ that makes the users come back to the application.

To create the ‘pull factor’ and make the software compelling for the user, the software needs to display new and relevant content to end users each and every time they login to the application. This feature is used in social media application on internet as Facebook and youTube, where you would see different content relevant to the logged in user every time they login. Or take an example of a simple email application (Gmail, Hotmail etc.,) which attracts the users since new content (or emails) are displayed every time the user logs in.  As the users start using the application, he would start creating more content (i.e. incoming emails, outgoing emails, contacts etc.,) over a period of time. Once a huge amount of content is created, then moving to another application becomes tedious and virtually an impossible task. Similar pull factor can be created on the enterprise on demand such that the user will be attracted to the software and over a period of time will create enormous content the users cannot live without the application and moving to another application will tedious and time consuming.

One such design idea I have for the pull factor is displaying enterprise updates as live feeds. The application can configure events and when the event occurs the application will detect the event and will be displayed on the users’ screen whenever the user logs in. The end users are always curious to know about the information that is going around within the organization and relevant to them. A smart organization will use this to drive the employee performance as well. For example, a sales representative always wants to know what changes are made to the sales organization, how do they performed against the peers,  who’s the top sales person in a week or month, information about key deals, discount offered etc., Optionally these live feeds can drive the user to complete tasks.


Archives

Advertisements