IT industry has been the vital cog in supporting various business domains, over many decades. In-comparison, IT industry has evolved at a rapid pace. The IT industry has also established many standards to ensure consistency and efficiency. However, in my opinion it is yet to reach the maturity which the traditional domains (like medicine, civil, electrical etc. ) have managed to attain [There are exceptions even within the mature domains but in general the standards are followed and the consumer is clearly aware of the delivery standards]. Groups like “Open Group” are working very hard to encapsulate the best processes and practices. They define the standards and best practices to be followed in the IT industry. Unfortunately, these standards/processes are seldom adhered. In this blog, I try to identify some of the important aspects of WD project implementations(my domain area) which according to my experience we ignore and their resulting business impact. Some of the points may apply to general software implementations, too.
- Requirement Gathering: It is the most important aspect of any software implementation. This is well documented and everyone would be aware of the importance of having the understanding the complete requirement of the customer. I had an experience with a customer in my current organization. The customer was clear about the requirement to develop a web application with the SAP backend. Based on initial discussions, WD ABAP clearly seemed like the preferred solution. After further enquiry, we understood that the client had plans in future to integrate a standalone HR database(oracle). Technically, it is possible to provide WD ABAP solution to accommodate the data from the standalone DB(with a work around) but it was clear that a WD JAVA solution was better fit. So, push your client to reveal more about their current requirement and also about their future plans.
- UI technology identification: As illustrated in the previous point, the decision on the suitable UI especially flavor of WD is the key to implementation. SAP has shared the details in the Best Built Applications space and document, which details the criteria to choose the UI technology. It would be highly recommended to consider all the criteria’s to arrive at the preferred UI technology( or flavor of WD ).
- Design: I personally find that the least effort invested is in the design phase inspite of it being the most critical phase of the project implementation. The design document needs to accommodate both the current requirements and future changes. In Web Dynpro the critical design considerations could be:
- Define Development Components(DCs) in accordance with MVC/FPM paradigm
- Options to incorporate configuration concept
- Identify dependent, independent and utility/re-usable DCs
- Context structure modeling
- Coding Standards and naming conventions: WD projects also need to comply with the coding and naming standards of ABAP and Java accordingly. The aspects generally compromised are:
- Comments – Methods and Code lines
- Naming conventions for context, variables and methods
- Method functionality – granularity and reusability
- Performance: To improve the performance, there needs to be careful planning in design phase and follow best-practices in implementations. WD projects lose out to standalone projects in ABAP/JAVA generally w.r.t. performance of the applications in web(barring few exceptions). Some of the recommendations from SAP are:
- Track the performance using performance monitoring tool in WD ABAP – Ctrl-Shift-Alt-P
- Use context only for UI elements
- Reduce business logic in WD Components and avoid using custom controllers unless used as configuration controller in WD ABAP.
- Careful use of UI elements based on rendering time required for the elements
- Control the lifetime of the view with code i.e. perform the garbage collection by code.
- Wiki Links: http://wiki.sdn.sap.com/wiki/display/Community/High+performance+of+Web+dynpro+ABAP; http://wiki.sdn.sap.com/wiki/display/WDABAP/Performance+Tuning+for+SAP++Web+Dynpro+ABAP
Developers can take a bit more responsibility to ensure good practices are followed as it has a direct impact on the application memory usage esp. ABAP developers.
- Review and Testing: Every project should ideally make use of the existing tools from ABAP/Java to perform the code reviews and refactor the code to accommodate the suggestions for better performance and support. Testing requires more discipline to document the test case and follow the steps diligently(I myself have a big problem in this area 🙂 ). As we all know, the more we test the application the better is the resulting product.
I hope to follow some of the points discussed in this blog in my future assignments. I would request others to choose the useful points and make use of them in their implementations. Kindly share your feedback and feel free to share your experience and suggestions.