PSI – Structural Gantt
As usual I have done an interview with the developers. Michal Bocian (Development Manager) and Dobieslaw Chabrzyk (MES Product Manager) of PSI were kind enough to provide the answers.
What is the name of your product / project?
PSI Advanced Scheduling and Monitoring
Who are your users / customers?
Customers: manufacturing industry in following areas:
- Serial production
- Metal re-working
- Made-to-order constructions
- Production schedulers
- Shop floor staff
- Production managers
What is the purpose of your software? What are its benefits?
- Scheduling and execution monitoring of production process
- Reduce manufacturing costs
- Reduce work in process
- Improve customer service
- Lower implementation and maintenance costs compared to existing IT solutions
Is the application operational? If yes, since when. If not when do you plan to go live?
Official go to market is planned for April 2016.
How big is the budget for your project?
A few hundred thousand euros.
How did you get the necessary JavaFX Know-How into your team? (Consultants, Internal / External training courses)?
Mostly from the Internet (StackOverflow, Official APIs etc).
With which version of JavaFX did you start? 1, 2, 8?
When did you start developing the application and how long did it take?
We started the development around April 2014. The development lasts till now.
How many developers worked on it? In total and on the UI.
We have 5 developers working on both server and client side.
We have 1 developer who is adjusting our CSS.
How big is the application? Lines of code, Number of classes.
230,000 Lines of Code, 2000 Classes.
How big is the JavaFX client? Lines of code, Number of classes.
190,000 Lines of Code, 1600 Classes.
Why did you choose JavaFX as frontend technology? And very importantly: why did you not choose HTML / Web?
PSI is specialized in creating applications based on the Java platform. JavaFX is the natural successor of Swing. We were considering HTML / Web for the frontend – but because of limited performance we had to give up for now. Our application needs to hold about 500,000 complex domain objects in memory to perform extraordinary parallel calculations on them.
Was it difficult to convince decision makers to agree on JavaFX?
No, it was easy. Our company is specialized in Java technology – especially in Swing. JavaFX is the choice for company like ours.
What were the biggest challenges / problems / issues / bugs you faced in the JavaFX part and how did you solve them?
We’ve found some bugs in JavaFX but none of them were critical nor major. We reported them on JavaFX’s bugtracker, and we are waiting for the fixes. Meanwhile we did some temporary workarounds.
Which 3rd-party products / frameworks / tools (open source and commercial) did you use and why did you choose them?
- FlexGanttFX – because of modularity, quality and performance.
- Eclipse E4 – because of window manager and dependency injection.
Did you mix JavaFX and Swing code?
We’ve tried it once, but we had to give up. It is stable when used in static layouts, but when the user tries to perform complex interactions with the UI, many unusual bugs take place.
Would you use JavaFX again for your next project? Please elaborate why or why not.
In our case JavaFX was the only choice we had. Our application needs a lot of memory and it has to be multithreaded. If you combine these two requirements with the server written in JavaEE – JavaFX is the only choice. If our application had different non-functional requirements we would probably create our application in HTML/Web.
Which recommendations do you have related to JavaFX for other companies / projects?
If you consider JavaFX as your potential platform, check if all the special and non-standard UI requirements are meet.
Which features would you like to see being added to JavaFX?
At the moment we are suffering from a lack of good date and time picker.
Do you plan to provide a mobile version of your application or a mobile addition?
Yes, but since our product needs a lot of resources, we plan to deliver simplified application (e.g. without interactive Gantt chart).