Azure DevOps (formerly VSTS, Microsoft Visual Studio Team System) is an agile development product that is an extension of the Microsoft Visual Studio architecture. Azure DevOps includes software development, collaboration, and reporting capabilities.
$2
per GB (first 2GB free)
Oracle Java SE
Score 8.0 out of 10
N/A
Oracle Java SE is a programming language and gives customers enterprise features that minimize the costs of deployment and maintenance of their Java-based IT environment.
N/A
Pricing
Azure DevOps
Oracle Java SE
Editions & Modules
Azure Artifacts
$2
per GB (first 2GB free)
Basic Plan
$6
per user per month (first 5 users free)
Azure Pipelines - Self-Hosted
$15
per extra parallel job (1 free parallel job with unlimited minutes)
Azure Pipelines - Microsoft Hosted
$40
per parallel job (1,800 minutes free with 1 free parallel job)
Azure DevOps works well when you’ve got larger delivery efforts with multiple teams and a lot of moving parts, and you need one place to plan work, track it properly, and see how everything links together. It’s especially useful when delivery and development are closely tied and you want backlog items, code and releases connected rather than spread across tools. Where it’s less of a fit is for small teams or simple pieces of work, as it can feel like more setup and process than you really need, and non-technical users often struggle with the interface. It also isn’t great if you want instant, easy programme-level views or a very visual planning experience without putting time into configuration.
Oracle Java SE is well suited to long-running applications (e.g. servers). Java Swing (UI toolkit) is now rather outdated, lacking support for modern UI features. JavaFX, the potential replacement for Swing, has now been separated out of Java core. Ideally, there would be a path to migrate a large application incrementally from Swing to JavaFX, but due to different threading models and other aspects, it is difficult. At this point, it is probably better to use an embedded web browser (e.g. JxBrowser) to provide a modern UI in HTML/Javascript and keep just the business logic in Java.
I did mention it has good visibility in terms of linking, but sometimes items do get lost, so if there was a better way to manage that, that would be great.
The wiki is not the prettiest thing to look at, so it could have refinements there.
Commercial Licensing in 2019. Oracle will charge commercial organizations using Java SE for upgrading to the latest bug fixes and updates. Organizations will now need to either limit their implementation of Java SE or may need to drop it altogether.
Slow Performance. Due to the all of the abstraction of the JVM, Java SE programs take much more resources to compile and run compared to Python.
Poor UI appearance on all of the major GUI libraries (Swing, SWT, etc.). Through Android Studio, it is easy to get a native look/feel for Java apps, but when it comes to desktops, the UI is far from acceptable (does not mimic the native OS's look/feel at all).
I don't think our organization will stray from using VSTS/TFS as we are now looking to upgrade to the 2012 version. Since our business is software development and we want to meet the requirements of CMMI to deliver consistent and high quality software, this SDLC management tool is here to stay. In addition, our company uses a lot of Microsoft products, such as Office 365, Asp.net, etc, and since VSTS/TFS has proved itself invaluable to our own processes and is within the Microsoft family of products, we will continue to use VSTS/TFS for a long, long time.
It's a great help to get more information about new feature release and stay updated on what the dev team is working on. I like how easy it is to just login and read through the work items. Each work item has basic details: Title, Description, Assigned to, State, Area (what it belongs to), and iteration (when it’s worked on). See image above.They move through different states (New → Discovery → Ready for Prod → etc.).
Oracle Java SE provides the new features along with timely security patches. New features like Record patterns and pattern matching for switches are very useful. With every new release of Java, it is getting better. Sequenced collections are also an interesting feature added to Java. With all these new features, backward compatibility is also maintained.
When we've had issues, both Microsoft support and the user community have been very responsive. DevOps has an active developer community and frankly, you can find most of your questions already asked and answered there. Microsoft also does a better job than most software vendors I've worked with creating detailed and frequently updated documentation.
Java is such a mature product at this point that there is little support from the vendor that is needed. Various sources on the internet, and especially StackOverflow, provide a wealth of knowledge and advice. Areas that may benefit from support is when dealing with complex multithreading issues and security libraries.
Microsoft Planner is used by project managers and IT service managers across our organization for task tracking and running their team meetings. Azure DevOps works better than Planner for software development teams but might possibly be too complex for non-software teams or more business-focused projects. We also use ServiceNow for IT service management and this tool provides better analysis and tracking of IT incidents, as Azure DevOps is more suited to development and project work for dev teams.
Chose to go with Java instead of Python or C++ due to the expertise on the ground with the technology, for its ease of integration with our heterogeneous setup of production servers, and for the third party library support which we've found was able to address some challenging aspects of our business problem.
We have saved a ton of time not calculating metrics by hand.
We no longer spend time writing out cards during planning, it goes straight to the board.
We no longer track separate documents to track overall department goals. We were able to create customized icons at the department level that lets us track each team's progress against our dept goals.
The different versions make it harder to work with other companies where some use newer versions while some use older versions, costing time to make them compatible.
Licenses are getting to be costly, forcing us to consider OpenJDK as an alternative.
New features take time to learn. When someone starts using them, everyone has to take time to learn.