Architect vs Developer Responsibilities

Responsibilities of an architect and a developer don’t solely depend on the employees role; it also depends on the project and company type. Let me give you an overview based on my personal experience in Turkey.

Support Agreements

A support agreement is the situation where a SAP client makes a deal with a consultancy company to resolve their daily issues over tickets. In that case, the consultant is responsible of understanding the issue, solving it, making the users test it and eventually transporting the solution to the live system. One of the significant responsibilities is to resolve the tickets quickly if the matter in hand is urgent. This sometimes involves working late or at weekends.

Usually; companies agree on response time for priorities. For example; urgent tickets might expected to be replied within an hour & resolved within 24 hours, while low level tickets might expected to be replied within 24 hours & resolved within a day. In that case, this scheme would also act as the KPI of the support consultants. At the performance evaluation at the end of the year, their actual response & resolution rates are compared against the targets. This can run on team and/or personal level. FTR (first time right) is another typical KPI, which indicates the percentage of tickets where the first technical reply got accepted by the client.

In typical support deals, we rarely see architects get involved. Support issues are basically small corrections or enhancements on an existing system, so no architects are full time present. In case a correction needs modification on the fundamental level or some supervisory advice is needed, that’s where they step in. Knowing and understanding the bowels, standards and deep infrastructure of the system much better than developers, the architect can make those fundamental modifications accurately and risk free. Alternatively, the architect can guide the developer on how to proceed – that’s also possible. Whenever a developer without architectural knowledge attempts to do a fundamental change, we usually see anti-patterns emerge.

You can imagine it like this: You can hire a worker to paint your walls, no architect needed. But in case you want to expand your swimming pool, you ask your architect first.

Implementation Projects

This is the deal where a consulting company implements a new functionality to a SAP client. It can be a huge fresh SAP implementation, or a mid-sized implementation of a new functionality over an existing system; or even an upgrade. That’s where ideally developers work under the supervision of an architect.

Each project has a number of tasks to complete. On shallow tasks, the developers would be allowed to directly start with the development. However, the architect walks in for bigger developments, frameworks, integrations and similar comprehensive tasks. The architect usually designs the framework, does the low level coding, does a few demo implementations, and leaves the rest to developers. Other developers build on top of what the architect has prepared.

If I had to list some typical responsibilities on top of my head; an architect would be resposible of:

  • Defining the development standards, naming conventions and document formats
  • Technical supervision to functional consultants during the analysis phase
  • Supporting time estimations
  • Acting as an objective technical authority in meetings
  • Communication and agreement with non-SAP architects on integration points
  • Supervision to project management for task distribution
  • Architectural design & development of complex applications
  • Framework design & development for applications sharing a common ground
  • Supervising developers so they don’t re-invent the wheel
  • Review & validation of code from developers
  • Prevention of code duplication
  • Pursuing and evaluating test results
  • Pursuing architectural, technical, performance and usability excellence
  • Early recognition & proactive measures of architectural risks; such as contradicting or overlapping requirements
  • General responsibility of the big picture

If I had to do the same for developers;

  • Writing clean, understandable, optimized code with enough comments
  • Complying with technical standards of the project and global best practices
  • Re-using code whenever possible
  • Maximizing information flow with co-workers and the architect
  • Finishing tasks on time
  • Supporting tests and correcting bugs
  • Consult the architect on uncertain cases

Pre-Sales

This is the case where the consulting company wants to sell a product or service to a potential client.

In such cases, presence of the architect is more than welcome due to a lot of reasons; of which some are listed below:

  • Knowledge of the architect would positively influence the client
  • An architect can conclude technical discussions with the client’s employees rather quickly
  • In case a demo application is needed, an architect can understand, plan and implement it very well; demonstrating the technical muscle of the consulting company
  • An architect can inform the sales team of technical limitations and regulations; proactively stopping them from making unfulfillable promises
  • Accuracy of development time estimations would increase

Conclusion

The picture I painted in this article is far from complete; however, I think that it gave you the overall insight you needed. In summary; you can imagine the developers like construction workers, and the software architect like a, well, architect (doh).

Evernote Daily Progress Report

I manage my life plans and todo lists in Evernote; both personal and business. For every task I need to work on, I have a corresponding Evernote item.

A typical work day ends with a review of what I did on that day. A clever Evernote search query returns me just that:

tag:"#ecz" updated:day

#ecz is the tag I use on job related notes. updated:day covers the notes created or updated today. Combining them both, I get to list the job related notes I created or updated today. Cool, right?

Please note that Evernote search queries don’t return deleted notes at this time. So if you deleted a note, it won’t appear in the search results. Be mindful of that.

For more information on search capabilities of Evernote, you can check the following articles:

Bonus information: On a Mac, Evernote can also be automated via scripting; you can check my sample codes on GitHub.

Parsing JSON in ABAP

SAP ECC has two beautiful classes for JSON parsing operations.

/ui2/cl_json is useful in case you know the structure of the JSON file. Similar to the CALL TRANSFORMATION command; you can parse a JSON string directly if you have a corresponding nested structure. This class is very forgiving too; it doesn’t raise any exceptions if your structure has missing or excess fields. Turning a nested ABAP structure into a JSON string is also possible.

/ui5/cl_json_parser is useful in case you don’t know the exact structure of the JSON file. When you pass the JSON string to this class, it simply transforms the data into an internal table of key / value pairs. It is your responsibility to loop through this ITAB to fetch whatever you are looking for. It doesn’t transform your nested structure into JSON format at this time though – it parses JSON strings only.

Monospaced Coding Font Review

I have tried a bunch of monospaced fonts, and here is my little review.

Consolas was a long time favourite of mine, and it is still my number one.

Source Code Pro from Adobe turned out to be my second favourite at this time. It is clean and easy to read. It lacks ligatures, but that’s kind of the point – read further.

Hasklig is basically Source Code Pro with ligatures, but the ligatures simply don’t work in Eclipse. Therefore, I ruled that one out.

Fira Code seems to be a very popular choice of many programmers. It is a beautiful font with ligature support. The problem is; Fira Code works slow on my Eclipse, and I use it a lot. Whenever I do a simple text operation like selecting, hitting TAB, etc; it takes a little while for the application to process the command. My assumption is; ligatures are slowing down the calculation process. Therefore; I regrettable uninstalled Fira Code.

Pragmata pro seems to be an expensive but popular choice among many developers. Although it is a thoroughly calculated font; the characters are narrow. The squeezed characters simply don’t work for me. But it may work for others, of course – it is a matter of taste. I don’t know if its ligatures slow down Eclipse though, couldn’t use it that much, frankly.

Why I Refused To Become a Mentor with Everwise

I have been mentoring people for a long time. Hoping that I would find new people to mentor over the Internet, I have applied for mentorship at Everwise. However; after our initial meeting, I didn’t like their model and cancelled my application. Here is my final message to them.

I have evaluated our phone call, and I regret to say that I won’t be part of the Everwise ecosystem at this time.

Here is my feedback:

I have voluntarily mentored countless people so far, without charging them anything. Simply out of good will. That’s one way of mentoring. I also understand that mentoring can be a business. Involving compensation within the process can be fair enough in many cases.

However, your model is based on being an intermediary company charging the clients and paying the mentors nothing. Instead; you offer a social platform and mentoring experience.

If this would be a free service for all parties, I could join it as a mentor out of good will – I do mentoring all the time anyway. But when compensation is involved, I start evaluating the system as a business. And the non-monetary compensation you offer doesn’t appeal to me, frankly.

Best regards…

No Instant Defective Device Replacement at Apple Online Store Turkey

Summary

I ordered a new iPad from the Apple Online Store Turkey, which had a minor defect on its screen. Apple support said that I would have to wait 10 days for a replacement. Brick & mortar Apple stores do instant replacements in such cases; therefore, I don’t recommend anyone using the online store for substantial purchases.

Details

Last week, one of my peers approached me and asked if I’d be willing to sell my (2012) iPad to her. I use my iPad in meetings and on the stage in case I need to read music while playing. Therefore; it has an important place in my daily life, but I don’t need too much computing power. Nevertheless; I didn’t want to miss the opportunity to upgrade my hardware. We shook hands, I passed the iPad to her and ordered a new one from the Apple Online Store Turkey. Needless to say, the delivery was very fast and I was playing around with my new Apple toy in no time.

However; I noticed a black fleck on the screen. It’s not a dead pixel because it’s visible when the iPad is turned off as well. It’s either a tiny crack within the glass, or a little piece of dust between glasses. It doesn’t really affect my usage, but defects cause raised eyebrows when you are re-selling your device. And why not have a perfect device when you paid for it?

Being a long time Apple fan, I confidently contacted support to talk about my replacement options. The people I talked with were very polite and knowledgeable; however, the result was very disappointing. They said that the cargo company would contact me within 48 hours, pick the defective iPad up, carry it to some facility for inspection, and a new one would be sent to me within 7 days. That makes 10 days in total. Although I asked for different options, I was told that there isn’t one.

I could get an instant replacement if the purchase was made from a brick & mortar store.

I use an iPad extensively at work and on the stage, and sold my old iPad. So I don’t have 10 days to live without an iPad. If that was an iPhone, living 10 days without a phone would be impossible either – not everyone has a backup device. Therefore, I was forced to live with my defective device. I don’t know what else to do, and I’m very dissatisfied.

Bitter lesson learned: Never ever purchase a substantial Apple device from the online store unless you have a backup, because you don’t get instant replacements like the brick & mortar Apple stores.

Supplementary

The order was made at 2017-07-11, my order number was W430294017, and the incident number of the issue was 100236141732.

ABAP’ın 10 Sene Sonrası

(…) Türkiye de şu an ABAP bilen uzman kişiler aranıyor ve ben bu alana tamamen yolumu çevirirsem bundan 10 sene sonrası içinde yanlış bir tercih mi yapıyor olurum? (…) Benim ulaşmayı istediğim noktada sizce ABAP uygun bir yerde mi ? ABAP için modül geliştirebilmek şu an için ne kadar aranan bir pozisyon olsa da, (…) bir 5 sene sonra belkide rutinini koruyacak ve bana ihtiyaç kalmayacak bile. Şu an Amerika da BIGDATA’nın zirve yaptığı bir dönem 10 sene sonra belki de ABAP duymayacağız Spark, Hadoop duyacağız. ABAP bunun esnekliğini bana sağlayabilecek mi Kerem bey? Sektörün içerisinde ve ileriyi görebilecek tecrübeye sahip biri olduğunuzu göz önüne katarak bana verebileceğiniz tavsiyeler nelerdir ?

SAP artık sadece ERP çözümleri sunan bir firma olmanın çok ötesinde bir noktada duruyor. Cloud, Big Data, AI, Machine Learning, IoT gibi konularda da ya kendi geliştirdiği, ya da firma satın alarak devşirdiği çözümler sunuyor.

ABAP, SAP’nin ERP çözümlerinde ERP sunucusu üzerindeki geliştirmeleri yapmak için hala geçerli bir dil. SAP, R/3’e 2025 yılına kadar destek vereceğini açıkladı, 2025 yılı itibariyle ise müşterilerinin (yeni nesip ERP sistemi olan) S/4 Hana’ya geçiş yapmış olmasını talep ediyor.

Ancak; altyapısında klasi bir veritabanı yerine Hana altyapısı kullanması gibi bazı değişikliklere rağmen, S/4 Hana’nın da sunucu tarafı geliştirmeleri için hala ABAP kullanılıyor. Yani; SAP’nin ERP programlama dili olarak ABAP geçerliliğini daha uzun bir süre koruyacak gibi gözüküyor.

Eğer ERP programcısı olmayı düşünüyorsan, ABAP yatırımının boşa gitmeyeceğini düşünüyorum. Ancak; ABAP’ın üzerine Fiori gibi yeni nesil uygulamaları da eklemeyi planlamalısın. Zira SAP’yi dış dünyaya entegre etmenin modern yolu artık OData ve Fiori destekli Web / mobil uygulama ve servis geliştirmekten geçiyor. Bunun yanı sıra; SAP’nin ERP ailesindeki ürünler artık Cloud olarak da sunuluyor. Dolayısıyla Web ortamında geliştirme yapamayan bir programcının uzun vadede zorluk çekeceğini öngörüyorum.

Senin burada vermen gereken temel karar, ERP programcısı olmak veya olmamak üzerine olmalı. ERP yolunu seçeceksen; bu sektördeki en büyük isim olan SAP’yi takip etmen ve onun ERP geliştirme dili olan ABAP’ı (ve Fiori, Hana gibi modern araçlarını) öğrenmende bir kayıp öngörmüyorum.

Ancak; ERP’yi bir kenara bırakarak (mesela) Big Data üzerine yoğunlaşacaksan, Big Data konusundaki en iyi kariyer yolunun ne olduğuna bakıp ona göre ayrı bir karar vermen gerekir. Bu konudaki en iyi kariyer SAP çözümlerinde uzmanlaşmaktan mı geçiyor, onu ayrıca araştır.

Yok, AI ve Machine Learning ilgini çekiyorsa, yine o konulara ait geleceği olan bir kariyer yolu çizmelisin. SAP çözümleri bu sektörün neresinde duruyor iyi araştır. ERP’de lider diye AI konusunda senin en iyi kariyer seçeneğin SAP olmak zorunda değil.