Future-proofing RhodeCode Enterprise

Published on July 22, 2014, by Brian


The software development life cycle (SDLC) future is going to be dominated by highly flexible software packages that interact with each other and which can be mixed and matched to each users requirements. As projects become more complicated and require additional support and testing across multiple operating systems it is essential that your code is developed and tested on systems that are 100% platform independent.

Not only will the offering of software products completely change, but the tools needed to develop them for the market are also going to undergo a massive redesign. Trying to predict too precisely into the future is always fraught with risk, but making certain assumptions can help guide your work in the right direction so that you are moving towards success and not left holding the bag when a market shift occurs.

In the realm of software one basic assumption that always holds true is that there will be more software, more devices, more tools, more bugs, and more disruption in the industry.

The Coming Internet of Things Avalanche

The Internet of Things is going to add billions of devices and generate ridiculous numbers of events and data feeds. The software to run these devices, secure them, and get them doing something useful, will have to be developed, tested, and implemented. Once those devices start generating an endless stream of data it will have to be parsed and analyzed for meaning and context.

IOT

This is going to put heavy strain on the software development cycle. That means squeezing out extra productivity where possible and the first thing every master craftsman knows is you must invest in is the right tools for the job.

Collaboration between different engineering disciplines is going to become a reality as teams try to optimize their products once they are released into the wild and humanity gets a chance to wreck your well laid plans. Everybody from the hard core chip designers to the pixel perfect CSS front end teams must be able to work together to create the perfect end product.

Enabling these different skills sets to work together could be a difficult task without the right source code management solution. Managing contractors or freelance workers who should not get access to all the project source code can be a difficult balancing act, especially when they are working closely with the core development teams during certain sprints.

Having a source code management solution that is designed to handle the intricate permissions needed to keep maximum security in your development environment whilst enabling seamlessly global cross team collaboration is one of the best investments in your development team that you will ever make.

RhodeCode Enterprise has a very powerful and flexible permissions system which allows you to manage repositories in a wide variety of ways. You can quickly configure a repository where your teams and a third-party could push code and never compromise any other in-house research and development, nor do you have to worry about certain users getting the wrong access credentials as everything is presented clearly on the permissions interface. Within RhodeCode Enterprise permission settings can be tailored for specific users, user groups, repositories, and repository groups enabling you to always stay on top of who has access to highly sensitive information.

Agile Means Continuous Everything

Sprints, Continuous Integrations, Test Driven Development, planning poker sessions, weekly deployments, and every other currently trendy software phrase all mean just one thing: Do more work in less time!

To achieve this goal, not only do you need faster tools, you need less noise and more signal. This means ripping out productivity killers such as cumbersome unintegrated issue trackers, bloated IDEs, third-party software that may compromise your code, and of course killing email.

The lean, task specific, customizable, development environment is what will enable developers keep pace with their particular industry. Plug-ins will replace full-fledged programs, and this will make for some very exciting applications that can be tailored to suit the current task and later be remodelled to focus on the next job.

RhodeCode Enterprise excels at integrations and offers extremely flexible issue tracking systems support. It can plug into any issue tracker that provides an API and your issues are directly linked to the repository and files where they apply. This lets your team get straight to the task of fixing problems and cuts the number of clicks to the next commit.

RhodeCode Enterprise's flexibility also lets you personalize your development environment. You can choose the tools that work best for you and integrate them with RhodeCode Enterprise to empower your creativity while the version control system handles your file versioning and team notifications.

Of course, while all this integration sounds great the command-line won't be going anywhere any time soon. If anything, the command-line will become even more important as the power that scripting gives users will become vitally important when the additional Internet of Things events storms begin churning huge volumes of data that needs to be crunched. This is one reason why RhodeCode Enterprise comes with an additional set of command-line tools for users looking for the extra power and flexibility of the command-line.

Moving Beyond Email

Collaboration requires communications, and one major challenge is to minimize email in the work place while keeping communications crystal clear. Email can be the ultimate distraction and a slew of mails first thing in the morning can often kill your mojo. The in-built RhodeCode Enterprise notifications systems can handle all the communications needed between team members when working on a project. You only need to mention a colleague in a commit message to ping them with a notification when you want the person to review. This system cuts out the need to open your email client and lets you stay focused on productivity.

Multiple Repository Support

Just as the tools used by software developers are starting to undergo a revamp, so too are Git and Mercurial repositories beginning to penetrate enterprise. These repository types are ready for enterprise and provide some much needed functionality that is lacking from Subversion (SVN), ClearCase, and Perforce.

Mail

Mercurial and Git offer greater flexibility to developers, allowing them to work remotely, on the road, or set up globally distributed teams with much less friction and overhead compared to supporting these setups with SVN. Traditional version control systems such as SVN are typical client-server architectures with a central server to store the revisions of a project. In contrast, Git and Mercurial are truly distributed, giving each developer a local copy of the entire development history. This way each repository works independently of network access or a central server, and makes committing, branching, and merging both faster and cheaper.

Additionally Git and Mercurial repositories are much smaller than SVN repositories, thus freeing up valuable server space and bandwidth. Another difference is that because SVN controls access, all users require commit permissions on an SVN repository whereas with Git and Mercurial you have complete version control of your own work while the main source code is controlled by the repository owner. This means that commits to the main branch can be limited to only those who are trusted to ensure the code does not introduce bugs. This lets everyone develop and experiment on their own repositories without introducing potential errors to the whole system.

It is pretty clear that with these different features Git and Mercurial are going to become much more prominent in the future as they offer more flexibility than the older market incumbents.

RhodeCode Enterprise supports Git and Mercurial repositories, giving you a fast, flexible, and reliable repository management and a smooth collaborative development environment.

Bullet Proof Security

Finally, how could we discuss the future without considering security. Protecting your data, and being ultimately responsible for it, is the only decision any enterprise can reasonably take if they are serious about becoming a major player. You need to store your projects behind the firewall on your in house servers and be in total control of your own data.

Obviously this requires undertaking some extra effort and due diligence in the beginning, but RhodeCode Enterprise comes with military grade security, user authentication plugin support, and is relied upon daily by the world's most security conscious organizations to keep their code protected and their developers productive.

Conclusion - Disrupting the Disrupters

The software development environment is going to become as disrupted as the industries which software developers try to disrupt. To compete in your industry will not only require the best coders, but the best tools that enable secure global collaboration. Attracting the best talent to your projects and getting the most out of your teams requires just as much research into the right tools and creating the most productive development environment as is ploughed into market research and testing. As competition gets stiffer, excellence must be sought in every aspect of the creative process and that means embracing the fluid, plugged in, flexible, and collaborative development environments that enable your teams to do more in less time.

Brian Butler