Pega Constellation: Lessons from Adopting New Technology

Written By: Addison Petro

A little bit over a year ago, I was placed on a unique project that was just getting started – it was srcLogic’s first project leveraging Pega’s new UI framework called Constellation and Pega’s React SDK, and it was the second project in the world to use the React Software Development Kit (SDK) (for more information about React, check out this blog post about srcLogic’s React cohort). I was excited to get to work with new tools and looking forward to advancing our client’s mission while pioneering the latest Pega technology. Reflecting on my time so far on this project, I can confidently say I’m a better developer for embracing cutting-edge tech.  

Constellation and the React SDK both presented the same challenges as other newer technologies, a key one being that early adopters have to find and document the best practices. With only Pega’s demo application as a reference, we would find some way of implementing part of a feature, but we weren’t always sure if it was the best way. Over time, we would often find better ways of leveraging Constellation’s features and needed to communicate new findings with the team to make sure we were all up-to-date on our constantly improving best practices. When we refined our development patterns, it was impractical to go back through the entire application at once to replace instances of our previous patterns with the new ones, as doing so carries the risk of breaking existing functionality. So, we bear the responsibility of cleaning older code up over time to ensure we’re using best practices without introducing new bugs. Learning to take ownership of code design practices like this and live with the positive and negative consequences of past decisions as a project matures is important for anyone who works on software. With all the novelties of Constellation, there were many opportunities to watch the effects of design decisions play out in real time, providing an important learning experience for me as someone relatively early in their career. 

Another interesting detail about this project is that we forked, or copied, the open-source codebase for the React SDK when we started the project. This gave us total control over any changes we wanted to make, but it also meant that we had to manually adopt updates and make sure they didn’t break any custom code we wrote. While this is a tedious update process, it is well worth it when weighing against the complete control we have for a project that requires significant customization. As a developer, it was very rewarding to look at the original codebase, analyze why it wasn’t quite suitable for what we set out to accomplish, and then modify or replace parts of it to be a much better custom fit for our client’s needs. 

In the early months of the project, I remember finding it difficult to find the space to take a deep dive into any one aspect of the React SDK or to fully explore one of the many new features Constellation had to offer, leading me to have a broad but not particularly deep skillset for a while. After getting more hands-on experience with these tools in different parts of our project and exchanging knowledge with other developers on the team, I was able to build depth to my skills and use these technologies more as a cohesive unit (as is intended) rather than as disparate parts. Learning to view and use these tools as parts of a larger whole has allowed me to better understand the big picture of how Constellation projects work and be a more effective developer.