2. Collaboration
Collaboration tools such as GitHub and Huddle are used for
collecting and sharing information within the development teams
and teams such as release, testing and other development teams
3. Release Management
Version Control System such as SVN and CVS are used to maintain design
and code artifacts
Branching is done to isolate onto a separate line of development and then
merged and tagged
4. Build Environment
Build tools such as Apache Maven can be used to organize the
code, compile, validate and test it
Continuous Integration Tools can build, validate and test the changes on
going basis
5. Design
Design for optimum usage of computer resources such as
Memory, CPU, I/O & Connection
Follow design principles such as OCP, Liskov Substitution
, IOC, Interface, etc
Create the Stub classes following JEE design patterns for
Controller, View, Model, Listener /
Command, Delegate, Facade, Manager & DAO
Generate UML diagrams such as Collaboration, Sequence, Activity
and Deployment diagrams using the stubs
Generate JDependency & JavaNCSS reports and re-factor the stubs
based on these report output
Design for singleton objects, object pooling, caching (both service
& data), queing techniques
Use annotation extensively for injecting business services & dao
entities, webservice, messaging and transaction
Design security as a cross concern (filter, aop, etc) rather than
handling it part of the application logic
7. Coding
Be conversant with the Java API specification for
the core and dependent libraries before referring
to forums / google
Use Automated Review tools / plugins such as
Eclipse Metrics, PMD, Findbugs
Update local copy from version control
frequently, provide adequate Comments and
perform atomic commits
For Minor Enhancements perform Impact Analysis
on UI, Service, DAO, Configuration, Master Data
and provide Help & Release Document
8. Deployment
Use Maven and Eclipse plugins to
deploy and bootstrap with
configuration and master data
Use Maven Profiles to maintain
configuration for various
environments i.e dev, test and prod
9. Testing
List down the High Level Scenarios under
Functional, Security & Performance categories
Identify the various environments and the test
cycles
Automate Testing using
JUnit, TestNG, Marathon, etc
Mock actual services with SOAP UI, EasyMock, etc
Track Code Coverage using Cobertura, Emma, etc