Posts

PASSME MUsTeR

Image
While there are plenty of non-functional requirements ( take a look at ISO 25010 for example ), 6 of them are the key ones that we need to prioritize when designing solutions. A great mnemonic to remember those is PASSME. I first encountered it at jfdeclerq.biz and it served me very well. PASSME stands for Performance, Availability, Scalability, Security, Maintainability, Extensibility . Prioritization of those NFRs makes sense. Very few users are happy to use slow software, even fewer are happy when it's inaccessible, especially if starts failing as demand grows. We want our data and services secure. Lastly with the initial development costs comprising only 20-40% of the total cost of the software over its life-cycle, it is critical to provide well-written and extensible solution. PASSME can be extended another acronym MUsTeR: Manageability, Usability, Testability and Reliability. Collectively these ten NFRs should be good enough to cover most of the use cases, but usually the ...

Building an ML pipeline with ElasticSearch - Part 2

Image
In part one of this tutorial, we were able to successfully push course information such as ID, title and description from PeopleSoft into ElasticSearch and then retrieve it with a Jupyter notebook. In this part, let's examine how we can process unstructured course information to extract keywords. This can be used in a variety of use cases. For example, we can build a simple word cloud, or perhaps, use it as a start for creating digital badges for a blockchain solution.

Building an ML pipeline with ElasticSearch - Part 1

Image
ElasticSearch (ES) makes it easier than ever to explore PeopleSoft data. Prior to ES, the two ways to access the data were integration or direct SQL access. Both are came with some downsides. Integration is always hard - it requires development of an App Engine or Integration Broker service. SQL access imposes security risks as it requires direct connection to the underlying database. ElasticSearch is a great solution for this problem.

Global state management with Redux

Image
Redux is a great library for global state management. While some might say that global state is a bad thing, it is not entirely possible to move away from the global data, especially items such as authentication and authorization information, site settings and preferences, and so on.

React.js + PeopleSoft = Love?

Image
After taking a look at Kibana dashboards , I was curious how PeopleSoft managed to pull them back into the portal. The expectations were high: some kind of a fancy built-in function or Integration Broker wizardry, but it turned out to be plain old iframes. This is a great solution to marry a modern front-end framework and PeopleSoft. Can it be used for building a simple React + PS proof-of-concept (PoC)?

Stitching PeopleSoft and SharePoint

Image
We often need to integrate legacy solutions with more modern counterparts. This gets particularly tricky for systems like PeopleSoft as they live in their own tech bubbles, which are usually decades old despite the attempts of the vendor's to maintain and make them current. This integration is not the easiest journey.

Kibana visualization cheat-sheet

Image
It is exciting to see how Oracle brings modern capabilities to its legacy PeopleSoft ERP. What started as a replacement of an obsolete Secure Enterprise Search (SES) platform, now opens up so many new opportunities for data exploration and analysis! While it is not something truly revolutionary, as for example Stéphane Lapierre experimented with a very similar concept back in 2016 , it's definitely cutting edge in the officially supported PeopleSoft space.

Enterprise vs System vs Application Architecture

Image
Infrastructure architecture, security architecture, IT architecture, hardware architecture, software architecture, technical architecture, database architecture, process architecture, business architecture, system architecture... With so many different architectures, how do we make sense of them all? In context of software development it makes sense to think of architecture as important design decision that are costly to change once they are made and we can distinguish three levels of abstraction: application, system and enterprise:

Writing PSUnit tests

Image
While we do not have the same level of convenience when it comes to unit testing in PeopleSoft, there is still a lot that we can accomplish with PSUnit. In a lot of use cases it offers great capabilities savings hours of manual testing. When I write my unit tests, I follow 3K rule: Keep It Simple, Keep Them Clean and Keep Them Working: