A little while ago I was talking to one of my colleagues who also supports Teamcenter. Mott (not his real name) told me that he is not allowed to use any ITK customizations at all. The program manager has said that everything should be done purely by codeless configuration. Coding costs more money and could easily blow the project’s budget. The thing was that this limitation meant that Mott was forced to put together some God-awful workarounds to comply with the business requirements.
I asked him,
so you mean to tell me that they’re forcing you to deliver a solution that is way too complicated and does a half-assed job of implementing their business requirements because they’re afraid to invest in a little bit of code that would get them a system that does exactly what they want?!?.
For some reason, Mott was offended by my description of his project.
ITK means Elegance and Correctness
I understand where the project managers were coming from. Programming can cost more up front. But I think that taking a hardline position forbidding any customizations is shortsighted. I do think that whenever possible we should avoid writing new code to configure the system. But well done custom code can mean the difference between an elegant system that does exactly what is required versus one that is complicated and doesn’t do what is required. The money saved up front is lost later by having a more inefficient and complicated system.
ITK Is Usually not Very Complicated Code
In my experience most ITK customizations are actually very simple pieces of code — a pre-condition that does a quick validation before allowing the user to proceed, a post-action that does a small bit of cleanup here or there, or a runtime property that displays useful information to the user in an easy to understand format. The main exception I’ve seen where ITK coding can be complicated is when trying to interface with external systems, and that has more to do with the requirements of the external system than with Teamcenter.
Of Course, You Need To Know What You’re Doing
A valid reason to avoid using custom code is not having anyone available who really understands how to efficiently customize Teamcenter with ITK. It’s not something you pick up in a five day training class.
Yes, I am Biased
I am a programmer myself. I have a financial incentive to ensure that my customers will allow ITK customizations. But that doesn’t mean I’m wrong either.
It seems that everyone wants to redesign the interface. I will go to great lengths to talk people out of customizing the rich client interface with Java code. That kind of customization is much more difficult to do successfully, harder to maintain, and of a much lower value to the customer — in my opinion. But I am also much more comfortable writing ITK code that eclipse framework code. So, yes, I am biased. But I still think I’m right.
Tell Me How and Why I’m Wrong
What do you all think?
Do you work with Teamcenter instances that do not use any customizations at all? How well do they work for you?
Do you forbid your team Using ITK?