Earlier this year I agreed to take over the development of a friend's web app. Before I took over, my friend had relied on a lovely team of Pakistani (PK) guys to do the work. The PK guys were supposed to develop a complete, robust web app using PHP/MySQL underneath a sturdy AJAX-y shell. While PHP, MySQL and AJAX were indeed used, what was delivered was neither complete nor robust nor sturdy. It was also amazingly insecure and so badly architected that I still wonder if a college intern could've done it better.
This is the story of how I "repatriated" this huge codebase, on-shoring a previously off-shored project. It wasn't my first code repatriation and unfortunately it won't be my last...
Things I'll touch on in my discussion include but won't be limited to:
• What did my initial code review reveal (and *not* reveal) about what was lacking in the web app?
• What can go wrong when your developers don't understand what PHP can actually do, don't know how to design a real web app, and don't fully grasp how to do AJAX and database calls in an efficient, production-ready manner?
• How does one clean up a huge, undocumented codebase?
• How does an off-shored PHP project get in such a bad state? What could've been done from the very beginning to prevent such a negative outcome?
(Dennis Slade will be presenting this one. Since I got a beer glass the first time I presented, I'm hoping for an XXL t-shirt this time 'round. *hint hint*)