terça-feira, 12 de janeiro de 2010

JAVA Development recorrent problems

On the place i've worked before, and such as many other JAVA Development companies i always had some common and classic java problems such as:

-installing old versions of a product on a client
-installing software built on my machine
-promoting changes between systems
-version management
-knowing basic stuff like knowing the products that we sell and what is installed in which client
-constantly refactoring projects because conventions on naming the projects
-Having redundancy (the same project doing the same thing but with a different name replicated in the system).

I've always assumed this issues to the complexity of a solution developed in JAVA, and i always thoughted that it was a organization problem. With so many products and so many releases by product, installing the right pieces on the right clients could be a challenge in some cases.
Now i've changed my perspective about this issue. Many of this problems could be solved with a tool.

Now that i learned a little of NWDI, i can tell that it can handle very well some of this issues, saving time for development. On NWDI i can have the following:

-A centralized and maintained list of products. This is a basic requirment on all software houses. We need to know exactly what we sell to our clients.
-A centralized place for defining conventions. This solves the problem of having a document or someone saying that some type of object must have some kind of name. IDE reads this definitions from a centralized place and obligates the developer to follow the conventions defined there.
-The propagation of software is automatic. We only need to approve the software so it can follow a path defined by a team leader (usually DEV, CONS, TEST, PROD). For each system defined in the path, the team leader just needs to save the host and port for communication purposes.
-We have a centralized place where we can see in which systems is installed which software, and this place is auto-maintained by NWDI.

One thing that i can't find on NWDI is the integration with bug trackers. Let's say the customer report a problem (a business/technical issue). The only way i know to relate the problem reported by the user and the software change that corrected the issue is to name the activity (same as commit comments on CVS,SVN) the same name as the reported issue.

I'm not trying to sell NWDI and SAP didn't pay me to promote NWDI, but i would like to know the existence of this tool when i purely done JAVA developement so i can take the best practises from it.

Sem comentários: