Tag Archive for 'continuous integration'

Three Unconventional Ways to Manage IT Costs

David Richards, CEO WANdiscoYou have to run leaner and meaner and so you’re intent on driving IT costs down. But where will those much sought-after cost reductions come from? One area that may not have received the scrutiny it deserves is software development.

The evidence is mounting. When Forrester Research examined the total economic impact of new software development infrastructure, it discovered considerable savings associated with the near real-time replication of source code on servers globally.

In the case of one Fortune 500 electronics company it studied, $776,509 in specific benefits was identified over a three-year period — leading to a risk-adjusted ROI of 150%. By enabling developers in Asia to perform builds locally, the new approach eliminated up to two man-days of idle time each day and increased the number of builds 100%.

Phoenix Technologies, a leader in core systems software products, discovered it could significantly reduce costs associated with production delays and lost man-hours by adopting a similar solution. By enabling continuous builds at six different locations across East Asia and North America, it reduced overall build cycle times by more than 60% and increased productivity by 30%. Previously, over two hours of development time had been lost each day due to poor network performance and outages.

So why have the costs of software development become excessive?

One clear factor is developer inefficiency. This is often a concern when developers are spread out geographically, particularly when many of them are located in regions (such as India and Greater China) with limited network capabilities. You experience clear and irretrievable costs when developers can’t promptly check in their source code to a central repository. Cycle times lengthen and projects are delayed. If time is money, then this is money that’s burning.

Another issue is network performance. After all, network failures happen all the time.. What’s the cost of developer downtime or the inability to access your source code at all? Network performance and downtime issues represent an ongoing tax on software development — imposed in endless delays and lost man-hours.

Yet another factor is the absence of Continuous Integration/Continuous Delivery (CI/CD). Companies that implement this best practice test their software builds perpetually to identify bugs, errors and other signs of corrupted code. Through this approach to quality control, they streamline software development.

But companies that don’t engage in this practice run the risk of discovering software problems late in a project, which can lead to considerable rework and long delays. Worst case: they release corrupted code into production. As I’ve written elsewhere, such mistakes can have a devastating impact on corporate finances and reputations. Knight Capital Group saw its stock price collapse and the company took a pre-tax loss of $440m as a result of bad code.

Finally, there is the opportunity cost associated with geographic barriers and boundaries. Many companies bear added and unnecessary software development costs because they cannot source the right talent in the right place at the right price. Because of network limitations, an inability to synchronize development efforts and other factors that hinder productivity, they are simply unable to get the full benefits of offshore development.

Which leads us to the question of how to confront your costs.

How can you intelligently reduce software development costs and, thus, drive down overall IT costs? Here are three proven steps you can take:

  1. Embrace Continuous Integration/Continuous Delivery. It’s been written elsewhere that “quality is free.” Ultimately, it costs nothing to implement practices enabling you to continuously test and enhance the quality of source code. You prevent defects on the front-end to ensure they don’t emerge later in the development or, worse, production process. It will save you considerable costs associated with rework and delayed projects.
  2. Commit to Highly Available Source Code. In order to enhance collaboration, avoid developer inefficiencies, and make CI/CD possible, you need high availability. Developers need the ability to rapidly check in their source code to central repositories. Companies need the ability to rapidly replicate changes to source code between servers on a global basis. And you need the confidence of knowing that network performance and downtime issues will not undermine this availability.
  3. Aspire to Software Development without Geographic Constraints. Today’s technologies increasingly make possible what British economist Frances Cairncross called “the death of distance” just over a decade ago. You can now seek the right talent in the right place for the right price. You can realize economies of scale and skill that previously would not have been available to you.

Software development may not have been the first place you considered when seeking ways to drive down costs. But, as a growing number of companies have discovered, it’s often loaded with excessive costs — both direct costs and opportunity costs.

As the evidence suggests, software development represents an important, if under-appreciated, area for achieving new efficiencies. By rethinking software development infrastructure, you can both reduce costs and accelerate your time to market.

And as software is increasingly suffused throughout the overall economy and demands escalate for new releases, you’ll find that that today’s investments in cost reduction and superior infrastructure set the stage for tomorrow’s gains in revenue growth.

 

Cheers,

David

P.S. If you haven’t signed up yourself or your team members, I highly recommend registering for Subversion Live  2012 this October. Use code DAVID45 for 45% off registration. Visit www.wandisco.com/svn-live-2012 to get more information.

avatar

About David Richards

David is CEO, President and co-founder of WANdisco and has quickly established WANdisco as one of the world’s most promising technology companies. Since co-founding the company in Silicon Valley in 2005, David has led WANdisco on a course for rapid international expansion, opening offices in the UK, Japan and China. David spearheaded the acquisition of Altostor, which accelerated the development of WANdisco’s first products for the Big Data market. The majority of WANdisco’s core technology is now produced out of the company’s flourishing software development base in David’s hometown of Sheffield, England and in Belfast, Northern Ireland. David has become recognised as a champion of British technology and entrepreneurship. In 2012, he led WANdisco to a hugely successful listing on London Stock Exchange (WAND:LSE), raising over £24m to drive business growth. With over 15 years' executive experience in the software industry, David sits on a number of advisory and executive boards of Silicon Valley start-up ventures. A passionate advocate of entrepreneurship, he has established many successful start-up companies in Enterprise Software and is recognised as an industry leader in Enterprise Application Integration and its standards. David is a frequent commentator on a range of business and technology issues, appearing regularly on Bloomberg and CNBC. Profiles of David have appeared in a range of leading publications including the Financial Times, The Daily Telegraph and the Daily Mail. Specialties:IPO's, Startups, Entrepreneurship, CEO, Visionary, Investor, ceo, board member, advisor, venture capital, offshore development, financing, M&A

Configuring Jenkins: Security

The Jenkins continuous integration system doesn’t perform any security checks by default. While this may not be a problem in certain situations, if your installation is going to be exposed to the internet (or any other untrusted environment) it’s a good idea to implement some security checks. In this example, we’ll walk you through a common setup: allowing Jenkins to maintain its own user database, and then show you how to grant a specified user with full administrative privileges.

Note, this tutorial uses Jenkins and uberSVN. uberSVN is free to download and free to use, simply visit http://www.wandisco.com/ubersvn to get started.

1) Open the ‘Jenkins’ tab in your uberSVN installation and select the ‘Manage Jenkins’ option.

2) Select the ‘Configure Systems’ option.

3) Select the ‘Enable security’ option. This will bring up some additional options.

4) Select ‘Jenkins’s own user database’ under the ‘Security Realm’ heading, and ensure the ‘Allow users to sign up’ checkbox is ticked.

5) Under ‘Authorization,’ select ‘Matrix-based security.’ This will bring up a new table.

6) In the table select ‘Overall – Read’ for anonymous users.

7) Type your username into the ‘User/group to add” box and click ‘add.’ Your username will now appear in the table.

8) Make sure every permission for your username is ticked, to give yourself full access.

9) Select the ‘Save’ button at the bottom of the page. You have now configured Jenkins’ security settings!

Need more Subversion know-how? After getting a great response from the Apache Subversion community in 2011, Subversion Live is back for 2012, bringing the Subversion community sessions covering everything from Subversion’s future, to expert-led best practices workshops, as well as the unique opportunity to meet the core Subversion committers.

Polling Subversion with Jenkins: The Quiet Period

Ever hit ‘Enter’ on your ‘SVN Commit’ command only to realise you’ve forgotten to include some files? In Apache Subversion, it’s not unusual for one commit to be quickly followed by another, as users realise their mistake. If you’ve configured Jenkins to poll Subversion for changes, this can result in broken builds and premature email notifications about build failures. Thankfully, if you’re a Jenkins user, there’s a ‘quiet period’ feature that can be activated to provide some breathing space between performing a commit, and Jenkins generating a build. If you’re using uberSVN, this is simply a matter of checking the right tickbox.

Note, uberSVN is free to download and free to use. If you’re not already using uberSVN, you can get it for free from http://www.ubersvn.com/

To introduce a ‘quiet period’ to your Jenkins workcycle, you must first create a job and configure it to automatically poll your Subversion repository. Once your job is up and running:

1) Open the Jenkins tab of your uberSVN installation and select the job you want to add the ‘quiet period’ to.

2) Click the ‘Configure’ option from the left-hand menu.

3) In the ‘Advanced Project Options’ tab, select the ‘Advanced…’ button.

4) Select the ‘Quiet period’ box and enter the number of seconds Jenkins should wait before generating a build.

Your Jenkins job will now schedule a build, but then wait 20 seconds before actually beginning to build.

Want to learn more about Jenkins jobs and polling? We have plenty of free tutorials you may be interested in:

Getting Started with Jenkins in uberSVN
Polling Subversion with Jenkins
Advanced Subversion Polling with Jenkins: File Fingerprints
Polling Subversion with Jenkins: More Options

If you need extra help with Jenkins, we also offer a professional support option that includes 24-by-7 online, phone and email support, guaranteed response times and automated delivery of fixes and upgrades.

WANdisco Attends Jenkins User Conference

The Jenkins User Conference took place in New York yesterday, and members of the WANdisco team were lucky enough to be at the event. The Jenkins User Conference brings Jenkins experts and community enthusiasts from around the world together for a full day of learning and networking opportunities, focused on the popular open source continuous integration server.

The WANdisco team had a great time attending the different sessions, which covered all the latest and greatest Jenkins technology and best practices, and featured hands-on workshops and demos.

We’re all big fans of Jenkins at WANdisco, and are looking forward to putting what we’ve learned into practice – thank you to CloudBees and of course, the Jenkins community, for putting on such a great event!

As a proud CloudBees partner, not only did we attend JUC NY, but we’re sponsoring two of the conferences. “We are thrilled to have WANdisco join CloudBees and the other sponsors in supporting the Jenkins community,” said Kohsuke Kawaguchi, creator of Jenkins.

Missed out on all the fun? Team WANdisco will also be attending the San Francisco JUC in September. We’re looking forward to meeting even more of the Jenkins community (and maybe even some of the Jenkins+uberSVN community) then!

9 Ways to Dominate Development with Jenkins

Last month, we were proud to co-host another free training webinar with our friends at CloudBees. ‘9 Ways to Dominate Development with Jenkins’ was presented by WANdisco’s Director of Training, Mike Lester, and CloudBees’ Elite Developer and Architect, Ryan Campbell. Mike covered the essentials of setting up Jenkins through uberSVN, the free, open ALM platform for Apache Subversion, before CloudBees’ Ryan Campbell shared a grand total of nine best practices for using Jenkins with uberSVN.

The tips included how best to backup the Jenkins continuous integration server. Webinar attendees were shown how to locate their configuration data in the $JENKINS_HOME directory. The location of this directory varies depending on how you install Jenkins, but in uberSVN you can check this using the Configure Systems screen. To access this screen, simply click on ‘Manage Jenkins’ in the Jenkins tab of uberSVN.

From here, select the ‘Configure Systems’ option.

This will take you to the all-important Jenkins Home directory, which contains the data you will need to backup.

Webinar attendees also learnt that it’s possible to create a backup while Jenkins is running, as Jenkins makes changes atomically to the cloud system. Whenever you change your configuration, Jenkins writes that configuration file to a temporary file and then moves it over atomically at the operating system level, which means creating a backup of a live Jenkins installation isn’t a problem.

The webinar also shared advice for planning disk capacity for Jenkins, the benefits of native installers, adding additional distributed builds to your Jenkins instance, and more.

Missed the webinar the first time around? The good news is that the entire webinar replay is now available to view on-demand, from our Webinar Replay page. And, if you enjoyed ‘9 Ways to Dominate Development with Jenkins,’ you can sign up for more of our upcoming webinars at http://www.wandisco.com/training/webinars.