Have Spare Cycles?

Do you have a computer that runs 24/7 but is only actually used a portion of the day?

I have a desktop, laptop and server that are, for the most part, running all the time.

On these, I have installed the BOINC client which uses spare CPU cycles to do scientific research.  By “donating” this CPU time, I’m helping to do medical research, search for extra-terrestrial life and find enormous prime numbers.  Specifically the World Computing Grid, SETI@Home and PrimeGrid projects.

By installing BOINC and subscribing to projects, work units are downloaded and run at a very low priority, essentially allowing unrestricted use of the CPUs by foreground work and taking over the machine when it is idle.

Since my server is used to transcode media files at a relatively low priority, I have chosen to restrict BOINC to 80% of the cores/hyper-threads available which keeps it from slowing the machine down when in use.

For better security, install BOINC as a service by selecting an Advanced install.  This will keep the clients running in the background when logged off.


Configuration Management – CMMI Level 2

For the next couple of months we’re going to look at the key process areas in Level to of the Capability Maturity Model.

To be successful and repeatable, an organization needs a solid foundation from which to work.  With configuration management, that means a standard environment for development, build and deployment.

Carnegie Mellon defines this KPA as:

The purpose of Configuration Management (CM) is to establish and maintain the integrity of work products using configuration identification, configuration control, configuration status accounting, and configuration audits.

CMMI has a few requirements and we’ll look at them:

  • SG 1 Establish Baselines
    • SP 1.1 Identify Configuration Items
    • SP 1.2 Establish a Configuration Management System
    • SP 1.3 Create or Release Baselines
  • SG 2 Track and Control Changes
    • SP 2.1 Track Change Requests
    • SP 2.2 Control Configuration Items
  • SG 3 Establish Integrity
    • SP 3.1 Establish Configuration Management Records
    • SP 3.2 Perform Configuration Audits

Since an organization has typically already started development, the first step is to see what is already in place and that starts with SP 1.1, Identify Configuration Items.  Namely, what hardware, software and possibly processes are already in use.

Then, SP 1.2 has you set up a process for documenting, and later track/control changes.  The system you put in place is up to you, but needs to include each baseline appropriate to a project.

SP 1.3, involves the documentation and its distribution of configurations.

With SG 2, we move forward into the implementation of the configurations and the tracking of any changes that become indicated through the work of development and deployment.

The checklist items SP 2.1 and 2.2 systematizes the change control process by formalizing changes to configurations by instituting change requests, their approval, documentation, distribution and implementation.

SG 3, is simply the records and audits of individual implementations.

By keeping records (SP 3.1), you have a ready record of what has been done and can be matched against the requirements established previously.

Audits (SP 3.2) ensure compliance to standards.  By verifying the environments involved, you guarantee compliance and repeatability.  This applies to the ongoing development of the product as well as, in the future, the maintenance of the product when “point” releases become necessary.

So Configuration Management is designed to keep all players on the same page throughout the product lifecycle.

Project Manager vs. Scrum Master

In a traditional software project, your team is managed by a Project Manager.  He or she works with the team to fully scope the project, creates a Gantt Chart and tracks weekly progress.

He is also the people manager, working with team members for development, review and salary.

On the other hand, in Scrum, the Project Manager keeps personnel responsibilities but project scoping and tracking is delegated to the Scrum Team.  The Team does the scoping and, with the help of the Scrum Master, tracks daily progress for a much smaller scale project.

This means the Scrum Master helps the team track progress with a Burn Down Chart as the Team reports progress.  She also manages the work environment in terms of the Scrum Culture and Scrum Process.

The Scrum Master does not handle personnel issues beyond coaching the Team.  She can call in the Project Manager to deal with severe issues, but otherwise coaches the team toward self-management and team-lead success.

She also works with the Product Owner to groom the Backlog both with and independently of the rest of the Team.  She helps remove obstacles to progress as reported in the Scrum and represents the team and its progress in the Scrum of Scrums.

As you can see, Scrum removes central management in favor of a team approach.

Working Up to Level 1

Since Level 1 is the lowest CMMI level, technically you just start there.  But, the truth is you do need to be successful at development to be at this “ad hoc” level.

Level 1 is characterized by working hard to be successful.  Your organization isn’t using a repeatable process, doesn’t use common practices across the company and doesn’t really seek to improve.

What does it take to “reach” level 1?

A chaotic environment – This is an environment which has no standards or common practices.

Ad Hoc – This is the result of the chaos inherent in a level 1 environment.  Each developer operates in their own silo and their work is a one-off effort.

Heroic Effort – Success is because of the strong capabilities and heroic effort of superstars.  Nothing seems easy and there are no 8 hour days.

Level 1 is more than a starting point, but lacks the maturity of a well-oiled machine.

What, then, does a level 2 organization have that a level 1 organization lacks?

Repeatable processes like agile development, measurements and analysis.

Online Charity by the Click

There are two sites that use online ads to provide funds for charity.  You just load the site, click the button and they donate to a charity.

The first is FreeKibble.com which has a page to donate dog kibble, one to donate cat kibble and one to donate cat litter.  The two kibble sites feature a trivia question of the day which is fun and right or wrong your click counts.

The second is GreaterGood.com which has several charities including animals, breast cancer and literacy.  There are no questions, just load the page and click the button.

For these sites, I let the pages completely load to let all of the ads load to maximize their revenue.

Each site lets you contribute once a day.

That First Big Step Toward Agile

Your development team may be ready, but is your organization?

It is not a huge step to get a development team up to speed, and training a Scrum Master is doable, even appointing a Product Owner, but is your organization ready and able to contribute in the way it needs to?

Your Scrum team isn’t the first step in adopting Agile or Scrum.

Is your Project Manager, PMP and all, ready to relinquish some of her control?  Tasks are no longer centrally assigned, instead the team needs to be empowered to assume the helm as far as choosing tasks and taking them to completion and sign-off.

And maybe Payroll doesn’t change much, but what about Purchasing?  Can they turn around buying the software tools that will really enable a team to track their project and progress?  In just one Sprint?

And does the Product Owner really own the product?  Can he really pull the plug on a project gone awry?  Can he help define “done” and sign off on a Sprint’s Potentially Shippable Increment?

Senior Management needs to be on board for a (possibly radically) different development methodology.  Agile means just-in-time requirements, planning and development.  No more massive Waterfall project steps.  All of the questions are just-in-time too and there’s the whole concept of “barely adequate” that scares the be-jeebers out of traditional managers.

Gearing up an Agile team is putting the cart before the horse if they don’t have an Agile-ready environment within an organization.  And who’s job is it to see that that environment comes to be?  The leadership may fall on the super-Scrum Master, but it is a company-wide initiative and needs company-wide participation under the direction of senior management and through the coaching of, well, an Agile coach.

So before you jump in with both feet, build a solid foundation and set yourself up for success by taking it a piece at a time and learn not only by doing, but by planning across the organization.