Skip to Content

“I can develop this utility it’s very simple…..”

Didn’t you here or said this sentence (or something similar) at list 10 times on different development projects? Well I did, as a developer, Team leader and development manager for several j2ee projects I often heard (or said) this from developers that wanted to develop some new utility or tool that will make our life easier. So what’s wrong with that? Well from my experience in development a lot of this “simple” tools and utilities ands with:
  • Longer time effort then planned.
  • Missing functionality that cannot be developed (lack of time, knowledge, etc)
  • Unstable tool with lots of Bugs.
  • A lot of maintenance (that after awhile nobody knows how to do it).
  • Discovery of a standard product that can be downloaded or bought that would be much cheaper and stable.

So what should we do then, my suggestion is that you try to answer the following questions
before getting into development:

• Do I really need this? – Find out if it’s really needed a lot of times we don’t really need this tool/utility because we can get the functionality from different sources. So I suggest that before you go into development even if it sound logical and simple perform brain storming session with a few people (try to build a heterogeneous group) in order to asses the need for this tool/utility.
• Is it really that simple? – try to challenge your self, is it really that simple or maybe you forgot something like monitoring, rollback, performance, dependencies, openness to changes etc. it’s most problematic when talking about developing engines or other centric tools. a lot of times we focus on the immediate need and we don’t see the bigger picture, monitoring is a good example for it, we invest a lot on monitoring tools and capabilities but then we have this home made engines/tools/mechanisms that our application is build on and we have no possibility to monitor it’s behavior just because we forgot to develop the monitoring capabilities.
• Can’t I find an open source or an already made product for this? – Before you go and start developing something try to find some one else that done it before you. Today we have quite a lot of Open Source projects that developing tools and utilities that every body needs. If you can’t find some free product maybe it’s better to buy. For developers it is always seems waste of money but to the organization many times it is cheaper to buy a product (that comes with support and experience) then home made development.
• Do I have the skills to develop it? – a very important question that unfortunately is not being asked is do I really have the right skills to develop this tool ? And by saying that I’m not talking about the programming or technical skills but the organizational skills. If my team need to develop a project to an insurance company for 1 year would it be smart to develop transaction engine or security mechanism? Am I (my team) skilled to design this tool?
• How much time would it take to develop? – Before you start ask your self how much time it would take to develop the tool until it would be complete and stable. Here we should take into account all the satellite aspect like monitoring, performance, configurability, integration to other products/components, etc. by analyzing the situation you will always see that the time the developer told you it would take and the time you will get after the analyzing has a huge gap.(the developer is always optimistic)
• How much time and effort would I need in order to maintain this product? – When you analyzing the situation take into account the time and effort you will need in order to maintain the tool. When developing a tool from scratch you always discover that you forgot this and that, and there are always new things that the users need that you did not thing about etc. so the development time is only part of the time and effort you need for this tool. When you are buying an already made product you probably save this problems (assuming that the product is not new and there is an industry experience working with it).
• Who will use it and what about support? – the last but not least aspect you need to think about is the future support for this tool/utility, your tool that you built is being used in production for a few years somebody would have to support it in case of problems or new features that would be needed. Will you have the ability to support it in the long run after the solution will be productive?

Summary
So I hope that my message is clear, I’m not against developing new and interesting things but I do think that it is important for us to know what is our scope and capabilities before we get into new adventures. If we are developing solution for a customer we have to remember:
  • Usually our time table is very limited.
  • We don’t have the right skills and resources.
  • Somebody must have done it before us – find it !!!
Hope that helps – enjoy

To report this post you need to login first.

3 Comments

You must be Logged on to comment or reply to a post.

  1. Matthew Easlea
    • Is it really that simple?

    Good point, most people embark on things that appear simple at first glance but are actually incredibly complicated, almost intractable problems. Building an inhouse CRM solution for instance is an example i have seen dozens of time and very few have succeded.

    (0) 
    1. Subramanian Venkateswaran
      Just a suggestion, can you reduce the font size of the heading. Probably a

      In fact, the point I need to add to your list is, do we require SAP to create this tool ? As far as I know, if we are just creating ‘Z’ tables and ‘Z’ programs for a tool and if it does not use a single SAP application or its derivatives, why bother with the tool !!!

      Regards,
      Subramanian V.

      (0) 
  2. Roberto Sehringer
    NL,

    Your comments are well taken. Many projects have been delayed and/or affected by diversions. Good project managers should always probe the effectiveness of solutions proposed by his/her team.
    SAP should have an area where we can request tools, utilities that could enhance our lives. For example, have you seen anyone chart a global scheduling diagram and get a perspective on all process chains, background jobs & event chains running across a BW installation?
    Here’s a utility many would want to look at.

    Best regard, (keep it coming)

    R.Sehringer

    (0) 

Leave a Reply