How We Created a Scoring Engine Using an Expression Rule Engine.

Scoring is the core decision-making module in a lending process. It identifies the creditworthiness of a customer based on credit files & other related information. Credit file information is usually provided by an independent credit bureau. The algorithm for finding a score varies with the type of lending & the lending institution. While developing lending software for a leading mortgage institution, we faced a situation wherein the final score was based on multiple sets of information known as ‘scoring variables’. The ‘variables’ set included basic customer parameters like ‘Age’, ‘Income’ & information received from independent Credit bureaus. These variables were of different types; such as a numeric field like ‘Age’ or pre-defined text like ‘Pay-Frequency’. The first decision we had to make was to either go with a third party business engine that handles scoring or to create one of our own. There are vast variety of business engines available in the market. But our focus was on maintainability, ability to handle complex business rules & cost. We decided to create our own scoring engine. For building a scoring engine, we first looked at the Windows Workflow Foundation (WF). WF is flexible enough for handling complex sets of algorithms and it gives a nice user interface for the developer implementing it. But with the response time, we could manage with WF and the data-driven approach which we were looking for, WF was not a practical option for the requirements of our scoring algorithm. ‘Expressions Trees’ in .Net represent codes in a tree-data structure. Each node is some kind of expressions like a lambda expression or a method call. Please note that Expression Trees widely use DLR (Dynamic Language Runtime). It fits nicely into the scoring engine because the codes written as expressions can be compiled & run dynamically. This enables dynamic changes to the algorithm & its variable usage. This would mean that the participating code can be fed into the scoring engine from outside & can be stored in Databases, xml or other data structures. Since scoring engines involve a lot of binary expressions (like Age > 60 => Do something) Expression Trees are very helpful. Expression Trees are created using the System.Linq.Expressions namespace. A simple illustration of constant integer value comparison: static void Main(string[] args) { SpaceSplitParseNumericExpression(“8 GreaterThan 4”);//Returns true (8 > 4) SpaceSplitParseNumericExpression(“5 LessThan 1”); //Returns false (5 < 1) Console.WriteLine(“Press any key to exit”); Console.Read(); } public static void SpaceSplitParseNumericExpression(string expression) { string[] tokens = expression.Split(‘ ‘); bool output = Expression.Lambda<Func<bool>>( Expression.MakeBinary( (ExpressionType)Enum.Parse(typeof(ExpressionType), tokens[1]), Expression.Constant(Convert.ToInt32(tokens[0])), Expression.Constant(Convert.ToInt32(tokens[2]))) ).Compile()(); Console.WriteLine(string.Format(“Expression ‘{0}’, returns: {1}”, expression, output)); } For an actual scoring engine, Parameter Expressions are used along with Constant Expressions, to make this logic more dynamic & flexible. These parameters & constants can then be stored into a DB or any other data source which can be read by the engine on a need-basis. Thus we ended up creating a scoring engine which does not have hardcoded numbers in the code and is compact, fast & easily maintainable. < 1) Console.WriteLine(“Press any key to exit”); Console.Read(); } public static void SpaceSplitParseNumericExpression(string expression) { string[] tokens = expression.Split(‘ ‘); bool output = Expression.Lambda( Expression.MakeBinary( (ExpressionType)Enum.Parse(typeof(ExpressionType), tokens[1]), Expression.Constant(Convert.ToInt32(tokens[0])), Expression.Constant(Convert.ToInt32(tokens[2]))) ).Compile()(); Console.WriteLine(string.Format(“Expression ‘{0}’, returns: {1}”, expression, output)); } For an actual scoring engine, Parameter Expressions are used along with Constant Expressions, to make this logic more dynamic & flexible. These parameters & constants can then be stored into a DB or any other data source which can be read by the engine on a need-basis. Thus we ended up creating a scoring engine which does not have hardcoded numbers in the code and is compact, fast & easily maintainable.
Tavant at the Warranty Chain Management Conference 2014, San Diego

The 3-day event is a global platform of ideas, challenges, opportunities, and guaranteed solutions related to Warranty management. The 10th edition of Warranty Chain Management Conference is intended to appeal a diverse range of organizations. Executives, managers, senior contributors, CEOs, strategic leaders, and domain experts from service life-cycle management will share common warranty issues and solutions to aid and foster warranty management as a discipline. As warranty management continues to gain momentum, close to 500 organizations across diverse industries have announced participation at the global event in San Diego. Taking yet another leap in thought leadership, Tavant is a key sponsor of this event, where it will showcase its flexible and end-to-end Warranty solution that continues to enable manufacturing firms transform their warranty management. The subject matter experts from Tavant, along with some of its global customers, will be speaking on topics related to Building Material, Automobile Warranties and Rules-based Warranty Systems. Tavant Warranty — A Global Preference Global corporations such as Ingersoll Rand, Doosan Infracore, Federal Signal and many others have deployed our highly flexible Warranty Management Solutions to increase their aftermarket revenues with optimized extended warranties and service contracts. Our web-based, real-time, full-lifecycle, and flexible pricing model-based solution help reduce warranty spends, eliminate fraudulent claims and reduce claim processing time substantially. The event hosts a variety of presentations, workshops, panel discussions and demos. This edition is all set to get bigger and better. Don’t let this opportunity slip by! Team Tavant hopes to see you there. About the Presenters from Tavant As key presenters of the event, Tavant experts will be looking forward share valuable insights, best practices and success stories on Warranty Management. Tavant Speakers at the conference include: R. Pinto, Head of Service Operations M. Devarapalli, Senior Program Manager, Service Operations and R. Lohan, Product Manager, Service Operations Visit http://lf1.me/Vvb/WCM2014 to learn more about our participation in the event.
Web Services Testing: What do we need to test ?

It is usually stress-free for a tester to migrate from one technology to another, but at times it is more difficult to move from one methodology to another. Jumping from a custom application to Commercial Off-The-Shelf (COTs) is still an easy transition. The tester has a better idea on which parts they need to focus on or which modules are more susceptible than others. With the dispersed architecture of loosely coupled systems which may be technically apart but frequently need to communicate with each other in terms of data requirements is where web services comes into the picture. A web service provides a simple interface for communication for these systems using a typical data transfer mechanism. Ladders in Web service testing: To conclude what is expected from a Web service with respect to business requirements To gather and understand the requirements, and the data transfer standards To design test cases keeping business requirements in mind, the more data scenarios you have, healthier the quality of deliverable It is a thornier task to test complete end to end business flows with all the possible data scenarios. The trick is to have an automated tool which can shorten the testing of web services like Optimyz, SOAP UI etc. Web Services: What all do we need to test? Functionality: We need to look for the following in the midst of functional testing Specification Review (SR) Test Case Development (TCD) Test Execution, the examination of requests & responses Performance: Testing web services performance may be complicated. To avoid this, following a simple rule of clearly mentioning the thresholds upfront, solves problems. Another key is to know the performance requirements in the most accurate manner. For e.g. A good requirement: This service has been identified as serving 50,000 concurrent users with 10 second average response time A bad requirement: This service should serve > 4000 concurrent users, and the response should be fast Security: Web Services are wide-open in a network. This element opens up a host of vulnerabilities, such as penetration, Denial-of-Service (DOS) attacks, and great volumes of spam data, etc. Distinctive security policies have to be imposed at the network level to create a sound Service Oriented Architecture (SOA). There are certain security policies which are enforced during data transfer, and user tokens or certificates are common sights where data is protected with a password. Precise test cases aimed at directing these policies need to be designed to completely test the Web service security Compliance: Compliance testing is required to ensure that: Web services meet certain specified standards Authorize SOAP request/response messages Authenticate WSDL definitions When testers take up web services it tosses many challenges at them, it is still very important to know what they need to do, rather than doing it first to learn costly lessons later.
Payment Tokenization to Reduce PCI DSS Scope

Don’t want the risk of handling or storing sensitive payment data on hosted servers? Want to achieve and maintain payment security (Payment Card Industry (PCI)) certification faster and easier? If these are your concerns, then Payment Tokenization is the way to go. It is a great way to reduce the scope of PCI Data Security Standard (DSS). Eliminating the payment data from your network is the only way to ensure that your customers’ sensitive personal information is not compromised during a security breach. Tokenization is the replacement of sensitive data with a unique identifier that cannot be mathematically reversed. In a transactional environment, tokens take the place of sensitive credit card data. Typically, the token will retain the last four digits of the card as a means of accurately matching the token to the payment card owner. The remaining numbers are generated using proprietary tokenization algorithms. How It Works To make a purchase on a website, the customers will enter their payment card information into the designated payment fields on the order page. When the customer submits the form, the card data is immediately transmitted directly to Card processors like CyberSource for storing, processing, and token generation. The card data never has to get stored in your environment even though you need the card for recurring processing. There are 2 main flavors of tokenization namely Silent Order POST (SOP) and Hosted Order Page (HOP)). Card processors return the result by substituting the PAN data with a uniquely generated token, which one can call subscription ID. You store the token in your database for future transactions or chargeback resolution on that account. For your recurring transactions, you just have to pass that token or subscription ID to the card processor. Customer service representatives can easily verify customers, as the custom token will retain the last four digits of the original PAN. Benefits of Tokenization Reduces PCI DSS Scope Renders payment card data meaningless to hackers Chargeback and payment reconciliation can take place without handling payment data Not mathematically reversible The format fits legacy payment card data fields Integrates with Account Updater to automatically update payment data for fewer failures The interesting part is that, whether you are starting with an e-commerce system of your own or an already existing one, you can easily use or switch to tokenization. If you are starting new, you will get all your cards tokenized but, if you already have cards, you can get them ‘ONE time tokenized’ using some batch process and then you will be able to switch to tokenization for all future orders. In the continuing next part of the series, we will look more deeply into the Flavors of Tokenization.
iOS 7: Do you really ‘need’ it? Or just ‘want’ it?

The iOS 7 release took a toll on Internet traffic, with Akamai’s Real-time Web Monitor reporting Internet traffic at 112% above normal on September 18th. The probable cause – iOS 7 upgrade. At one point, the iOS 7 download overtook Netflix’s traffic. Thanks to transparent caching or some other intelligent feature, the Internet didn’t really break down, but for Conan O’Brien, it did! Now for the real question – whether to upgrade to iOS 7 now or wait. The one and only answer is “Yes”, in whichever way you look at it. But there is much more to it. For an average user of the iPhone, it’s the drastically new user-interface that is driving the upgrade. But for more savvy users, it’s beyond the new aesthetics. Overall, three things stand out with the iOS 7 – iBeacon, Finger Print Scanner (hardware dependent), and AirDrop. Will all these make the little things in everyday life simpler? Only time will tell. Though all Apple users will upgrade to iOS 7, regardless of the model or device, the real intriguing part is the all-important debate – the one between Needs and Wants. Do you need iOS 7 or do you want it? For the vast majority, the answer is they want iOS 7 but don’t actually need it. The reason is also quite obvious – iOS 7 offers many remarkable features and capabilities, but the World is not ready yet (I can be wrong!). The AirDrop feature is quite cool as many iPhone users have been struggling with file sharing for a long time. But the other capabilities might take time for adoption and real use. Some vendors have started to offer Bluetooth LE-enabled beacons and payment services to make life simpler. But how many such examples do we see today – only a handful. Having said that, Apple has done something incredible that no other company has done yet – making hardware, software and services come together like never before. The possibilities are infinite but will take time for larger adoption and start to make those “Little Everyday Things” much simpler. So do you really need to upgrade to iOS 7 now? Go for it to experience the shape of things to come, but for actual use you might have to wait.\
Tavant Warranty – Driving customer success through business process improvement

I have been working with manufacturers to improve their warranty chain management for close to 9 years now. I am among the few in Tavant, who has worked only with manufacturing clients and did not get the opportunity of working on more glitzy-looking solutions for media & entertainment clients. I don’t regret it. My experience with manufacturing companies has actually improved my perception of manufacturing process and makes me appreciate the true value add of IT. When I visit those factory floors (thanks to our amazing customers), I see hard working employees trying their best to make world class products in a cost efficient manner. I see myself as a partner in their effort and always try my best to help them become more efficient and effective, of course with the help from my team at Tavant. Tavant is a specialized Software services company. Our mission is to drive customer success through impactful solutions. Warranty management platform is one such solution. When it was created back in 2006/2007, our main focus was on improving and optimizing customer’s warranty operations. Over the last few years, this platform has been extended to include solutions such as service contracts management, mobile application, and aftermarket business intelligence, dynamic extended warranty pricing, and closed loop supplier recovery. There are numerous examples of how we have used the latest technology for business process improvement as part of warranty solution. Tavant developed a mobile application to automate pre-delivery inspection process for one of our customers. Through minor customization, we were able to provide a single solution to manage warranty and technical service operations for another customer. We recently started using Google translator to translate claims filed in different languages to English so that internal departments such as quality, engineering, manufacturing, and external suppliers can understand the feedback from field. This helped the firm improve its supplier recovery and add more to bottom line for the company in current tough economic environment. Our solution has helped firms by getting more output from same resources. People who were responsible for warranty, are now taking up more responsibilities in the organization. Structured and well documented feedback has also helped engineering departments to design better products meeting customer requirements. I am proud of being part of warranty solutions team at Tavant, which in its own way is helping companies become more competitive and successful.
Applying best practices to e-Commerce Testing

In my last blog post titled: Tested Tips for Successful eCommerce Testing I had walked you through the expectations of an online customer, and the most critical areas of e-Commerce testing. In this blog post, I will cover a few do’s and don’ts that should be kept in mind while commencing testing efforts. These tried and trusted practices have worked more businesses that count on their online presence. Do not twitch with the home page: The exchanges do not take place on the home page. Most of the visits are not for the home page. Test downstream in the conversion path (also known as checkout) because guests that get that far are more likely to convert than ‘anyone else in the world’. Twitch where the money is, and work backwards. Do not begin with your poorest execution page: This is another practice that has become popular. You might want to advance your bad pages; but even if you get a 10% increase, it’s only an increase on a low traffic or low value page. So it’s a no-brainer that 10% of almost nothing is still almost nothing. If you optimize a well-performing page, the conversion is useful and lucrative. Choose pages with the most affluent traffic: If you’re spending top money to attract new guests to a product or category, you might want to make the most of that by minimizing bounce rates and maximizing devoted purchases, cross sell and up sell. Run tests on associate landing pages: Unlike paid search traffic, you typically don’t pay for visits referred by associates; but associates are more impressed by online merchants that test. You may even give them custom landing pages and allow your associates to provide some input as they are chief marketers themselves. Do Transaction Testing on all A-class browsers: This is essential to an e-Business application. The software used by a website has to invoke its various components, and check whether direct and indirect interfaces are working correctly. The information entered by the user should make it to the database in correct ways. When the user calls for information contained in the database, the respective data must be returned. Test your search result and category pages: These pages are often living in shades of your fashionable home page and product pages as well as checkout page, but they are essential for getting guests to the product pages! Don’t forget about category pages that are quite alike, if not equal to, search pages for many sites. Test and test yet again: It is extremely important to test your website and service platform from the viewpoint of a client, in order to ensure that everything runs appropriately. It’s difficult to figure out how many businesses make it evident that they do not test adequately. Do RBT in case of time crunch: The objective of risk-based testing, a.k.a RBT approach, is to test the critical areas of the application that can cause a major failure. This helps in reducing the impact and productivity of a testing strategy. Unlike traditional testing methodology, this approach helps decrease the number of test cases. To sum up: Your site has to be tested, fixed, retested and fully documented. Also, all the applications utilized in the website have to be tested for performance and scalability. The criteria for testing websites are Timeliness, Structural Quality, Content, Accuracy and Consistency, Response Time and Latency, and Performance. Some of the tests that need to be done on a website are Content Checking, Browser Compatibility, Transaction Testing, Configuration Testing, Performance & Scalability, and Security. Web testing is still evolving because web-based software is relatively new compared to other software. Software testing has been around for a long time. However, there are many companies making software for web testing. But the challenge is to choose the one that meets the needs and budget.
Choosing Single or Cross Platform and the Ideal Mobile Development Techniques

As a mobile app developer, sometimes you might have to take a decision on whether to build a native app or hybrid app. If you have the financial resources and time, it is always best to build native apps compatible with all mobile platforms. But there are many key considerations you need to think through, before taking that decision. Single Platform Vs. Cross-Platform Single Platform: If you have decided to build apps on a single platform, then you should keep in mind that they are appropriate for: Targeting specific audiences like iOS or Android users. Internal facing enterprise applications, where you know the platform on which your audience is on. The advantages include the ease of designing, building and testing apps. App reach limitation and challenges with respect to multiple platform compatibility are some of the disadvantages. Cross-Platform: Cross-Platform mobile development should be the preferred approach if one wants to reach a larger mobile user base. According to the recent IDC’s Smartphone Share Report, building apps for iOS and Android unlocks a major percentage of the mobile market. Mobile app reach extension and smooth functioning of both internal and customer-facing apps are advantages. But these apps take longer to develop and is expensive to build. If the objective is to reach more users, the investment is worth it. Development Techniques: Native, Hybrid or Browser Once you have decided on the platform, there are three development techniques at your disposal––Native, Hybrid and Browser-based apps. Native Apps: Native apps are built using platform-specific SDKs and languages; iOS uses Objective C and Apple APIs, while Android uses Java and Google’s Android APIs. Native apps offer a host of advantages––faster functioning and richer user experience, availability of professional development & testing tools, full access to platform & device capabilities and monetization for developers. But the same also has some disadvantages: They are expensive to build and require separate developers for each platform. Also, each platform demands knowledge of different tools and languages. Lastly, there would be a need to redesign every time, since the code cannot be reused. Hybrid Apps: Hybrid apps run on the devices that are similar to one’s native apps run on. Hybrid apps are written with web technologies such as HTML, CSS & Javascript, and run inside a native container. The native container or shell acts as a proxy that allows Java script to access device APIs (not all of them) and sensors. Hybrid apps have some advantages: It is easy to find software developers with HTML, CSS, Javascript skills; Easy access to many device APIs that are not accessible in Mobile Web Applications; Provision to distribute and monetize via app stores, and Common code base for multiple platforms. The disadvantages include the need for native tools to package and distribute the apps, limited access to device APIs, lack of performance and difficulty of the HTML consortium to catch up with the frequent updates and releases of Apple and Google. Browser Apps: Browser apps/Mobile Web apps/HTML5 apps are built using HTML, CSS and Javascript and run on modern mobile browsers. These are best suited for internal enterprise apps targeting multiple platforms. These apps are least expensive and can be developed faster. Apart from multi-platform compatibility, browser apps are easy to deploy on the mobile device. Also, it is easy to find software developers with HTML, CSS and Javascript skills. Browser apps also have demerits: Even though they run on multiple platforms, they cannot be distributed via mobile app stores. So monetization has to be done separately. What’s more, they offer limited access to native APIs and sensors, and also lacks in smoothness. The possibility of animation is also ruled out. Hence if you are looking for performance, security, monetization, rich user experience and innovations, then the recommendation is to adopt a Native development technique. At the same time, a Hybrid app will enable lower cross-development costs, ease of development and the fastest way to reach the majority of mobile users.
SOA is BAD? A Business Perspective

SOA promises business agility, i.e. SOA is BAD: Business Agility through Decoupling. SOA promises business agility and enables us to expose business processes as services. You can have service as granular as sending an email to end customer and also as macro as Order Processing for an eCommerce application which is composed of smaller services such as user registration, order submission, reporting etc. Decoupling helps for localizing the changes, thereby reducing the cost and effort to implement the change. It allows quicker time to market by: Reuse instead of building from scratch, and Better quality by reusing tried and tested services In addition to cost benefits, another motivation behind moving to Service Oriented Architecture is to connect with other business units, partners and organizations which are using various web services as the only means to connect to the outer world. These are discussed in detail below: Problems targeted by SOA Agility: The Service Oriented Architecture provides agility to the business through shorter turnaround time for implementing a change or in coming up with a new set of functionalities. Companies which are in fast-changing markets, or in markets with fast-changing laws require frequent updates to their existing applications which may be tightly coupled with other services. Rather than implementing the change all over – in SOA, one can simply update the target service, and this will be reflected all the places where the service is used. Reusability of existing components: Organizations can make use of existing services while composing new applications and services. Complex composite services can be structured using simpler, granular services thus making reusability as one of the important means to achieve agility. For example, consider user authentication as a service, this single service can be used while composing complex services such as providing user access to external media and user writing some post/comment on some media site. Connect with customers: Let us take the example of an eCommerce organization, where customers usually get information on their orders by calling up customer support representatives. The same organization can enable tracking of the customer orders using service based solution where the same service can provide information to a customer representatives as well as end customers. This enables reduction of inward traffic to customer service centers and enables less number of customer representatives to service requests. Though these are just some of the benefits of the SOA from a business perspective, the SOA architecture offers far more agility and flexibility for business to overcome many unique application design and implementation. In my next post, we’ll see SOA from architecture perspective and the challenges working with SOA. Till then, stay tuned!
The Why, What and How of Digital Spying

When the unknown secret of a US program called PRISM first became public last month, a lot of people across the world were surprised by the extent to which they are vulnerable to online monitoring by government organizations. Though the ethical nature of this surveillance activity is debatable, one cannot deny the sheer power of BIG DATA in executing this kind of an activity at such a scale. Similar to security establishments in various countries there are another set of organizations that also try to stitch together online information from various sources and identify their ‘target’. These belong to a category of organizations known as Online Advertising Networks and Publishers. The idea to target audiences based on ‘User Onsite Behavior’ and ‘Network Activities’ is not new, but technology advances in the form of Big Data analysis in recent years provides an effective tool to target audiences in real-time. To explain this in simple terms; it means, if a user is seen on any of the news sites, business sites or male fashion sites, a reasonable guess, based on current sterrotypes would be to assume that the user is male. If the same user visits an eCommerce site the acquired information can be used to provide a personalized products view to the user, which increases the chances for online purchase. How does it work? Whenever a user visits certain websites or performs certain activities like clicking on various links, searching with special text, either the Site Publisher or Advertising Network sets certain information in the form of a cookie in the visitor’s browser. In some cases, the Site Publisher also passes the visit details on to a Web Analytics System (Adobe Analytics, Google Analytics etc.) for further analysis. This information is processed using BIG DATA tools and the outcome of the analysis is used to create a unique ‘profile’. The data is further used for defining audience segments. When visitors return to a specific site using the same web browser, those profiles can be used by publishers for personalized content and also by advertisers to position their online ads based on the resolved audience segment. Properly targeted ads and personalized content not only fetches more consumer interest but also helps publishers in charging a premium for these ads over random advertising. Over the last few years when print publishing was showing signs of decline in terms of readership, more and more publishers and advertisers are shifting their focus to the digital world for finding new sources for revenue.Over the last few years when print publishing was showing signs of decline in terms of readership, more and more publishers and advertisers are shifting their focus to the digital world for finding new sources for revenue.Since these technologies provide a way to target their audience, they will continue to engage in snooping to track their prey, whether it is ethical or unethical will always be a matter of debate.