Application Development Blog Posts
Learn and share on deeper, cross technology development topics such as integration and connectivity, automation, cloud extensibility, developing at scale, and security.
cancel
Showing results for 
Search instead for 
Did you mean: 
Florian
Active Contributor

Hi all,

I just thought making a new blog about some good behavior when getting a ABAP-developer.

Ok, most of the points hit all developers, I think.

First I thought, maybe this is a blog for all the freshers out there, but when I was collecting the facts and what I think, everybody should do, I recognized, that I work through a lot of coding and it is more than just the new developers, which need to know that (again). No, I’m not saying, they don’t do so, but I think, some maybe have to get the focus on such points again, so that they (includes me, of course :razz: ) remember the facts.

Ok, let us have a look at the list.

Of course, everybody is invited to add additional points in the comments. A very cool thing would be, if we get a document in the end. I searched SCN, but all I found, was a lot of good content, but not a big guide or wiki.

1st of all, know your guidelines!

Make yourself familiar with the programming guidelines given you by your customer or company. Don’t mess up with the guidelines. I f there are rules in, follow them. It’s not up to you to change the rules. If there might be a mistake, and yes, there might be some, report them to the person, which is responsible for that. I’m sure, the person will give a hand and explain or change the rule.


The 2nd point is, introduce yourself to the consultants.

Make sure, you and the guys given you input talk on a same level. You can easily achive that, by repeating his concept in your own words and send it to the consultant. It confuses me everytime I see people developing things, which are not that, what the other side imagine. Make sure, that not you are the wrong guy in the chain!


The 3rd point: Be a smart developer and do not start coding as the world collides tomorrow.

Most of our developing will run for more than just a few months. Make sure, if you have to enhance or rebuild something, that you took the correct spots. You can easily prove the spot by searching SCN. If I wasn’t that sure, I found most of the times another, which get answered the question already. If not, be the first asking. By the way, talking to colleagues about things like that always helps and gives another perspective on it. Luckily I’m surrounded by  some :lol:

The 4th point is, think about your developing twice.

Before starting, as mentioned above and afterward. It is not wasted time, to work through your coding again and make comments, where comments are missing. It is not a good programming style, to be the only one to understand what it’s going on inside. You will get in trouble if you do so, for sure!

Use variables, that speech to the people and saying things like that:

“Hi, I’m Mr. Table, I store the dataset, which is used for proving the orders”. (Ok, I'm a bit silly at the moment, you know what I mean :razz: )

5th Use good technics inside your written code

Today it is more and more important, that we have to make a cut between the view and the coding itself. Use the Patterns and technics which people teached you. MVC is a big thing right now and it might be more important than ever before. What technics to prefer and stuff like that, I (we) can’t just summarize in such a few sentences here, that’s why I’m not trying it.

6th Use the codeinspector!

This is the easiest way to prove the coding. Back to the 1st point. Use it, if there is a profile in the system. If not, ask the author of the guidelines, why there isn’t one. If there is none, use the default variant, better use that one, than not using it at all.

The Codeinspector helps to make everybody’s development saver and easier. Again, use this awesome feature . If you got a newer release, there might be the ATC (ABAP Test Cockpit) available. But that would be too much at the moment.

7th Implement unit tests if possible

You know, unit test might be a messie work at the moment :cry: , but there is no program, which is guarded against changes. Most of the developing lives and the customer/users get new ideas, what they want to do with it. So the unit-tests help you right at the moment not that much, but if the object returns,

you needn’t to fight what done earlier, just press the button and see, if all scenarios work fine, after developing new cases with it. (That is another big story to tell, there are a lot out there, perhaps I bring another to the binaries, someday :wink: )


8th Make performance tests.

Don’t just say yourself, it’s working with my data. Think about the scenarios hitting your coding in productive areas. Make sure, that you tested or better told other to test your developing in different scenarios. You are the developer and you know the critical things inside. So do not leave them alone, make it public and tell the people what they have to focus in your eyes.


9th Don’t waste too much time with a technical documentation.

     Only waste time with TDs if your're going to make AWESOME ones

  Give the result to another developer and just let him look at it for 10 minutes. It just should be a feeling, if it is understandable what you are doing there. It doesn’t matter if he can understand everything, but the feeling should be there. When writing the technical docu remember this blog here:

Stop writing Technical Documentation nobody will ever read

We discussed about it in the office and yes, he is absolutely right.

As usual, a question in the end:

Who knows, when working through the guidelines of your company last time. How often is this document updated? Is there also a styleguide included?

Thanks for reading to the end. If I'm wrong with a point, let me know and I can rethink it.

Regards

Florian

PS: It just popped up in my mind, so I added the Star Wars picture*haha*


18.02.14: Updated point number 9 out of the comments. I agree with mauricio.cruzand bruno.esperancathat the mentioned description gives a better clue, what is meant

104 Comments
Former Member
0 Kudos

extremely well articulated , not only ABAP techniques but experience. :smile:

Keep up the good work...

- Vipin

Former Member
0 Kudos

Profanity warning - profanity warning - he used the s**** word...!!!  :lol:

0 Kudos

Really a good one :smile:

NeerajRao
Explorer
0 Kudos

Good article, even experienced professional should take care about it

-Neeraj Rao

ChrisRae
Participant
0 Kudos

Hi Custodio,

While I think that Alisdair and Tony's book is a great read, we need to apply this particular one as a rule that has very valid exceptions.

There are very valid cases that we have come across where due to performance a query or piece of code was structured in a certain way, that at first glance of the code would look inefficient. We have had cases where we can see that the optimised code has since been changed back to a "traditional" piece of code, which has a detrimental effect on the system.

It is these cases that the doco is required and that the comments become critical. Where it becomes grey is the faint line that says, where do you expect the developers base knowledge to be, and document from that point forward.

I am a fan of in-line comments, and function catalogues. The function catalogues are like code snippets that describe how a company uses the z functions and why. They are not necessarily "developer" focused. They should be more business analyst focused. This prevents the constant re-developing of existing functionality.

Chris.

matt
Active Contributor
0 Kudos

Except nowadays, we use CLASS catalogues... :wink:

joao_sousa2
Active Contributor
0 Kudos

That could be one of the point everybody should remember. It's amazing how many ABAP developers you meet nowadays that say they don't know how to use classes.

That and WDA, which is like 5 years old, provides an amazing framework for complex applications, and most ABAPs don't know how to use it.

custodio_deoliveira
Active Contributor
0 Kudos

Agreed. And WDA is at least 8 years old. Pretty sure it was released at the end of 2005. I saw it for the first time in 2006.

vishalnangia
Discoverer
0 Kudos

Best Practices in a Nut shell.Thanks Florian

horst_keller
Product and Topic Expert
Product and Topic Expert
0 Kudos

Rule 3.1

Rule 5.18

(from 2009, no comment ...)

Former Member
0 Kudos

good one :smile:

robert_shandley
Explorer
0 Kudos

Hey Florian,

all in all a great piece of work.

I'd like to again emphasize Point 8

8th Make performance tests.

It happens everywhere I've been. Development system with a couple rows of data. Wow it works. It's even fast. Deploy!

As a database developer/administrator at heart, I'm constantly forcing this issue with the application developers.

Florian
Active Contributor
0 Kudos

Hi all,

I just want to thank you all for leaving comments. A special thanks goes to the people behind for mention my blog in the newsletter. :smile:

Cheers

Florian

Former Member
0 Kudos

I appreciate you for throwing them in a craziest way, , a way headed to seek attention .

good going :smile:

Regards,

Shiv

PankajJain777
Explorer
0 Kudos

florian.henninger

Quite useful information. :smile:

reg,

Pankaj

frank_rudolf
Discoverer
0 Kudos

Thank you Florian for this good article! From my past experience as developing consultant it is also essential to think early about making your code easy to enhance (clearly defined and modular building blocks) as change will always come during the AT. Maybe you could also adds something about keeping your knowledge up to date, e.g. there are still too many Wf-Developers today who are still using the BOR-Layer (swo1) for something else than event handling. :wink:

Former Member
0 Kudos

Thank You Florian its good docuement!

former_member187748
Active Contributor
0 Kudos

Hi,

good to know these points, i hope this will help many newbie too.

Former Member
0 Kudos

Thank You Florian its nice  docuement!.. :smile:

Former Member
0 Kudos

Thank You Florian. Many points to ponder upon before actually beginning to develop. Thanks for this document.

aabida_majeed
Participant
0 Kudos

This is a wonderful share and as an ABAP developer I will make sure to note most of these points down and use them as required.

Being a developer for various technologies as far as I know through my prior experiences in the industry  you build a good end product (program,application, software etc...) if the underlying structuring is good meaning in our terms its the coding.

In development we know the program is good as good as the developer gets :smile: so ABAP developers are no different than that. :wink:

Former Member
0 Kudos

Thanks Florian, these look like good points to always have in mind. Thanks for compiling them.

Former Member
0 Kudos

really Nice compilation..!! liked 3rd and 9th point specially.. :smile:

former_member190904
Participant
0 Kudos

"s**t" is swearing ? Really ? Many cultures collide in here, n'est-ce pas ?

matt
Active Contributor
0 Kudos

Vraiment, it's swearing, as is ****, *****, ******* **** and, of course not forgetting ********** **** ******* :wink: .

The equivalent word in French and German really doesn't appear to be as strong. Probably safer to stay away from all colloquialisms!

former_member190904
Participant
0 Kudos

I would add another rule:

Don't use obscure construction like INITIAL instead of TRUE or FALSE (create constants).

Or the CHECK instruction that is a disguised IF GOTO with no indentation in the code. Indentation is a good feature when you scan the code for breaks in the logic. The CHECK will be overlooked many times.

former_member190904
Participant
0 Kudos

I have american friends who wouldn't blink at this word. And I saw it at a SAP course in Pa

rsipanny a long time ago. Some said "s***" because something bad :!: happened in his program. Some people jumped around him. And some other people laughed at people jumping. So, i'm getting a really mixed message here. As if there was many cultures in the USA. And I truly belive there is. Same in Canada by the way.

bruno_esperanca
Contributor
0 Kudos

There will always be people more sensitive than others.

When I started working in Paris it was a big surprise to me that "putain" was an acceptable expression even in the workplace... the equivalent expression in Portugal would get me fired :wink:

Cheers,

Bruno

matt
Active Contributor
0 Kudos

Don't create constants for TRUE or FALSE - they already exist. Use abap_true and abap_false.

Former Member
0 Kudos

And just to drag the discussion even further off-topic (by making a completely unrelated comment): I'm personally sensitive to religious references. Being ardently atheist, I was slightly offended when I bought an otherwise excellent book about my favourite programming language and saw the author mentioning a certain "Him" in his preface. I actually had to strike it out. That's just me, of course, but I believe this is a valid complement to the code of conduct: stay away from religious references. Not everyone shares your beliefs. Or any beliefs, for that matter.

former_member190904
Participant
0 Kudos

Well that's another point : readability and prefixes. I simply hate those because we read from left to right. The most important thing in a variable name should be at the leftmost position (the brain works that way). So when I'm scanning the code, the "abap_" part at the beginning simply interferes with the readability of it.

All the other prefixes to say that the variable is local, a table, a structure, they should be all suffixes. And most of the time we could do without them altogether. Double-click on it if you don't know what it is. To me, it's only noise.

The goal of a standard is not to only there to make sure everybody write with the same style (that's too orwellian). There can be more benefits to it. And readability is very often overlooked.

former_member190904
Participant
0 Kudos

Maybe he was speaking about himself and he thinks very highly about Him :lol:

bruno_esperanca
Contributor
0 Kudos

Well... it was his book to write, so he could write whatever he wanted in it, no? :razz:

But, Trond, you reminded me of a funny South Park episode. If you haven't done so, and if you like "adult-oriented" cartoons, try watching "The Poor Kid" episode. I think you will find it amusing :smile:

Best,

Bruno

matt
Active Contributor
0 Kudos

But maybe now, I'm offended that you've expressed your belief that everyone should keep their beliefs to themselves. And that you felt the need to express your lack of belief in a technical forum that's got nothing to do with belief. Where will it all end! ? :wink:

Florian
Active Contributor
0 Kudos

Hey Guy,

I know what you mean, but I'm also with Matthew, use the things given to us. This is of course a point, which could be better but it is as always.. It can't be anything awesome :wink:

Thank you for this addition here. Programming style is an extra blog worse.

~Florian

Former Member
0 Kudos

Yes. Sorry. I'll never do it again.

Swear to God.

:lol:

former_member192971
Participant
0 Kudos

Hello Florian , Nice document . very useful :smile: .  It would be better if you had added some more important points in depth .

Florian
Active Contributor
0 Kudos

Hi Uday,

yeah you are right. This is a blog all the points are given in an overview. The next month I want to deliver new documents which gives more insight in some of the points.

~Florian

former_member228751
Contributor
0 Kudos

Nice post. Very much useful

Former Member
0 Kudos

Hello Florian,


Nice Post , and  neat flow of points..


Thanks and Regards.


Palaniyappan Subbiah

former_member225134
Participant
0 Kudos

Am fresher , while reading this post am getting engrmnt to workout these ways hereafter.

thanx really useful one.

raffaele_mormone
Employee
Employee
0 Kudos

Hi Florian,

nice blog ! Thanks!

From my point of view, another point might be: "before starting to write thousands lines of code, use brain, pen and paper!"

Regards,

Raffaele

former_member190904
Participant
0 Kudos

Definitely "brain". And not in a "zombie" way :grin:

Or it could be "Brain, mouse and MS-Visio".

An Outliner to write high-level pseudo-code is sometimes nice too.

custodio_deoliveira
Active Contributor
0 Kudos

Hi Chris,

You are right, and I think it's covered in the "there are always exceptions to every rule" bit.

Cheers,

Custodio

Former Member
0 Kudos

Nice Blog. Thx for sharing this

Former Member
0 Kudos

Hi,

I will keep in mind the 9th point. Imagine, you develop any object and put it on scn (with the requirement) for testing. The one who finds/suggests any errors/improvements will get 20 points or something. I would love to do in free time. 

Anyway, I really liked 9th point. There are some freshers who have recently joined the company, I will pass the object to them along with the FS. #winwin situation.

Thanks

Purnand

Florian
Active Contributor
0 Kudos

Haha, that would be a nice thing. But I don't think most of the people are just here to gain points at all :wink:

~Florian

Former Member
0 Kudos

You get points plus real time query. :cool:

0 Kudos

Thank you Very nice !

former_member228804
Participant
0 Kudos

I am currently on an implementation project with a reputed Pharmaceutical and CRO company. So the validations and CSV implications here are very strict.This blog will surely help me while coding better. Thanks a lot :smile: .