I've received a few emails and
comments about my last
post. Some folks said that I was perhaps being unfair and wondered if I had in fact ever used InfoPath. In light of those inquiries, I think it's worth posting a general reply...
In reviewing my post, I realize that I might have come across a bit stronger than I had intended. Although I stated "I've yet to work on a project that includes utilizing InfoPath", that does not mean I have never
used InfoPath. That's quite the opposite. I should have been more explicit and perhaps said that I've never worked on a project where InfoPath survived the design phase and was part of the final implementation. I have used InfoPath on many occasions (as a product team member and as a consultant). I've been called in to fix/understand problems - from really simple mistakes to mysterious form crashes - as well as help design new projects. I have literally spent days on issues trying to determine why it won't work and how to work around it....
InfoPath works well for most scenarios. The problem that I find is that once you start wandering outside the normal path, you will encounter a variety of issues. A lot of folks really want to push the envelope. This is the crux of the problems
outlined by Rob. It's not to say that you can't build really cool applications with InfoPath. However, the development pain can be excruciating.
Do I boycott InfoPath? No. There is only 1 feature in WSS/MOSS that I will not touch. I'll post more on that subject later this week.
Do I prefer to not use InfoPath? Yes. Nonetheless, I will do my best to understand the scenario and determine whether or not the technology is required for the project (this obviously implies being involved in the design phase and not simply being called into to add/modify/fix something). I then examine ways on how to accomplish the same tasks without using InfoPath. A lot of effort is spent trying to determine if in fact InfoPath is the right solution. More times than not, the problems which are systematic of InfoPath force a rethink on the desired solution. Simple design changes will often times lessen the dependency.
It's all a matter of understanding the technology, the obstacles ahead, and the amount of time to achieve your final goal.