By Chris Malek | 28 March 2012
My Love Hate Relationship with PeopleTools Development
I started doing PeopleSoft development in 2000. So, I have spent many hours working with Application Designer. There are some things I love and some things I hate. Here are a few of each.
Please note that there is some tongue and cheek language used below.
Things I Love
Some things that I like about PeopleTools.
Simple Proven Security Model for Page Access
The security model for page access and navigation is pretty simple and it works 99% of the time. A user has roles that has permission lists that grant page access.
PeopleTools is a rapid development environment for online pages. If you understand all the “auto-magic” stuff that happens behind the scenes and work with that, then pages that do CRUD operations are trivial. Additionally, you don’t have to code any SQL (or very little). If you do not follow the conventions of the “auto-magic” stuff then this breaks down quickly.
I like the fact that you don’t normally have to code any inserts, updates or delete statements to update the database from online pages. The “auto-magic” stuff of the component processor will handle this for you. If you find yourself coding a lot of this type of SQL for online pages, you are doing something wrong.
Simple Database Transactions at the Component Level
I love how you do not have to worry about database transactions at the component level.
No CSS & HTML
You don’t have to worry about styling CSS or hand crafting HTML, you drag controls on the page and it just works.
Things I Hate
Here are a few things that I hate about PeopleTools development.
No Version Control Support
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. In one case, it added a whole week to the development time.
I host this website on heroku and I push site updates with git all from the command line. It is such an elegant solution built on open source tools.
COBOL is still used, enough said. COBOL please die! When I first started at PeopleSoft, my mentor told me to never learn COBOL. Her warning was that you will be stuck on a project as the “COBOL guy” that is stuck in a corner not learning any new technology. I took her advice to heart.
IDE with 1990 Functionality
PeopleTools Application designer is very outdated. If you have ever used any advanced IDE for development then switch back to application designer, it causes depression in the developer. For example, if you have to customize any of the application packages you tend to get lost after about 3 levels of inheritance. The tools to navigate the object map are very poor. Additionally, there is no syntax auto-completion when you type. I have been working with xcode lately and the auto completion is stellar.
You Can’t Google for Help
If you have ever done any programming in something like Ruby or PHP, a quick google search will generally result in you finding the answer to your problem. Additionally, GitHub has so much code examples you can generally search for a method call on GitHub and see how other people use the method in the context of real projects. This just does not exists for PeopleTools development. The are a few great PeopleSoft bloggers who have some good information but there is not enough. I am slowly trying to do my part to enhance the community with the knowledge base but I am just one voice where 100s are needed.
Here are a few I subscribe to.
Message Catalogs and Project Export to File
When you export a project to a file that contains message catalogs, they are not exported. This has burned me 1,000 times.
Country Specific Objects in Codeline
I hate how every piece of code for every object and every country extension is in the codeline. This includes stuff you are not even licensed for.
As much as I love some of the auto-magic SQL, there are times where I look at someone’s code and I remember how poorly this topic is understood. I see many developers write a bunch of code to work around the auto-magic SQL because their component and record structures are not correct and the data is not being populated correctly. So they use brute force to make it work.
If you have ever written code in Ruby on Rails, you know that a controller can easily return JSON, html, or xml from the same URL. Write once and serve many clients.
No Object Introspection
I really wish all PeopleTools objects inherited from a generic PSObject class so you could easily inspect an object to determine it’s type at run time. Ruby has great support for this.