19 January 2013

crmcog has moved!



Moved to http://crmcog.com


(for what it's worth)

25 September 2012

Siebel: A Simple Log Analyser

 
Deciphering Siebel log files is a chore. The basic premise has not varied since a long time now:
  1. Look out for all the errors logged in the file. Even if most of them are benign, there is a chance (bad word to use here) that they are contributing to a larger error/system crash
  2. Keep a look out for the performance of various SQLs thrown at DB. If a transaction is taking a long time, that’s where you want to start
  3. Verify whether any Siebel transaction outside the DB is taking more time than expected (e.g. in cases where you have a really complex search spec that cannot be passed on to the DB)

Although I wanted to automate this somehow, for a very long time I just relied back on “proven” methods:
  • Open log file, search for execution times around the functionality that is causing the issue
  • Search for errors – most likely around the section that is causing the issue
  • Navigate back and forth a lot, so that rest of the people think I already have a feel for how Siebel works and doing something great
  • Rely on grep, tail and perl (when working on UNIX and developer-friendly). Sadly, Windows does not provide it out of the box, and to get open source/free tools in a restricted environment is no joy
This changed when I took a look back at  where .NET 2010 is, the culmination of which is here. “COGSiebelLogaliser” is a tool to parse Siebel logs generated by a client or server, and spool files to display useful information about:
  • Performance times
  • Errors
  • An included editor is used to open log files (faster to open and navigate through large files)
High level requirements:
  1. Tested it in Windows XP, with .NET 4.0
  2. Application should have write access to the folder from which it executes, and read access for the log files. It will not write back anything to the log files
Of course this has to be treated as Alpha version since it has gone through limited testing. If you have blind trust in executables supplied from any person, and courageous enough to test out new things, you can try the application here. The tool must be tested against sample log files in a local, isolated environment until you are sure what it does, and how it works. Source code is pretty amateurish, and has to wait for a later date to get released to the wild.

13 August 2012

Siebel: Trace Only When Needed

"Trace" statements in Siebel script provides a good way to debug and know what indeed is going on in the background. It is common enough to use the following statements to do debugging in scripts:
TheApplication().TraceOn("c:\trace.txt", "Allocation", "All");
...
...
TheApplication().Trace("Committed to the change " + rowId);
...
TheApplication().TraceOff();
While this is easy enough, an additional flexibility to trace only when required works out better. This can be easily accomplished using VB Script (not Siebel, stand-alone).

1. Open Notepad and type the following lines
'Reference SiebelApplication object

Set oSiebelApp = CreateObject("TWSiebel.SiebelWebApplication.1")

'Start tracing with appropriate parameters. Uncomment one of the options
oSiebelApp.TraceOn "C:\sbl-trace.txt", "Allocation", "all"
'oSiebelApp.TraceOn "C:\sbl-sql-trace.txt", "sql", "all"

'Continue tracing until stopped
set wshell = CreateObject("Wscript.Shell")
wshell.Run ("%comspec% /c title COGSiebelLog & echo Tracing in Siebel is currently on. & pause"), 1, true

'Stop trace and destroy object
oSiebelApp.TraceOff
set wshell = Nothing
2. Save the file and close it (assume the file is called "COGSiebelLog.vbs")
3. Open Siebel client as always, navigate to the specific screen of interest
4. Double click on the VBS file to run the script
5. Perform the transaction that needs to be traced, hit 'Enter' in the command prompt of the running script after the transaction

You will find that the trace happens only when the VB script is running. You would still need to have 'Trace' statements in the script for any custom tracing though. A similar approach can be applied for SQL tracing as well (refer to the commented line in the above script).

03 June 2012

x2engine: A Good Lead Management Tool

Readers would have kindly (or otherwise) taken note that my views of the CRM products are narrow, immature, and hurried at best. I want to create more disruption by yet another tool/product, and pray I will not meet anyone really angry on the way to office.

This time, I will reverse the order - just for the fun of it.

Summary

     + A good CRM product with lot of potential
     + Nicely done integrated interface, with lesser prompts to navigate throughout
     + Integrated collaboration features including message board, chat, forums
     + Easy drag & drop development, ala Sugar CRM and the likes
     + Open source [BSD license]
     + iPad ready :) - well, this from the marketing material. Can't test this unless some kind soul sponsors an iPad for me
     ++ Support for INR. Truly, I was left flabbergasted

     - Limited feature set - targeted at lead management. Can only guess that the core industry support will find its way if the product survives for a few years
     - UI needs some getting used to (notice the bottom-most links for History, Actions etc), and I was far from delighted to scroll up and down when I click something
     - Some of the features appeared buggy on my computer, nothing that dedicated support or my own tinkering couldn't solve (no harm in boasting about that anyway)


Since it is open source, and the development team kindly provides a demo version and a trial version to find out more, the following is of real interest only to lazy people.

Now for some details.

Technology, Installation and Works

x2engine uses PHP, works on a standard LAMP/WAMP stack. XAMPP is a good place to start if you are completely new, or if you don't want to invest lot of time in tweaking tens of configuration files.The installation itself is a breeze, a trusty old install.php takes care of everything, provided you already have a DB user and schema created. I was not too impressed with click-click installs until I came across another CRM product with a really complex list of instructions to setup (another story for another day). The product uses Yii PHP framework for what it's worth, and clearly I am not spending enough time to understand PHP frameworks a bit more.

Features

Clearly, the company does not intend to throw all features under the sun in this product - their words, not mine. The core functionality is around lead management, and it sticks to the core.  The features don't get in the way, and enable users to concentrate on their business. However, this may also imply extensive customization even if you are a mid-segment business with slightly complex processes. The little things in the application are surely the highlights:
  • Having an integrated screen where you can subscribe to a contact, lead (Chatter!), or chat with your fellow reps (new Chatter!)
  • Promote a contact and make her watchable at the click of a button
  • Search encompassing all entities
  • Ability to see others activities so that you are well prepared to blame them at any time

Usability 

x2engine is easy-to-use, does not require complex navigation through every link to gain access to data, and tries to do a lot of things in one screen. If you are left wondering - yes, all these are really good things for the users (those are the pesky people who use the application).

In-place edits is the most I missed, the UI is old school for most part though some of the actions like emailing, and display of allowed state transitions are intuitive.
Performance of the application has been indicated as a plus point in the marking materials, but I did not see any reason to get excited. On my machine (which is antique btw), the performance was comparable to Sugar CRM. Demo version was a real improvement, I have to find out where the configuration was not ideal (clearly, throwing more hardware at it is not the solution :).

Configuration


The product allows power users or developers to configure everything of interest through drag & drop functionality.
 
The drag and drop of fields is impressive, and you are not expected to stick to ONE layout. The customization options are fairly limited. Other than adding fields and UI elements, you could define state models, basic assignment rules and do some Google integration.

That's about it for now folks. I am sure you are enthused about this a bit - so check out more at http://www.x2engine.com/live-demo-server/, or download and do your own setup.



20 March 2012

Documenting Requirements - A Few Thoughts

Even after being in development projects for more than a few years now, I am always not far from being awe-struck at every requirement phase we have had (well, almost). The process of gathering and validating requirements, and converting everything to specs that a developer can understand, and maintaining traceability through all the rewrites and changes - are the most critical phases that always excite and worry me. Documenting all these in a language that finds common acceptance across user groups (& probably, across cultures) is, well, crucial to say the least (ALM tools not withstanding).
How well do you indeed document requirements? There may be entire books written on the subject, but where should one start? The following summary and lists should help one think in the right direction. A lot of it seems direct and too easy - I would think so too, but there have been instances where I was too busy to take note in a few of the projects.


Structure and Language
Two things that cause the max impact to the requirement document, and simple in hind-sight. The structure is fairly straight forward - you just group user requirements into buckets, and order it in a way that makes sense to the stakeholders.
Evaluate each statement of a requirement against the following list to apply the "few good rules".
  • Correct: Speaks for itself, doesn't it?
  • Complete: Should not be open-ended, and should carry forward on its own weight to functional spec
    • Avoid use of "including ...", "not limited to "
    • Don't make subjective or vague statements
    • Avoid use of 'TBD', but do note that this is not disallowed
      • Clearly state factors that have caused the exercising of that option
      • Describe the conditions that will remove TBD
  • Consistent: Consistency in description, language, and functionality expectations
  • Bounded: Measurable conditions have to be described and relative statements have to be avoided
    • "System shall provide response time less than or equal to 5 seconds" is better than "System shall provide quick response times"
  • Unambiguous
    • You cannot have a requirement listed but at the same time excluding from scope
While the use of language becomes a hot debate in some circles, I try to apply simpler rules:
  • Use of "shall" (vs. use of "will")
  • Use of definitive sentences that are deemed complete. Do not use "etc.", "including ... " and such terminologies which leave things to interpretation or imagination
  • Avoid usage of double negatives in a sentence
  • Simple to understand and well articulated
Each requirement should be unique in the set of requirements identified for a project or a program, and be identifiable as such. Inputs from all stakeholders - business and technical teams, and consideration of external environmental factors (regulatory policies, organization strategy etc.) are equally necessary. At the same time do not include designs to address a problem or solutions in the requirement document.


Handling Changes
This is a separate section since this is what we dislike the most. While change management by itself can be a clearly marked process, do you articulate on how to carry forward these changes to the requirements documentation? An indication of versioning of requirements document, and scoping of individual projects that align with the overall requirements go a long way in bringing enough clarity here.


Important Sections
While customers are free to exercise right on the template structure, it is imperative for us to make sure it has a place for some important sections.
  • Business Rules and Business process diagrams: While not separate sections, making them part of the core requirements, or wherever needed, will help everyone to stay on the same page. Especially in case of COTS products, implementing business rules will demand a big share of development effort
  • Non Functional requirements: Everything that is deemed important other than the core business requirements - like performance of the application, security requirements, usability requirements and supportability requirements have to be articulated. Even if the customer does not have this practice, it is never late to educate them and include such requirements in order to bring in enough clarity to business expectations
  • Regulatory requirements: This is applicable and really important for certain industries like Life Sciences that are subject to intense auditing. For a newly proposed system, or even for changes to an existing system, capture and document requirements around regulatory considerations
  • Assumptions: Clearly categorise assumptions while documenting them
The above points should act as a starter, but can no way be deemed comprehensive. Documentation standards available from IEEE standards talk about some of these and much more - for software requirements and specs. Evaluate them if you have access to the artifacts - that will be time well spent on establishing standards ourselves. Two of the documents that I liked while browsing through:

04 February 2012

Top CRM Blogs

Chris Bucholtz has listed the top CRM blogs of 2011. Well, as you can make out from this blog - I am not a good creator, but do read up from time to time. Even if you don't care about the blogs listed here, you should go through them at least four times in four weeks before outright rejecting any of them. They take up precious little time, but have the potential to give you something new (in CRM ofcourse).

My own list of sites (note - not only blogs) is not as lengthy, but does keep me occupied for a couple of hours in the week.

  • Paul Greenberg's blog: Though Mr. Greenberg dropped the organization I work for in this year's CRM idol :). His posts are informative, full of CRM with a touch of humor
  • Enterprise Irregulars: I am fairly regular on this site (through my reader). There are a bunch of really smart people who talk about a lot of things (not CRM, or IT alone)
  • DestinationCRM: Well, this looks like a 90s magazine, and website. But, is a good source of information
  • CRM Outsiders: This started more because of my interest in SugarCRM, but has continued ever since
  • CRM Daily: A few good posts about CRM information can make one's day

What do you think, are you a regular anywhere else!?


31 August 2011

vTiger - A Serious Open Source CRM Contender



I had been intending to explore vTiger CRM for sometime now, and am glad I finally came to it. vTiger CRM has been out there for a while, and I had been hearing about it everytime I hear "CRM" and "open source" in one sentence. What follows are bits and pieces of my first impression, a few cool things and some not-so-cool stuff.

Product and the Company
  • vTiger is a small company, one of the two offices is in my own home town (= Bangalore, yeah!). The product is based on the LAMP/WAMP stack, and guess what, Sugar CRM. One of those instances of open source projects introducing competing products? Yes, this is (or can be) good for the customer, but do I want to see this as the Sugar CRM CEO? :). Some of us, open-source proponents, might want to think that this leads to a better all-round product, since there should be mutual learning for the two streams! 
  • The entire product is open source, thankfully there are no "different editions" (yet)
  • While going through the various screens, one cannot help but compare how this stacks with Sugar. Since vTiger exposes all functionality, it has an unfair advantage in some of the below points (I only have access to SugarCE)
  • While the CRM product is completely open source and available for download, vTiger can also be tried online. There is a on-demand version available for $12/user (check price list). Again, no editions, no limits - except for space - 5GB per client.
  • The overall product is polished, and works well. I liked the UI finish and overall functionality better than Sugar

Features and Functionality

  • UI is very similar to Sugar, but some of the features are a sure welcome. A brighter UI (with the colour buttons thrown in) is not helpful on its own, but adds to the lustre


  • Entities like accounts can be assigned to individuals or groups. This is a far cry from person-based/team-based visibility, but still something powerful for small or mid-sized businesses
  • As in other web-based CRM products, by default the user lands in the list view. Drilling down on the record will show detailed information for the entity. Associated information (like activities or contacts for the account) do not show up by clicking on another 'tab'. But getting individual entities like activities, contacts by clicking each time is a pain.






  • An interesting feature is tagging. All entities can be tagged with any custom attributes, and these show up in a 'tag cloud'. Users sure will love this feature, anything to find out 'all accounts that are important for this campaign' in a single click :)
  • Users of this application are assigned a role, while roles can have one or more profiles. Access to entity views or the individual fields can be pre-determined
  • Analytical reports can be customized by end-user. It kind of provides "actionable-intelligence" since any record in the report can be drilled-down to see more details

Development and Maintenance
  • As in other web-based CRM systems, vTiger provides an administration screen where UI and fields can be configured. Changing UI and adding new fields is real easy and intuitive

  • One of the interesting features is the ability to take backups. You can schedule a backup to be taken locally (where the server runs), or to any location through FTP
  • There is also a provision to build workflows. OOB you get to do a few things like create an activity or send an email, and is also extensible. Workflows can run immediately upon satisfying the given criteria or wait for a pre-configured/customizable time to get initiated
  • vTiger is extensible like Sugar, and getting new modules (mostly) is as easy as importing the zip file within the application. vTiger has its own market place, contributions have been mostly from the product development team. Some of the extensions sure seem interesting (keep a look out here for more :)

With continued development, vTiger sure is set to become more interesting. Sufficient to get you to try it? - head on over to vTiger site and try the click-click installation or the demo!