I’ve heard this sentence a lot of times. “You don’t need a bachelor of information technology to develop Remedy Apps”, “Just go to a BMC developing course and you’ll be creating amazing apps in a month”, are similar ones. In fact BMC itself has spread this idea over time.
I think they are completely wrong. See Why.
Remedy copr. put a lot of effort in making ARS development as simple as possible, and as separated from the real programming as possible. In fact, all concepts have been renamed to the “user point of view”. Indeed, a non-programmer user will understand this sentence “When you modify your request, the no signed ones will be filtered and not allowed”, better than “We will create a trigger that blocks non signed register updates“.
That works, and I admit that for non-programmer people is easier to understand the basis of Remedy development than Java programming. They can even create SOAP web services!
But, using one of my favorite facts: “Easier it is, easier to do it wrong”. It is like creating a document in Microsoft Word or in LaTeX. Microsoft Word is very easy to use and almost every people claims a high expertise in it. But, not so many people use Word templates correctly, or use styles correctly. I hate people that hit the return key twice to space paragraphs. If you don’t understand the last sentence, it is because you don’t know how styles works in Word. Otherwise, using LaTeX is far more complex, but it enforces you to use styles correctly. As I said: “Easier it is, easier to do it wrong”.
ARS developing suffers from its easiness. Yes, it is very easy to develop, and very easy to create applications that are in a mess.
I think that there are some important facts that every ARS developer must know. I will list a few:
- You need to have a high degree in SQL. Debugging a Remedy app is far easier if you understand the SQL logs.
- You need to have relational database design skills. You need to know what is an E-R diagram, a normalized database, primary and foreign keys, indexes, etc.
- You need to know the basic process models for developing. I mean to know the classic developing processes (like requisition elicitation, or joint-validation, unit test, integration test, …).
And there are a lot more.
To explain programming concepts to non-developer people I usually take the architecture example, comparing the software with a building. There are a lot of tools for easily design a house. You can design it and plot it in 3D without architecture knowledge. But, Would you let someone with an architecture degree to build your house with these tools? Well, with Remedy is exactly the same.
Reading the comments of communities contributors, and especially its questions, I can affirm that there are a lot of these pseudo-developers spread among the globe.
Assume this concept: “Developing remedy apps requires programming skills”