I took down lots of notes about my next two days in India but didn’t have a chance to blog due to time and some connectivity issues. So, it’s a week late but I’m sure it’ll be worth reading. Days 3 and 4 were spent doing “deep dives” into architecture, design approaches, and potential implementation approaches. Having worked with offshore firms for many years, it’s clear that they think a bit differently but how does that translate into practical and deliverable work? That’s what I wanted to find out.
One side note I’d like to make is that these guys are deadly serious about software engineering practices and processes. SEI CMM Level 5 is not just a marketing slide for them, it’s the way they work because they think it’s the right thing to do. The Japanese took many of our Western ideas about manufacturing process and implemented those better and faster than we did and jumped ahead of us in that industry back in the 80’s. Don’t be surprised to wake up in the 2010’s and 2020’s to see that the Indians do that with IT Services & computer software/hardware R&D. Processes don’t help you invent or innovate but they sure do help deliver. And, from what I’ve seen first-hand, the Indians are definitely delivering (profitably!).
Ok, back to architecture and design approaches. I went going in with the idea that the Indian firms should be able to code. After all, that’s the easy part. The question I had was — can they invent, innovate, architect, and design as well as us? So most of my questions revolved around how they would approach problems not solve problems. Do they focus on the right things like business requirements, design principles, and architectural attributes? Do they spend more time on figuring out how to ensure reliability, performance, and maintainability than on initial development? Given that they are so process oriented, what kinds of questions do they ask the beginning of a project that aren’t on a checklist somewhere?
After two days of grilling these guys showed that they’re just like us: some architects know what they’re doing and can really think out of the box, many designers have the right ideas that overall principles are more important than specific checklist items, and that coders can work in agile as well as rigorous project models. I must say that was impressed. There were very few questions that they didn’t answer directly and they actually said “i don’t know” instead of trying to make things up when they didn’t legitimately know. Where they lacked knowledge I’m sure they could’ve found a couple of guys in other areas of their firm that did know the answer. Because I was concentrating on design approaches and concepts and not specific coding questions there were very few “right answers” but plenty of “appropriate answers” and while I would debate with them on almost all their answers I couldn’t say they were wrong.
These last two days of my India trip were very long but probably the most fruitful. I still had my fun in traffic and I didn’t get to see much of India these two days but I got to see some smart folks doing some great work. I’m not convinced they can invent as well as we do here in the states but taking what we have, innovating around it, implementing it as well as or even better than we can is something they are getting very good at. I’m convinced there are very few projects that we’re doing here that they can’t do just as well as we can.