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.


CMMI for Development (3rd Edition)

CMMI for Development: Guidelines for Process Integration and Product Improvement
(SEI Series in Software Engineering)
Software Engineering Institute – Carnegie Mellon
3rd Edition, 2011
ISBN-13: 978-0321711502
ISBN-10: 0321711505

Woof!  What a boondoggle this book is.  I was looking for a CMMI-DEV v1.3 book that not just covers the requirements, but also goes into details regarding the implementation of the assessment standards.

While it covers the requirements well, it is no different than the PDF available on the SEI site: http://www.sei.cmu.edu/reports/10tr033.pdf.

I actually prefer printing out the PDF and putting it in a three-ring binder with divider tabs marking the Key Process Areas by abbreviation and by Maturity Level.

This also allows the user to rearrange the KPAs by Maturity Level rather than putting them strictly in alphabetical order.

The other downside to this hardbound copy of the CMMI is the price, I paid $68 for this hoping for the holy grail since it’s produced by SEI.  Big mistake.

The Book (and PDF) covers all of the KPAs in a good amount of detail, enabling a reasonably savvy organization to determine which areas and what maturity are appropriate for the shop and its industry.

This book isn’t a replacement for training your steering body and project management.

This book is not recommended for the practitioner unless you are building a corporate library for lending within the organization.

Amazon Score 4.6/5
Thriftbooks Score (Unrated)


Essential Scrum (1st Edition, 2013)

Essential Scrum – A Practical Guide to the Most Popular Agile Process
1st Edition, 2013
ISBN-13: 978-0137043293
ISBN-10: 0137043295

Essential Scrum by Kenneth S Rubin is a solid piece of work.  It covers (and often repeats coverage of) Agile, especially the Scrum approach in a detailed and quite knowledgeable manner.

He not only provides an overview of Scrum, but digs in deeper covering the topics in detail.  He even discusses alternatives (for example, do you commit to a Sprint Backlog or do you forecast the work attempted?)

He has clearly researched his material, with citations liberally sprinkled throughout the text.

I recommend this book for organizations that are just now starting Scrum as it encourages the fledgling practice in shops that are new to the concept.

Amazon Score 4.7/5
Thriftbooks Score (Not Rated)