Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi,
I am writing this on behalf of a new Qlik colleague who is in a very difficult situation.
Our company has a terrible perfoming app, complicated section access, demanding users, and the main developer of the app has left with no proper explanation, documentation, or handover. The new developer is under pressure - what to do?
Terrible performing app
- The Qlik Sense app loads and transforms data in the same app and the user interface is in the same app.
- The expressions are extremely complicated, full of set analysis, IF statements, AGGR etc, many of them going into 5 pages if you paste them into Microsoft Word.
- Because of these complicated expressions, some of the charts take over a minute to load.
Complicated section access
- Section access is used to "conceal" information to certain users, so there are two copies of fact data, one masked, and the other unmasked. Data reduction is done also to hide certain information. And also dummy data is loaded because in some cases all the data needs to be accessible from a table by all the users.
Demanding users
- The users are constantly asking for more and more complicated charts to be added to the app. By the sound of things the management is under pressure to deliver so they cannot say no to the users.
- Unrealistic deadlines dropped from nowhere so the developer becomes under pressure.
- Everything is "agile" where things need to change as per new requirements
Main developer left
This app took around 1 year to build and the main developer has left.
- There is hardly any comments in the script to explain why certain procedures are done the way they are
- No relationship diagrams for the new developer to use
- No documentation on the UI or why the expressions were built the way they were
The new developer feels extremely under-pressure as he is the only one who has to deal with all this on his own. He knows the best practises but with such complex data model, and ridiculously complex expressions he feels overwhelmed and feels like it is risky to make even small changes because it may impact some unknown part of the application.
What advice do you have in these circumstances?
buy a good coffee machine...
more seriously, this could happen in "any" environment.
i think you gave the answers already... keep the shitty app as it is in place... and let your new guy start or restart all over with new/more simple/documented/... project (could be one or more apps in qlik or not...) ... letting him focus on (defining and delivering) business value, not features (charts/... )
just an opinion... i'm probably not aware of everything...
I would do the following: keeping the old app as it is, copy it to make some kind of health-check to optimize the performance with the focus on the UI expressions and objects - without understanding the app and the datamodel changes there are just gambling.
The expressions are much easier to optimize - identifying redundant parts and using variables for it, replacing if-loops with pick(match()) constructs, replacing if-conditions with set analysis and similar things with the main-goal to reduce the scope of the huge expressions so that they could be viewed with one glare. After this it makes sense to try to understand the full-meaning of the expression and with this they might be adjustable in some way. From a performance point of view the focus should be on the aggr-functions.
It's definitely not an easy task but in 2 - 3 days the application could be probably significantly improved. Also it might be sensible to hire for this task an external supporting from Qlik or any partner.
If this was successful replace the old one with the new one (of course keeping always a backup from each app / release) and starting the real work with developing this app (and probably the whole environment) new. From time to time your undestanding of the matter will grow and you will get some new insights so that you could optimize further things on your intermediate application so that you get more time to develop the new world ...
- Marcus
Hi Marcus,
Thanks for the reply. The thing is they already use Pick Match, set analysis and even still the expressions are about 5 pages long per a simple looking variable when you see inside it. I suppose what you are saying improve all the little things as much as you can?
You then start looking at moving some of these calculations into the script but the thing is these expressions are so huge and consisting of so many fields that you don't know where to begin.
The client seems reluctant to reduce the scope of the app, even the server infrastructure is beyond their control and controlled by the central IT team.
What would you do in an envrionment like this?
"What would you do in an environment like this?" Go somewhere else just kidding.
It sounds tough. I would summarize the main problem as "changes are required -- for performance and new requirements -- but changes are difficult and risky due to app complexity."
My first move would be to implement some tools to support me in making changes and managing risk.
1. Use the Qlik Sense Scalability Tools (v3.x, all 2017, Feb/Apr 2018) regression tester to record a baseline and validate that future changes deliver expected results with no side effects.
2. Use the QS Document Analyzer tool to assist in understanding the app, refactoring expressions and tuning the performance of charts Search Recipes | Qlikview Cookbook.
If budget allows, look at vendor products like NodeGraph, Platform Manager and WIP to help manage change.
-Rob