By Chris Malek | 23 August 2012
Some Strengths And Weaknesses Of PeopleTools
I have 15 years of PeopleSoft development experience under my belt. I consider myself to be an expert in PeopleTools. This skill continues to pay my bills and put a roof over my head. I also do a lot of reading on other programming languages and frameworks like:
- Ruby on Rails
When I read books on these different technologies outside my core competency of PeopleTools, I often see functionality that I wish PeopleSoft/PeopleTools had. Additionally, I see things that these other frameworks lack that PeopleTools does well. Much of the lacking pieces in these other frameworks can be made-up with open source plug-ins to the frameworks or just coded from scratch.
Below I have put some thoughts together about some of the strengths and weaknesses of PeopleTools as a development platform.
Strengths of PeopleTools
Extensive Support for Effective Dated Logic
This is something that PeopleTools has had right from day one. When you are working with Payroll or accounting systems, you need effective dating. PeopleTools has native support for generating the proper SQL when a table is effective dated. This is lacking in other open source frameworks. Why is effective dating so important? Things in accounting and payroll are constantly changing.
- Tax and accounting rules change over time.
- Business structures change over time.
- The Organization Tree changes over time.
It is important that pages honor these changes. Let’s suppose that your company did a merger effective August 1, 2012 and two companies were merged into one and 20 departments were merged into 13. When users are keying HR, Payroll and accounting data after the merger you only want the new business structure to be shown to the users when they are assigning employees and GL entries to your systems. Additionally, if you are past the August 1st calendar date but need to key some data in the GL for a period prior to August 1st your pages need to show the old business structure. This is the point of effective dating. I have seen other non-PeopleSoft implementations of this and it can be really ugly. One particular implementation was to have two “department tables”: One held the current active department and the other held the history. This structure caused all sorts of problems trying to key retroactive transactions which happens in the real world. It also causes issues for reporting on historical data.
PeopleSoft Wins on Effective dating.
Built in Security Model/Framework
The PeopleTools application comes with a built in security model including user profiles, roles and permission lists. There is some technical debt in some of the implementation with this in current releases. For example, the “menu” object really serves no purpose yet is it still in the security model. However, I find this model works really well. If you were creating a custom python web application you would have to build most of these tables and logic. Additionally, you would have to code all the views and controllers to honor the code.
Navigation Built In
PeopleTools comes with a navigation model to allow users to navigate between the hierarchy of pages. You don’t have to reinvent the wheel like you do with other web application frameworks. The “content references” in the portal do a pretty good job of guiding the user around the system. The application developer does not have to think about this.
PeopleTools is really a rapid development environment. If you need to create a page where users can key some data or view some data into the database, this can be done remarkably fast.
If your PeopleTools application is coded correctly you can quickly port it to run in SQL Server, Oracle or DB2. This includes not making calls to platform specific code on the current platform. For instance, if you do development on the Oracle DB, you may be tempted to add “sysdate” in your SQL. However, it is better to use the %currentDatIn meta sql function which PeopleTools expands to the platform specific current data function on the platform at run time. The one caveat is that you may not be able to take advantage of some platform functionality.
Weaknesses of PeopleTools
No Usage Tools
There is currently no usage tools like Google Analytics where you can see what pages are used most. This would be very valuable. Yes, you could install Google analytics. However, most PeopleSoft databases house very sensitive information and corporate policies generally would not allow you installing something like Google analytics.
No Mobile Support
The HTML generated by PeopleTools is gigantic and riddled with HTML tables. This is not mobile friendly because large HTML source code has to be parsed by the client. Mobile clients have less processing power and a lower memory footprint for this parsing. Additionally, the larger the source code equates to more data that has to come down the network. Mobile networks are typically slow. Some improvements are being made with the use of AJAX. PeopleTools 8.52 does support the IPAD officially but the UI is not optimized in my opinion. It “works” on the iPad but it does not offer a true tablet interface. It is a step in the right direction.
Long Learning Curve
The technical learning curve on PeopleTools is long. There are many reasons for this that I see.
- The on-line pages have a bit of “magic” that happens automatically. Most of this magic like effective dated logic and automatic SQL creation is poorly documented despite the fact that much of this functionality is 20 years old
- Being that PeopleTools is over 20 years old, there is a high level of technical debt in the system.
- This leaves functionality in the system and documentation for old pieces of functionality that a new technical person may spend time trying to learn if not guided by an experienced PeopleSoft person. For example, the Workflow objects should be avoided at all costs. However, if you were to look at the PeopleTools documentation, you would get the impression that you should use Business Process Guides and activities.
20 Year Old IDE
The PeopleTools IDE is about 20 years old especially the text editor pieces. Compare the text editing to Sublime Text 2, Textmate, xCode, NotePad++ or any other major text editor or IDE and you can do nothing but frown. Most of it is small stuff but taken as a whole there is much room for improvement.
- If you bookmark a line in PeopleCode using “Control F2”, make a change, then save; your bookmark is lost. This makes using bookmarks useless. Why would I be using bookmarks if I am not making code changes?
- The dataMover text editor does not respond to “Control-A” to select all text.
- No Support for “Code Folding” in the PeopleCode editor
- Extremely weak support of Application Classes and class hierarchy navigation.
- If you are trying to debug a delivered application class that has several nested classes, it is extremely hard to navigate the structure of the objects. After about 3 levels of calls you get lost quickly.
- No Code Completion
- No Option to force variable declarations in PeopleCode
No Version Control
There is no version control support built into PeopleTools nor can you use an open source tool like git. I have been using git for a few years for personal projects and I love it. I yearn for something this easy in PeopleTools. I have been on a few projects that used one PeopleTools bolt-on version control product and it was torturous to use.