Continuous Integration for Lean Software Development

Bitbar Testing Makes Devs Lives Easier
Bitbar Testing Makes Devs Lives Easier

This blog post starts my blog post series about project management (PM). It will describe the advantages of Lean Software Development (Lean SD) and Continuous Integration (CI). Every good project manager wants to reduce the risks of his project and I think the best way to do this is use Lean Management. Because recently I was on lean meetup, where I had possibility to talk about Lean Software Development directly with Mary Poppendieck, I will try to show you how in my opinion CI fits the Lean practices.

Lean Software Development is a translation of Lean Manufacturing and Practices to the software development domain. First try to adopt this way of managing to the IT market was taken by Mary Poppendieck and Tom Poppendieck, who are considered the authors of Lean Software Development.
There are 7 basic principles of Lean Software Development:

  • Eliminate Waste
  • Build Quality In
  • Create Knowledge
  • Defer Commitment
  • Deliver Fast
  • Respect People
  • See and Optimize the Whole

I will focus on the points most interesting and important to the success of the project.

Everything that does not add value to the product is regarded as a waste. The first premise of this rule is to reduce the requirements for the product to a minimum, since each feature is an additional workload, and most of them are not applicable in practice (see chart: Using the functionality of a typical software system).

To Eliminate Waste we should recognize and see it. The biggest waste are defect and lower quality. If some extra process or features are not used by customer or system this mean that results can be achieved without it, they are waste. Every code duplication or dead code is a waste. Waiting for other activities, processes or teams is waste. To reduce this problem we should use Continuous Integration, because with CI everyone who works on the software gives his current work every day (CI: Everyone commits every day) and the latest deliverables can be seen by everyone (CI: Everyone can see the results of the latest build) and are tested (CI: Make the build self-testing). Project manager can See and Optimize the Whole process and current work.

Using our Shaker offering you can check your code quality by code analysis and find dead and duplicate code. Bitbar tries to help you to reduce the number of defect and ensure higher quality by fast optimized testing and creating a copy of your production environment in our build system. Bitbar works on optimization your build process, so you can build faster which reduces waiting time for build.

Good and effective method is to catch bugs and keep Quality In is running automated tests for every builds and test the smallest parts of new functionality in this iterative process. Testing can catch a lot of bugs as soon (in development process) as possible. Using the our CI process, you can always control the quality and reliability of software, because Shaker builds and tests every code submission.

In Lean SD like in general, integrity means that the system’s separate components work well together as a whole with balance between flexibility, maintainability, efficiency, and responsiveness. Created system should work fast and have good quality and reliability. To control this parameters we should integrate our product as often as it is possible. Using CI we can create a clone of the production environment and run integration tests for smallest parts of the product. In this way you will Deliver Fast and your software will be of the highest quality.

Bitbar integrates Android CTS with Hudson

The Compatibility Test Suite (CTS) is an automated open-source testing harness for Android that you can adopt to your needs by selecting CTS plans relevant for your functionality. You could use the CTS to test your work during your development work using your desktop machine with attach mobile devices, but it is expensive for all developers to have that environment.

Read more

Top-line growth from higher product development productivity

Software companies create value to their customers by implementing new applications, new features and new code. And they capture the value from their customer by various business models ranging from licensing to projects.

How could they increase the value-add, and revenues, of their value-generation machine: product development, maintenance of products and customer support.

Read more

Bitbar delivers Continuous Integration as a Service for Aava Mobile

New fast continuous integration service in cloud improves R&D productivity and collaborative software development for the world’s first open mobile device maker

Helsinki, Finland – May 18, 2010 – Bitbar, the pioneer in cloud accelerated software integration solutions, delivers continuous integration as a Service for Aava Mobile, developer of the world’s first open mobile device.

Read more

Shaker goes Android

We are proud to announce another evolutionary step on Bitbar’s Shaker cloud based software integration and validation service by introducing continuous integration service for Google Android, complete with fully integrated Android Compatibility Test Suite and build reports.

Read more

Scaling Agile Requires Automation

I am continuing my series of promoting automated Agile tools as a true productivity enhancer for software development companies.

Forrester Research has recently released their latest Forrester Wave Trend report on Agile Development Management Tools, Q2 2010
The research is basically a commercial tool comparison, but has many interesting thoughts in general on Agile software development. Based on their research, Agile is becoming a norm in the industry. However, their interviews with the professionals reveal that scaling Agility is a common issue — and that scaling Agile practices requires implementing tools.
Many Agile practices require automation. To be effective, a sound automation foundation that supports automated test integration, code comparison, and integrated build management must be in place.
Then by aggregating and showing information of these key project artifacts across the project on a dashboard, the team can understand the project’s true status by one glance.
How to implement scalable Agile development: implement change-aware continuous integration (CI), that by integrating, building, and testing source code changes early and often reduce rework and
integration issues. Of course creating such environment requires also scalable infrastructure, which can be commissioned from cloud.
This research truly highlights the benefits our service brings to our customers. We have at Bitbar implemented a truly scalable, open source based Continuous Integration environment in cloud, which offers everything customers need to achieve next level of developer productivity without any investments.
Contact me on marko.kaasila(at) for further details.

Zabbix – Monitoring Bitbar Build Servers

Continuous integration in the cloud needs monitoring in order to keep build servers running smoothly.

Without monitoring the integration might get interrupted; networks’ problems or running out of disk space or RAM are the most common problems which can happen at any moment. If the monitoring doesn’t work it will take time before the integration is running again and that would be really against the very concept of Continuous Integration. If you get notifications promptly you can react and prevent the issues before those become problems. Alerts with detailed information delivered by email, SMS or Jabber instant messaging ensure that issues are solved quickly. For monitoring we use Zabbix, an enterprise-class open source distributed monitoring solution.

With Zabbix we can monitor our build servers’ status 24/7 and get notifications when there is a need for administrative tasks. It also helps us greatly with resource planning, when it’s time to extend server capacity or increase amount of the servers for build process.

Cloud instances with pre-installed and configured Continuous Integration tools can be launched at any time and first builds started right after. Therefore we need to get also the new instances under monitoring instantly. Using Zabbix’s network discovery, IP ranges are periodically scanned using the discovery rules. Each build server has a Zabbix agent installed and that enables us to get detailed status of the server and even run remote commands for certain alerts. Zabbix has native agents for several OSes. We have servers running on different versions of Windows and Linux and with Zabbix we can use native agents for detailed monitoring. Using the host templates the maintenance is made easy as it allows you define sets of items, triggers and graphs for host. Zabbix also offers a high level view of monitored resources and graphic visualisation of monitored values which makes easy to see data from different angles. Having build servers running in the cloud and Zabbix monitoring health and integrity of the servers ensures that integration is really continuous and most importantly, we at Bitbar take care of all this so that our customers can focus on developing their own products and do not have to worry about administrative chores like monitoring build servers’ availability.

CTO’s Blog

My name is Sakari Rautiainen and I am the CTO of Bitbar. On my blog I will be writing about more technical aspects of Bitbar Continuous Integration services and naturally about our core competence: Taking things to cloud.

From the outset it may seem trivial to transfer existing software and services to cloud but there are numerous things (both architectural and technical) that need to be taken into account; Especially when performance, scalability and security are paramount. As a keen supporter of the usage of open source solutions, I will also be blogging about the way we utilise open source software to provide really scalable enterprise grade service and how we contribute back to the open source community. I hope you enjoy my posts.

Predicts 2010: Agile and Cloud Impact Application Development Directions by Gartner

I was inspired to blog by Predicts 2010: Agile and Cloud Impact Application Development Directions by Gartner. It SOOOO close to what we are hearing from our customers, and exactly what we are doing to help our customers to do more, faster and better quality.
Gartner’s analysts say: “As organizations seek to improve productivity and reduce application operating and maintenance costs, we will continue to see an evolution of software development tools, platforms and practices. To take advantage of this, organizations must shift structures and practices while embracing new technologies — a challenging proposition.” They go on to predict that by 2012 “agile development methods will be utilized in 80% of all software development projects”. Why will agile become so popular? Agile will deliver much higher productivity compared to other development processes.
Use of agile requires discipline: key agile practices must be used and organizations should invest in supportive tools’ infrastructures. If an organization tries to cut corners by shifting to ‘pseudoagile’ process, potential results are a short-term productivity bump, as well as long-term declines in quality and productivity.
Gartner also gives recommendations how to make most of the agile process, one of them being: Find tools that enable collaboration and help automate repeatable, consistent practices.

Continuous integration is essential part of agile process and it’s purpose is to give automated, repeatable results. And continuous integration does not mean nightly builds, but true continuous integration of the software so that everyone in the development community (be it in-house, outsourced, off-shored or any other globally distributed team) can develop on stable version. No more pseudoagile practices like nightly builds.
With cloud based services, like continuous integration in cloud, companies can make use of essential agile tools without any investments in the infrastructure. A solution delivering higher productivity without investments and a solution growing with the company without any investments is truly a high value proposition!