The World Jewish Congress (WJC) is an umbrella organization that caters to the needs of the Jewish communities and organizations in 100 countries around the world. In 2012 we started our collaboration by developing a custom platform, which serves as WJC’s news portal, as well as a hub for the organization’s management in Brussels, Geneva, New York, Buenos Aires and Jerusalem.
In 2015 WJC engaged us to deliver a database management system. WJC aimed at simplifying and improving both the work and communication processes within the organization. With these goals in mind, we created a set of tools to internally share, update and use accumulated knowledge and documents. The newly built applications use one database in different ways, depending on the departments’ needs and requirements.
For this project, we implemented microservices – single, autonomously developed, small in size and decentralized, new functionalities that allow for automation of deployment and testing. Microservices are easy to scale and integrate with third-party services and do not require long-term commitment to technology stack.
For these projects we embraced the process of test driven development. This is a software development process that relies on the repetition of a very short development cycle. The requirements are turned into very specific test cases, then the software is improved to pass the new tests only. The concept is to "get something working now and perfect it later." With this method, we were able to produce applications of high quality in less time.
Most importantly, test driven development is very helpful in long-term projects like this one when we have to add new applications or new functionalities to the ones we already have built. It ensures that all the units have been tested for optimum functionality, both individually and together with one another because tests are run from the very beginning of the development cycle. Thus, the client saves time and money from debugging at later stages of the project.
WJC is a huge organization, with various departments and a lot of end users. All of them had different goals, needs and views how the system should work. We had to filter their requests carefully not to get derailed.
The most challenging part of the project was not the scale, but rather the logic behind the applications. We developed a family of applications that are alike, but serve different needs. The applications are compatible, communicate with each other and make use of shared instruments.