Maven is great if you have an application with a lot of third-party dependencies and don’t want each developer to keep track of where the dependency can be downloaded. It’s also a great way to make it easy for a new developer to be able to build the application. It’s less suitable for simple projects without any third-party dependencies.
Serena CM is well suited to highly controlled, audited, and process driven environments. It will allow strict segregation of duties, and change traceability. If implemented correctly it will help you quickly build trusts with your auditors. It is also well suited to environments that require constant branching and merging. Due to the complexity of the product and learning curve for your development and operations team it may be overkill in a small shop with loose rules
Code Promotion: Dimensions CM allows supervisors to control changes to code, in that they delegate requests to developers, and act as a gatekeeper prior to promoting to the next environment. This functionality is configurable so you can set up a workflow that best fits the structure and requirements of your own company.
Code Repository for changes and versioning: Code can be checked out by item or by synchronizing folders. Code revisions can be compared against other revisions or work files. Item histories show which developers made which modifications, and which supervisor and operations personnel were involved in assigning the request and promoting the code to each environment. Additionally a pedigree will show a stream diagram which graphically displays branches and merges.
Deployment: Serena Change Management offers help automating deployment including integrations with SVN and Jenkins. Its newer versions also have a powerful graphical deployment automation tool (Serena Deployment Automation- SDA). It comes with a certain amount of licenses built-in. If you have a many nodes to deploy to there will be separate licensing costs for that.
Maven provides a very rigid model that makes customization tedious and sometimes impossible. While this can make it easier to understand any given Maven build, as long as you don’t have any special requirements, it also makes it unsuitable for many automation problems.
Maven has few, built-in dependency scopes, which forces awkward module architectures in common scenarios like using test fixtures or code generation. There is no separation between unit and integration tests
The only major negative that I have encountered with Serena CM product is that the very power and flexibility of the tool means there is a risk that you will make a mess of things. In other words it gives you plenty of rope to tangle yourself with. I recommend careful, well thought out deployments implementing the built in roles and workflows that can be turned on and configured, using a consistent methodology.
My experience with the Serena help desk support has not been impressive. Though reasonably polite and diligent, the technicians were well trained, and often gave bad advise and terrible scripts. On several occasions I had to rewrite scripts they have me; if I had run them as provided they would have caused even more difficulties than the problem I was trying to solve. I speak of the support in the past tense because I conditioned myself not to call them, it was usually just easier to solve nay problems my self. They do have a good account management team though, and for any major issues you can go thru them.
The overall usability of Apache Maven is very good to us. We were able to incorporate it into our company's build process pretty quickly. We deployed it to multiple teams throughout the entire enterprise. We got good feedback from our developers stating that Apache Maven has simplified their build process. It also allowed to to standardize the build process for the entire enterprise, thus ensure that each development team is using the same, consistent process to build code.
I can't speak to the support, as I've never had issues. Apache Maven "just works," and errors were user errors or local nexus errors. Apache Maven is a great build/dependency management tool. I give it a 9/10 because occasionally the error message don't immediately indicate a solution...but again, those errors were always user or configuration errors, and the Maven documentation is extensive, so I don't find fault in Maven, but in its users.
Ant, Maven's opposing framework, is often a point of comparison. Although Ant does not require formal conventions, it is procedural in the sense that you must tell Ant exactly what to do and when. It also lacks a lifecycle, along with goal definition and dependencies. Maven, on the other hand, requires less work as it knows exactly where your source code is as long as the pom.xml file is generated.
Serena CM is superior to Microsoft Team Foundation Server (TFS) in overall functionality, but does not have very good native integration with Microsoft. Therefore in a Microsoft centric shop with no audit needs ,TFS would be better. Otherwise I would choose Serena CM
Serena has facilitated our annual completion of various audit and technology control certifications. These certifications make a huge difference to our company's reputation and bottom line.