Enabling Agile Software Development

Agile is great.  It seems that everyone is either adopting or talking about it (of course many of those will probably be perpetually adopting and talking).  However not everyone is succeeding with Agile.  One reason is that in order for Agile to work well you need highly experienced developers that are familiar with a broad range of skills and the processes involved in software development.  These developers (often the most experienced) are in high demand and short supply.  So what can be done to help ensure that your Agile team is successful even with fewer highly experience developers?  Use tools to export the highly specialized knowledge that those developers bring to the table, and to bridge the gap between the most and least experienced developers on your team.

Read the rest of this entry »

Do more (computing) with less (hardware) (people) (money)

Imagine if you discovered your colleagues only work 4 hours a day. You thought everyone was working as hard as you until you started monitoring what they did all day. To your surprise, many of them were idle for hours at a time, just sitting still waiting for someone to give them work. And when they did work it was in 10 minute bursts separated by more waiting around. I think you would be upset if this were true. You should only get a full day’s pay if you do a full day’s work, right?
Read the rest of this entry »

Using ElectricCommander to Parallelize Build and Test Processes

When we talk about parallel builds at Electric Cloud, we’re most likely to be talking about ElectricAccelerator, which does an awesome job of speeding up builds automatically, giving 10-20x speedups on a regular basis. We sometimes forget to mention that ElectricCommander can also be used to parallelize build processes, with a very small amount of work.

Read the rest of this entry »

Makefile performance: pattern-specific variables

If you’ve been using GNU make for some time, you are probably familiar with both pattern rules and target-specific variables. You may even be familiar with the intersection of these features: pattern-specific variables. But you may not be aware of a subtle change in gmake 3.81 which affects the processing of pattern-specific variables with potentially disastrous performance consequences.

Read the rest of this entry »