It has been over 8 months since I started my first cloud development, and it has been a nice journey with many new things to learn; challenges and new processes to adopt. Here is my retrospective experience and some useful tips, coming from me and my colleague Asbjörn Brekke, for those stepping into IFS Cloud development.
Things I liked most
Even though I worked with IFS developments for a considerable time, it was not an easy step for me to get things started since IFS Cloud development comes with a big technical leap and different tool set to adapt. But once the basic setup was done, I started to feel more comfortable since one big change in cloud development is that developers can work from the local workstation rather than a virtual desktop.
One thing I like about developing in IFS Cloud is the new web-based client framework. It gives much freedom to the developer to choose between different layouts, controllers, and design patterns. We can produce modern interfaces with rich user interface controllers in such a quick time in IFS Cloud.
Integration capabilities of IFS Cloud has been drastically improved and it’s nice to see that IFS is moving towards open standards. Hence, now we can think of many new ways of interacting with IFS through integrations.
Another plus point in IFS Cloud development is the use of git and Azure DevOps. We can do more collaborative developments, and it is possible to do unit testing in sandbox environments and identify errors before delivering to the customer. Therefore, my overall conclusion is I believe developers can deliver more quality products in IFS Cloud than in previous versions
Points for improvements
When writing this, it has been only four major releases made in IFS Cloud. Admittedly, I’m pretty impressed by the speed it evolved through that short period of time. However, I believe it has a long way to go as well.
Performance is one of the key areas which I believe should be improved in IFS Cloud. There are two folds of performance, user performance and data performance. As developers it’s our responsibility to consider the performance impact and use new design patterns for optimized user performance. I do hope IFS will address the data performance problems which we’ve experienced on many occasions.
An area I experienced being difficult in IFS Cloud is debugging. Since most of the code is generated, a simple mistake could lead to errors, and it could take more effort for troubleshooting. Consequently, improved debugging capabilities would be helpful indeed.
Some Useful Tips
IFS Cloud has a future proof design and under the hood it carries lots of new capabilities and potential which were not there with older versions of IFS. Developing in IFS Cloud involves new thinking, and new learning. Here are some tips which I think will be useful to get the maximum benefits from IFS Cloud developments:
- Have a good design – Having a good design is the key to success in any development. When it comes to IFS Cloud, design plays a major role since then you can wisely decide which building blocks you need to use in early stage, since changing the core logic could be a heavy effort
- Think Evergreen – With IFS Cloud, IFS is moving towards an evergreen software concept. In a nutshell, that means IFS will release feature update releases twice a year, and frequent service updates. We must take that into consideration and try to avoid any developments which would disrupt IFS core logic. For example, sometimes we could provide a quick solution for a customer need by overtaking the IFS code, and the modifying it. But then, with each service or feature update, we would have to check our code and might need to do re-work to adopt to IFS changes. This would lead to high maintenance cost in the long run. Hence, we need to think smart and design our solutions to have minimal impact on the IFS core logic.
- Re-Use Existing code – IFS Cloud encourages making reusable code and it can be seen everywhere in IFS core developments. Most of the time you could find the needed pieces if you look carefully into how the developments are done. It could save a lot of time and effort and cope with the evergreen concepts.