A little knowledge is a dangerous thing
More than ten years ago I left the employment of a large German software company and ventured out into the exciting and scary world of the independent consultant.
I wasn’t 100% sure what exactly I would focus on – but pretty early on I discovered there was plenty of opportunity for building web user interfaces on SAP backend systems and I have been doing that type of work ever since. Lots of HTML, CSS & JavaScript as well as plenty of backend ABAP too.
As web technologies, browser capabilities and my own skills have improved I have been able to build more and more sophisticated user experiences for a wonderful group of clients. I was also lucky that my interest in delivering web UI’s out of the ABAP stack coincided with the emergence of the SAP Developer Network. I learnt so much from the many blogs and forum posts of people like Brian McKellar and Thomas Jung.
Strangely I found it difficult to convince other developers of the value and benefits of building applications that leverage the Internet Communications Framework (ICF) and the Business Server Page (BSP) programming model.
I found when I mentioned BSP’s people would roll their eyes, mutter under their breath, and generally disparage and discount my views. It took me a while to figure out why. I genuinely wanted to know if I was right why were so many people wrong, and if they were right how could I be so wrong?
Then one day I spent some time with one of the “BSP doubters” who was also an experienced SAP developer and discovered why she thought “BSP was awfully complex!” Not surprisingly it turned out we had completely different perspectives of the ICF and BSP framework.
I had come at it looking to build completely new user experiences and she had come at it having to support the rollout of the SAP CRM WebClient. Whereas I found a toolbox full of things I could use to build new things, she found something already built that she had to understand and then master. I found something that tickled my imagination; she found something that mandated how things needed to be done.
When she took me through the WebClient UI Framework I quickly saw the source of her frustration. It looks great on paper – a nice layered approach with clear separation of concerns. And the complete solution from persistence through to UI is delivered by SAP.
To support the customisation of the user interface to suit the business needs of each customer SAP provides a set of framework tools.
As you can imagine it takes a bit of up-skilling to learn how to use these tools, and how to make the best choices about implementing new functionality. Even the interestingly named “Easy Enhancement Workbench” has anything but an intuitive user interface. On top of that for many developers SAP CRM was the first time they had been forced to come to grips with object oriented ABAP as well.
Because my friends’ only experience with BSP was through the prism of the SAP CRM WebClient she had not had the opportunity to drill down deeply into the underlying technology to see the potential that I could see. Similarly because I had not previously seen the richness of the CRM WebClient and associated tools it had not even occurred to me that others would find the ICF and BSP to be so complex and difficult to work with.
Here’s the rub. Both of us were regularly consulted about options for web user interfaces and both of us were slightly delusional about our knowledge. My lack of knowledge about the SAP CRM WebClient meant I tended to trivialise what might have been quite extensive modifications. My friends’ lack of deep understanding of the capabilities of the ICF meant she tended to find mountains amongst the molehills. And all this was detrimental to our customers.
In the past couple of years some new labels have been coined by SAP; labels like SAPUI5, OpenUI5, NetWeaver Gateway and Fiori. There is a lot of customer interest in what these things can provide – especially those customers looking for a better user interface for their users. But these customers do not – and should not – have to understand the deep dark workings of these pieces of technology. For example, a few months ago I ran a workshop with about 20 attendees all from current SAP customers. The job titles included things like ‘IT Manager’, ‘SAP Manager’, ‘Senior Developer’ and ‘Development Manager’. They openly admitted they didn’t really understand what NW Gateway, SAPUI5 and Fiori were and asked me to explain this to them.
SAP customers will rightly look to people like my developer friend and I (and you) to advise them about what these technologies bring to the table and their relevance.
When it comes to giving advice I think there are two important things that need to be remembered.
Firstly, it is important to take every opportunity to learn about something if we are going to be advising others on that subject or we expect to be working with it. Simply reading the brochure is not enough if you want to be a trusted advisor. You need to know your stuff.
Secondly, it is important to be prepared to say “I don’t know” if you are asked about something you are not an expert on. Do not try to wing it. It is far better to say “I am not sure about that, but let see if I can help you find the answer”.
Isn’t that what you would expect from your trusted advisors?
Nice post, Graham. This is an age old problem (as you know) and while the technologies change, the issues remain the same.
I have always been an advocate of deep learning; when I describe what I do sometimes, I say "I learn". It sounds facetious, but it's quite near the truth, although somewhat narrow in context. Whether one learns to find out new approaches, or one learns to deepen one's knowledge of an area already semi-mastered, There Is Always More To Learn(tm).
Going back to the longevity of this issue (a little knowledge being a dangerous thing) - one of the situations that exacerbate the problem is that the little knowledge (i.e. lack of proper knowledge) is amplified by the layers of consulting and management when 3rd parties are engaged. I'm particularly thinking about the outsourcing model, where not only are layers introduced to control, vet and account for work done, but also layers to "protect" the client from what's actually being done. In these situations there's plenty of opportunity for that lack of knowledge to cause damage and for that damage to permeate up through the layers resulting in a less than ideal implementation of whatever the client wanted.
There isn't an easy answer, partly because there's so much artificial structure that's been put into place to provide 'governance and control'. This governance and control, however, is addressing the symptoms, and not the cause - the cause being exactly what you're talking about here.
Less structure, fewer levels, more transparency, and more experts and deep learning, please, SAP community!
Hi DJ,
thanks for your comment. You have nailed it! As I wrote this blog I struggled how to link my experiences with the consulting model. In the end I couldn't figure out how to do it without diluting the central message I wanted to get across. Your comment perfectly captures the way the systems consulting model can amplify this issue.
Thanks,
Graham Robbo
This blog is fascinating, because it stirs a whole bunch of emotions inside of me and I'm not sure how to respond.
I think that a little knowledge is a very useful thing, if you recognize your limitations and create a support network around you. For me, I'm very grateful for all the wonderful people that know all the things that I don't. But, it takes the bigger person to recognize these and say "I don't know, but I know a (wo)man who does".
But the thing that keeps me awake at night is the dearth of people with the desire to learn - what I call "restless curiosity".
My advice is to learn wide and thin, and narrow and deep. Recognize your strengths and weaknesses. And enjoy.
That was a random collection of musings, indeed. 🙂
Thanks for your comments John - and for the blog post How to become a great consultant
Cheers
Graham Robbo
I agree, because you can't be a master of everything, but you need to know that there are other ways to do things out there. But it's critical that you know your limitations, and refrain for giving advice about things you don't know.
Hi Graham,
When you wrote your tweet that eventually led to this blog, I must admit at first I thought it was simply one of those ubiquitous 'anti-Fiori / UI5' statements with lack of substantiation that regularly pop up on social media. 😉 However I'm glad you wrote this blog which explains it all and thus proved I was wrong, and I completely agree with every single word, as well as DJ's pinpointing to one of the problems.
With regards to SAPUI5, I see a significant number of questions (and accompanying answers) which tells me quite some people don't even understand the very basics of UI5 or even JavaScript (!!) but nevertheless somehow jump in the middle, try something out, see it isn't working and as a result post a question, most of the time with a request for sample code...
Maybe it's due to the open or 'easy to access' nature of UI5, but somehow I don't see these anomalies happen in SAP Java / ABAP / HANA etc development where people *do* seem to have the proper training and/or education.
So I would love to know where it goes wrong and thus how we -- SAP and the community -- can steer it back to the right direction
Because if we fail to do so, I truly fear -- and I may be exaggerating here -- if the above is exemplary for the current level of UI5 understanding and expertise and we don't properly train the right people -- as I don't think UI5 is something everyone could master -- then UI5 will also be given a slow, poisonous yet undeserved Kiss Of Death...
Hi Robin,
thanks for your comments.
One of the triggers for this blog was comments from someone who professed to be an expert on Fiori. They took their poor experience with a single Fiori application and managed to use that as the baseline for their opinions about related technologies such as SAPUI5 & NW Gateway.
This served no one. For a start the people this person was advising were the recipients of poorly researched, and therefore poorly formed, opinions. For the particular individual involved they did nothing to enhance their reputation with those, like me, who were listening on and had a better understanding of the things they were disparaging. And for me - reputation is everything.
I am, however, reasonably optimistic about the success of SAPUI5 - at least in the SAP world. But certainly we need more people who truly understand these technologies using them, breaking them, improving them, etc. And of course that leads to greater understanding and better information for all.
This is where the OpenUI5 initiative can really help to engage lots of web developers who can bring new and deferent perspectives. My fear here is that SAP is already too late with this. I appreciate how difficult a thing it was to get OpenUI5 over the line, and I applaud the considerable efforts of all those who made OpenUI5 happen, but I think it could well prove to be 12 months too late. I hope I am wrong.
Cheers
Graham Robbo
One final quote - "If you are a Developer and you think Java and JavaScript are the same thing I have news for you. You are not a Developer".
🙂 like the quote. "If you are a Developer and you think Java and JavaScript are the same thing I have news for you. You are not a Developer".
Sums the post up very nicely.
Martin
While still learning myself everyday, I also try to educate people on SCN and StackOverflow about best practices for UI5, but I found the generally displayed lack of knowledge of Javascript pretty disturbing...
I really hope people who want to make a "switch" to UI5 will also do some effort (first!) of learning JavaScript. After all, it*is* indeed a serious language! 🙂
The OpenUI5 initiative is awesome, and I think it's a very good framework but there are just too many frameworks out there. Reaching developers outside SAP will be extremely difficult.
But even for SAP Developers OpenUI5 is interesting, and having it as an option will increase adoption within SAP developers. For one I don't feel locked in so it is an easier choice to invest in SAPUI5, and I can develop SAPUI5/Odata interfaces with the knowledge that I can use that same UI with ISS and a Microsoft OData source.
That's very important in a world where the UI is becoming more and more detached from the ERP, and software companies want to leverage their investments.
I have to disagree on the ABAP part. Java is very niche, and I have no contact with HANA, but there are many ABAP developers who just jumped in with little to no training.
Hi Graham,
Nice Post and valuable points, i second the statements
- it is important to take every opportunity to learn about something if we are going to be advising others on that subject
- It is far better to say “I am not sure about that, but let see if I can help you find the answer”.
both are Universal Statements to be a trusted advisor.
thanks,
mahesh
"... you are not a developer" - what is this, the programming snob convention? Or is "insult into learning" some novel approach in education?
C'mon you guys... Surely one wouldn't want a trusted advisor to make jokes like that behind their back. And for the record - I do know the difference between Java and JavaScript (one of them has "script" in the name - duh! 🙂 ).
😘
Funny how everyone uses examples of CRM to illustrate how difficult life might be, when in fact we have it much better set of enhancement tools, API's than SAP ERP 😛 could even dream of. Yep the EEWB was pain, but the AET and the rapid application builder make all this building database models via text files look primitive. I mean is it really fair that CRM can generate webservices, REST services and user interface via one single logical model called the BOL/GenIL, without having to touch the database?
You only realize the power of well-built frameworks when the UI is ripped off the business logic layer for fifth or sixth time and the core business logic layer stays stable 😉 . It's worth the learning curve on the frameworks to get the power whether it be UI5 or the BOL.
Take care,
Stephen
I also think as a trusted advisor, which I prefer than the phrase expert, we also need to accept that there are toolset's out there and also the limitations of the UI5 as well.
UI5 is not going to be an answer or solution for everyone, and it is still a new technology. And only by the community really using it will we find the short comings and areas of improvements we need.
Sometimes even when you think you know enough, someone can teach you something you may have not known. That the fun and why I love IT, and the WWW has always been a community and helps each other.
Martin
I found my way to this blog via Jelena Perfiljeva 's status which, to paraphrase her "Could Graham Robinson's new blog in the Career Center be the beginning of that space's redemption?...", meant to me get yourself over post-haste to the Career Center and see what trouble interesting content Robbo is brewing there. I wasn't disappointed and particularly like how you triggered not only excellent comments here but also was a catalyst for John Appleby 's thought-provoking blog on How to become a great consultant .
I'll continue my own thoughts/musings there....because the discourse seems to have gone in a direction (you helped take it there in the comments) to learning by teaching (a favorite topic of mine) and the further discussion around curiosity that John generated there.
Thanks for modeling quality in this space.
Marilyn
Excellent Blog Robbo! "Not learning JavaScript means you are not a serious ABAP Developer" 🙂 This should be quote for ABAP Community...
Thanks
Hakim
First I wanted to say that I enjoyed the post.
It reminds me of all the times that curiosity outranked my need for sleep and I find myself in front of the computer at 2AM because I have an idea that I need to try out. Or when I find myself dreaming up a snippet of code on some complex thing I've been working on for a while. While curiosity is powerful we are still limited by the technical experiences we have had and sometimes there are so many options to choose from. A widget here, this over here and that over there and wipe my hands because I'm done - but then someone else can show you a completely different way to do it and you can be surprised. Add in the the team element where we can become the sum of the experiences of everyone combined... that's when folks can be true wizards.
As for the second point I find it truly discouraging when I'm being fed a line of malarkey - it may not be obvious for those whom we advise but I think people have a pretty good radar for that sort of thing. I think it's our responsibility as advisors to keep other folks/colleagues honest, but to do so in a polite and professional manner.
This rings a bell 🙂
Hello. I didn't have much exposure to the development side of CRM so this an interesting read. Many people only know the "ERP side of things" 🙂
cheers Otto