Monday 3 August 2015

SFDC-SAP Integration: Project delivered, Lessons learnd

Delivering SFDC-SAP Integration Project involving 7 different interfaces to one of our US clients is really a milestone in one's career.

I believe that this single blog is not sufficient to unravel my journey to this strategic project, nevertheless, I would like to highlight some of the things I learnt during this period. Before I begin, I would like to take a moment to appreciate some of the magnificent people I met on this journey and who helped me to move ahead and succeed.
Thank you so much to my colleagues with whom I learnt things to manage and take more responsibility   

Let me start from the end, the last few days.. as I feel that the ends are just the beginnings of new possibilities, thoughts, and opportunities.

Last month before Go-Live was like a nightmare (with a positive outcome); groups of hard core developers, analysts and experts working so hard to deliver this strategic project on July 25, 2015.

A personal opinion - Many software engineers develop and even deliver the project they have been working upon; after that they either leave that project and move on to other project or hand over to the other support team.

However my opinion is sightly different. I prefer to adhere to those projects for sometime after Go-Live and then feel/analyze how end users are using or how the business solution is performing. I would prefer to jot down some of the information/knowledge I learnt/gained during the last few moments of the project delivery. The points down below are ad hoc points coming into my mind while writing, it may not seem in sequence, however all points are important.  




1. Capture Request-Response payload in the Integration Logger object, not just success or response message. Why so because you will not have to go to the external system team to ask to push the data again or to ask for xml payload during analysis.

2. Returning only one response message, not one message per wrapper object, corresponding to one request containing multiple wrapper object information.

3. Returning exact error message to external system, not some hard coded message. It will help analyze the data and prevent such errors happening again and again.

4. To re-trigger the interface again for the failed records, make it possible for end users to trigger it. They should not raise a ticket to get it done from the admin team. Make some UI which they can use to feed in the failed record id and then click on button to send the payload to external system.

5. Use collections like lists, sets and maps efficiently so as to prevent various limits like SOQL limit and also keep in mind to check the null or empty conditions.

6. If there are various other old system connected to the SFDC system, analyze if the new integration has any impact and then document all potential impacts and effective solutions.


7. Follow the post Go Live hyper-care support process so that everything issue can be tracked and keep into everyone's notice. It will make you responsible and you will not face any accountability if something bad comes up and if it was not brought into notice previously.

8. Plan your Go-Live deployment management and coordination between onshore and offshore teams. Living in two different time zone helps a lot. It facilitates 24x7 execution flow. Keep all Profile level securities documented. Divide all tasks into Pre, during and post deployment plans.
Prepare couple of deployment drills, Microsoft project plan,

9. Keep some reports ready for tracking the transaction(success / failed) between the two system.

10. Test the updated system with various profiles from various regions so that if this project is only applicable for a given region, it should not impact the other region business process.

11. In the mean time, keep care of your health. Exercise, Yoga daily to keep your mind analytical and active. The last week of deployment will definitely be like an ordeal. But believe me after you come across this period, you will be proud of yourself to witness positive vibes inside you.


12. Keep your offshore team informed about the current changes by giving quick updates mail. Track and document What was done today, What will be done tomorrow and What can be passed onto the offshore team. Remember it's not all about how independent you work but also how collaborating you are and how efficiently you can use the available resources.


13. Perform some analysis on the existing reports for the objects you are modifying/touching as a part of this integration. There may be scenario where you try to convert relationship between two objects from master detail to lookup. It may impact your reports as the Standard Report Types available due to Master Detail relationship will no longer be available. And also keep in mind if you are deleting some fields which are referenced in the reports,  your report may fail.


14. More importantly, keep yourself aware of other external system processes, not just your own system. It may help you understand the whole architecture/landscape of the integration and thereby you may be able to develop robust and stable integrated environment.

15. Keep writing your own short notes, blogs or tweets. It will keep your learning alive and at the same time you share this to the Salesforce or knowledge community.

16. If you are stuck somewhere technically or functionally, don't hesitate to reach out to your senior colleagues, old colleagues or even Salesforce Support team. have a holistic discussion and get the right information.

17. During hyper care post Go Live, always keep track of the issues by opening tickets or maintaining excel sheets. Keep daily meetings and analysis.

18. Know you customers, interact with them. It will help you understand their issue clearly, you can reach out to them confidently and you can solve the issues quickly. So basically know your audience and their requirements.












Happy Salesforce.com Implementation and Knowledge Sharing..                                              

The Journey Continues..