Monday, July 27, 2009

Goldplating vs. Great Customer Experience

Steve McConnell's classic mistakes in Software Project Management defines Developer Goldplating as following:
"Developers are fascinated by new technology and are sometimes anxious to try out new features of their language or environment or to create their own implementation of a slick feature they saw in another product--whether or not it's required in their product. The effort required to design, implement, test, document, and support features that are not required lengthens the schedule."
I find the entire concept of developer goldplating and it's classification as a 'classic mistake' extremely amusing. This is because the unfounded fear of goldplating restricts the creativity and realms of a developer and nips the chances of delving out outstanding customer service. Almost all the projects that I have worked on has had the customer coming back with his/her own 'wishlist' at the very last moment and traditional software engineering theory would say that it has to be treated as requirement creep and will have to be carried out as separate change requests in the future. Well that might sound judicious from the point of view of project management, but not from the view of customer experience management. Any project dedicated to providing a great customer experience should try to address even the last minute requests from the client - this is no goldplating and it will be something the customer will rave about. I know that may be nine out of ten people will not agree on this - but for someone who values a happy customer above anything else, requirement creep management can never come in the way of customer satisfaction!!

Auto-Displaying Search page results

What do you do if the customer comes up to you and says that they find clicking the 'Search' button on the search page cumbersome and would 'love' to have the search results defaulted when the search page loads.
This is where the SetSearchDialogBehaviour function will come to your rescue. Assign wildcard values to your search fields and call the SetSearchDialog behaviour function. This function is normally used in the context of skipping the search page. Theoretically, if a complete value is provided for all search keys before calling the SetSearchDialog behaviour function, then the search page will be skipped and the users will be taken directly into the transaction page. But the actual idea behind the function is that it will auto-trigger the search functionality. So naturally when just a wild card value is given to the search fields and the function invoked, then all the search results will be displayed. For example, if EMPLID is the only search field, the following code can be written to popualte the search results automatically on loading the search page.

/*Write this code in SearchInit.*/
REC.EMPLID.value = '%';

Thursday, July 16, 2009

Oracle MINUS function works bottom to top

Remember that the MINUS function in Oracle works bottom to top and the order in which statements are written will change the result set! So select x from a minus select y from b is not the same as select y from b minus select x from a....The bottom part of the query is executed first and a MINUS function will always give those rows present in the bottom part of the query and not in the top half.

Sunday, July 5, 2009

Follow this blog on Twitter!

Twitter has not gained the popularity of a Facebook or LinkedIn in this part of the world - and the first time I took notice of the new kid on the social networking space was when the U.S. State department endorsed the importance of Twitter as a medium of communication for Iranians during the recent turmoil following the presidential elections there. That made me sit up andtake notice, boy if the U.S. State department had to make an appeal to a privately held dot com newbie, then it's got to be a phenomenon.
So the story goes that this blog is now on Twitter and you can follow me and all the updates to this blog at
As a sidenote, I believe that it's time enterprise applications embrace Web 2.o applications like Twitter, Facebook and LinkedIn. Oracle is introducing a lot of Web 2.0 technologies like Ajax in the next Peopletools release (8.50), but they need to have a rethink in terms of adopting some of these social networking applications in the core product functionality. I believe that with the widespread adoption and following of these applications, the line between social portals and enterprise portals is slowly fading away - one immediate thought that comes to me is the use of tweets as a supplementary to alerts in Peoplesoft - wouldn't it be 'cool' to get tweets from Peoplesoft when your manager approves your absence request or when he completes your performance document review?

Saturday, July 4, 2009

Best Peoplesoft Time and Labor blog?

This might sound vane, but according to the Google Search engines you are now reading the best blog on Peoplesoft Time and Labor!

While I know that's an insignificant indicator to be proud about, but I hope that my posts have been helpful to consultants seeking information on Peoplesoft HRMS and Time and Labor in particular. I started this blog in 2008 primarily to try my part in filling the lack of quality reference materials available for Peoplesoft functional modules and after being appalled at the prohibitive cost of the training courses available for the product. Do let me know your comments and suggestions to improve the content of this blog and keep those visits coming!!

Search Page security in Peoplesoft Time and Labor

I had detailed how Time and Labor security works in a previous post and today I want to touch upon how customers can configure the security on the Manager Self Service and Administrators for Time and Labor. Currently, there are three distinct ways of configuring search page security in Peoplesoft (including Time and Labor):
1. Use the highly robust and modified Core Row Level security, where any level of flexible security definition can be created with the introduction of Security Access Types in Peoplesoft HRMS 8.9.

2. Use the Direct Reports functionality which most of the MSS pages of Absence Management and e-Performance make use of. This feature will provide a standard page containing the direct reports of a user.

3. Use Time and Labor security to show to users employees in the Static and Dynamic groups that they have access to.

(You can also enforce search security through Search Init peoplecode, but this approach is highly discouraged.)

Most organisations will be designing their search security by making use of the new Row Level security design and in this context, a debatable question is whether we need to use Time and Labor security itself? Also, a number of people ask whether we can use Row Level security for the Time and Labor search pages, or whether it can make use of only Time and Labor security.

The answer is provided by the below decision chart (click on the picture to see a larger view):

All the Search pages in Time and Labor is flexible enough to utilize both Time and Labor security and core Row Level security. This decision depends on how the rowsecclass attached to a user is configured. If the rowsecclass is attached to any Time and Labor group (this can be found from the table PS_TL_GRP_SECURITY), then the user will be able to see only employees belonging to the groups the user's rowsecclass has access to. On the other hand, if there are no Time and Labor groups attached to the rowsecclass of the user, then core row level security available for the user will be used to fetch the employees.

What should be the optimum Time and Labor search security strategy?
If your organisation is using other Peoplesoft HRMS modules then it is best to utilise a common security design for all the modules. So I will always suggest using row level security for Time and Labor pages and not to configure any extra Time and Labor groups for the purpose of row level security.
Time and Labor groups can be created for the purpose of batch processing of employees. It is very useful to create Time and Labor groups and use the group as an input parameter for the Time Administration or Batch Approval or Batch Schedule Assignment processes. Note that a Time and Labor group can be defined without linking it to any row security class and used solely for the purpose of grouping employees together.