≡ Menu

Hire an ITK Programmer, Save Money

Share the knowledge

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?

  • Amiramdil

    You are not wrong…  In many cases a few lines of simple code may deliver functionality that days of configuration may not.
    Configuration can work for some types of customer requirement, while some other types needs real coding.

    On the other hand, I can also see project managers’ view thinking that software customization and development is risky and pricy.
    S/W development has (justified or not) bad reputation, too many  projects (including customization) do not stand to their time and budget.

    The  solution, of course is, simple:

    1.      hire a  knowledgeable and experienced programmer.  That may be seen a little more expensive at first glance, but maybe proofed to be cheaper at the end.  
    2.     Use proven, tested, widely used infrastructures, again that should take some time and effort in the beginning, but will save a lot of time and effort over all.     

     Amiram Deutsch

    • http://plmdojo.com/ Scott Pigman

      Thanks for the input, Amiram. 
      Keeping programming projects on schedule and budget is certainly an issue and I can appreciate that it worries project managers. As a programmer it’s something I struggle with. I think the traditional “waterfall” methodology of development is terribly flawed and causes a lot of the trouble. I don’t know what the solution is for sure, but I’ve been investigating agile methods, particularly Scrum, lately and I like what I hear. 

      I’ve curious what you mean by, proven, tested, widely used infrastructures. Do you mean standard APIs like the C++ standard template library and Boost? 

      • Amiram

        What I mean in infrastructure is a set of  procedures / classes / components (according to the development environment) that will boost your development process (and maybe more important) Reduce the risk).

        Those s/w components will implement common business processes while hiding their technical complexity.

        Examples of those (in Teamcenter customization environment) could be creating a Dataset with file(s), creating a relations between objects, querying for complex properties etc.

        I know that I’m not saying anything  new here (in fact this is simply called reuse), but from my long experience, s/w developers (programmers, architects, designers) would most of the time  take the ‘easy’ solution and do not bother to invest in solid, powerful and usable infrastructure.

        Maybe they don’t have enough time or they are not aware of the benefits of taking the long way.

        All I know that this does not happen in small and medium projects.

        In general, I think that the s/w development industry it just not mature yet.  The TOOLS are not good enough so s/w makers waste their time in looking after low-level details instead being creative and productive but this is beyond our scope (I could write a book on that issue J )


        From: PSR – WorkFlow [mailto:[email protected]] Sent: Monday, June 04, 2012 11:55 AMTo: Amiram DeutschSubject: PSR – שמירת DBב PLM Start DevImportance: High
        שלום רב,
        תהליך  PSR הועבר לטיפולך,
        להלן הפרטים (מספר ה PSR שנפתח :PSR-2012-8989):
        יוזם הדרישה: KATAV-COHEN RAVIT תאריך: 2012-03-01 מערכת: PLM מודול: General-PLM נושא הדרישה: שמירת DBב PLM הערת KeyUser הערת ראש צוות
        לאחר סיום הפיתוח, על מנת להמשיך את התהליך לחץ כאן
        על מנת לקבל עזרה בהמשך התהליך   לחץ כאן
        מקרה של בעיה ניתן לפנות למוקד 7766.
        בכבוד רב,
        מערכת ניהול תהליכים – Agile Point
        זוהי הודעה אוטומטית, אין אפשרות להשיב

        • http://hooverm.pip.verisignlabs.com/ Teamcenter Heretic

            معلومات مثيرة للاهتمام. ولسوء الحظ، فإنه يترجم إلى ثرثرة!

  • VB

    I am looking into the possibility of using ITK for a non-medical graphic application. Does anyone know if a group/forum related to this… and would also need to reach out to some talented programmers. Any help would be appreciated

    • http://plmdojo.com/ Scott Pigman

      Sorry, but That’s an entirely different “ITK” than the one we discuss here.

  • Teamcenter Heretic

    Insight Segmentation and Registration Toolkit (ITK).

    Hey, how hard can it be?
    Probably an piece of cake (that is the PoK toolkit) compared to Teamcenter :)

  • Teamcenter Heretic

    Had some thoughts about this earlier in the week…

    WRT to user exits… would you rather set up a C++ method on object creation or simply code your methods in a post/pre action on your item types ala:

    METHOD_find_method( MYITEM , ITEM_create_msg , &tMethodID );
    METHOD_add_action( tMethodID , METHOD_post_action_type ,MYITEM_createPost , NULL );

  • Aaron Paluzzi

    Hi Scott,

    After doing Teamcenter dev work for 8 years I did come down with a pretty simple method for dealing with the “ITK/SOA is forbidden” mantra. When the customer came to me with a business process that wouldn’t work without code I would modify a template presentation I kept for that scenario. It contained the following:

    1) A few slides showing the process click for click without code broken down as bullet points. If I had time I would use screenshots.
    2) One slide showing the same process click for click with code. I also include the estimated number of lines of code or at lease a pseudo code breakdown of the function. Again if I had time I would use screenshots.
    3) Time needed to implement either.
    4) One slide asking if this business process has been evaluated recently and if it could be updated to work more smoothly out of the box.
    5) I make sure system users are in the room.

    This usually resulted in the customer picking the method that would be easier for the users. I was shocked a couple of times and old established business processes were reexamined and refined to work out of the box easily. Only once did I have a customer choose to go down the purely code-less customization route. Four months in they wound up scrapping everything and going down the path I suggested.

    • http://plmdojo.com/ Scott Pigman

      I love it, that’s a great approach.

  • Jill Moller

    Hi Scott and others, do you have a recommendation of consulting firms for hiring a great Teamcenter programmer?



    • Teamcenter Heretic

      The Heretic knows a few folks.

      You can contact him at: (562) 493-9412

  • Abhi

    Can I get any project or small part of a project as a freelancer. Plz suggest if you know any.

  • Raja Nagendran

    We have a opening for Teamcenter Developer at Detroit, MI. Contact [email protected] for more info

Optimization WordPress Plugins & Solutions by W3 EDGE