I am working on this project, which will soon contain loads of packages, projects etc. (Java). So, from the start I need to keep track of the high level package and class structure, monitor which class is being called where, so that I don't make it over complicated after 6 months.What is the right way to go about it? Any tools for this?
How to keep a project easy to understand and intutive?
java;project management;code quality;code smell;agile
The two biggest things, off the top are clear naming conventions and external documentation. Clear naming conventions: People should be able to figure out, within a reasonable margin of error, what a class, package, or method is for just by reading its name. That doesn't mean you need names like methodToLoadTheXMLFileAndParseOutPhoneNumbersAndPutThemInAnArrayAndReturnIt(), but names like parseNumbersFromXML() are better than parseNums(). The same goes for classes, packages, and projects. Within the boundary of the level of abstraction, names should be self-descriptive.External Documentation: Commented code is good. Well-commented code is excellent. But even extremely well commented code is only so useful for understanding the bigger picture, and when that's the goal, external documentation is the way to go. Could be word processor docs, fields in project management tools, or any other format, but the key is to have plain, straightforward text descriptions of components at multiple levels of abstraction.I'm sure there's more that others can add, but this should help.