Sunday, March 25, 2007

Agile in March RationalEdge & April CrossTalk

The March issue of The Rational Edge and the April issue of Crosstalk are both devoted to the the theme of Agile Software Development this month!

Wednesday, March 21, 2007

Lean-based Metrics for Agile CM Environments

My paper in this month's issue of The CM Journal is about Lean-based Metrics for Agile CM Environments.
    This month we take an "Agile" slant on metrics for CM, including the CM process itself. Agility is supposed to be people-centric and value-driven. So any metrics related to agility should, at least in theory, provide some indication of the performance & effectiveness of the value-delivery system, and how well it supports the people collaborating to produce that value. We borrow heavily from the concepts of Lean Production (and a little from the Theory of Constraints, a.k.a. TOC). Let's see where it takes us ....
Some readers will recognize some of the content from earlier blog-postings of mine on Codeline Flow, Availability and Throughput, Nested Synchronization and Harmonic Cadences and Feedback, Flow and Friction, but there is also a lot more content there too!

Saturday, March 17, 2007

Elements of Agile Style

Joe Little has authored a nice little booklet on The Elements of Agile Style

Wednesday, March 14, 2007

Top-down Agile Adoption in March Agile Journal

The March issue of the Agile Journal is about scaling-agility and agile adoption in the enterprise.

Sunday, March 11, 2007

Scaling Agility - new book & blog

Dean Leffingwell, previously known for his book Managing Software Requirements: a Use-case driven approach has just published a new book entitled Scaling Software Agility: Best-Practices for Large Enterprises. He also has a corresponding Scaling Software Agility blog. See the forthcoming reviews on amazon.com.

So how did Dean go from being a requirements-management guru to being a large-scale agile guru? It's not too big of a leap if you think about it! Dean is at Rally Software Development these days (the noted Agile consulting services & tool vendor) and has also authored a few Agile Whitepapers, an essay on The Essence of Agile (now an excerpt from the book), and a few articles for The Agile Journal, most notably Agile at Scale: 7+7 Practices for Enterprise Agility.

Wednesday, March 07, 2007

SEI Reflections on Agility: Challenges, Dillemas, & the Way Ahead

Interesting paper from Linda Levine and the SEI about Reflections on Software Agility and Agile Methods: Challenges, Dillemmas & the Way Ahead (see the corresponding presentation slides)

Some other related documents from the SEI are:

See! Not everything from the SEI is about CMM or CMMI ;-) They also a have a wealth of resources on Software Architecture and Software Product-Lines and other areas of Software Engineering!

Sunday, March 04, 2007

Practical Guide to Seven Agile Methodologies

In October of last year over at DevX.com, Rod Coffin and Derek Lane wrote a darn good article (in two parts) that gives a nice, concise overview of seven agile methodologies:
Check out some of the other articles at the DevX.com Architecture Zone.

Sunday, February 25, 2007

ChangeThis for Simplicity

There are a lot of REALLY GOOD manifestos over at ChangeThis.com! Back in May 2006 I blogged about Simplicity in Design and included several links/resources on the subject. Turns out ChangeThis.com has a few good manifestos on the subject as well (and gets more every month). Here are the ones I liked most:
Other manifestos not necessarily related to the above that I found interesting are:

Sunday, February 18, 2007

BOOK on ERP for IT

Charles Betz' book Architecture and Patterns for IT Service Management, Resource Planning, and Governance: Making Shoes for the Cobbler's Children really ought to be required reading for anyone that fancies themselves a "CM professional" (especially Software CM) or an "Enterprise Architect."

I've been following his erp4it blog for over a year now (and his corresponding erp4it YahooGroup). Those looking for a taste of what the book is like can look there, and also at the paper ERP for IT which I understand was an early precursor for the book that has since been vastly updated and expanded in the latter.

Even though the subject of the book and the blog doesnt explicitly scream "CM", the content in the book and the blog are filled with often fundamental and profound insights about CM from the enterprise view (not just IT/ITIL) and where software CM, infrastructure CM, and network/element CM all fit in to the bigger enterprise picture. Several of his post that are among my favorites made their way into the book in some form or another:


And if that weren't enough, the book also puts together three of my favorite topics: CM, patterns, and architecture.

Monday, February 05, 2007

Five Things About Me

I've been "tagged" amidst the recent spree of fellow bloggers who are being "asked" to disclose five personal tidbits about themselves that most people don't know. I won't disclose who tagged me, and I won't be tagging anyone else, but I will comply with the request just for the heck of it ...

1. I don’t drink beer or wine – I hate the taste!
    When it comes to alcoholic beverages, the only ones I like are those sweet mixed drinks where you can barely taste any alcohol (you know, the ones that are for "sissies").
2. I got inebriated once when I was two years old (in China no less)!
    Or so I'm told ... I don’t remember any of it, but as it was told to me, my folks were flying the family to China, and the airline lost our luggage. As consolation, the airline put us up in a hotel and threw a party for us (and several others in a similar situation). Apparently someone spiked the fruit-punch and I never knew what hit me. My sister says I was walking late at night on the shoreline of Taepei, swaggering, swaying, and hiccuping every couple minutes. Eventually my father picked me up and carried me with my head resting over his shoulder, still hiccupping with a giddy grin on my face, pointing at everything I saw and giggling my head off like only a toddler can. (Hmmn – could this explain #1? :)

3. I lived in Taiwan during 1966-1967, and in Hawaii during 1969!
    My Dad was a political science professor, and was at the time one of the foremost experts in his field on US-China relations. He would travel to China or Taiwan every now and again for extended periods of time (weeks or longer). One time he took all of us with him and we lived there for a year. In 1969 he had an exchange program with another professor from University of Hawaii on Oahu. Our house was at the top of a very big hill (or a very small mountain :). I went to pre-school at Noalani elementary school in the Manoa valley.

4. I used to be a dancer, and had 20+ years of classical training!
    My mom was a dance teacher, and got me started when I was 4 (along with my older siblings). When I got older I decided to stick with it and got to be quite good at it. All in all I had about 20+ years of classical ballet training, along with modern/contemporary, jazz, and a bit of tap and African. I was in a local dance company during my college years and for a short while after. I was good too! I kept up with it until my mid-30s when I was eventually diagnosed with degenerative disc disease. Sometimes guys would try and give me a hard time about my dance background (that's right about the time I would "let it slip" that I also held black-belts in two different martial arts :-)
5. I have Tourette’s Syndrome (TS)
    It's noticeable but mild in my case - not like the more pronounced cases you typically see and hear about on TV shows like Oprah or 20/20.


So there it is; I've done the deed!

Wednesday, January 31, 2007

BOOK REVIEW: Code Craft

Nostarch Press recently published the book Code Craft: The Practice of Writing Excellent Code by Pete Goodelife.

I have to say the book looks pretty "excellent" itself. It may even become a new classic, replacing the old classic "Writing Solid Code" by Steve MacGuire. And if Steve McConnell hadn't recently updated his even more classic "Code Complete" with a 2nd edition, I might even put Code Craft on a par with that. It's that good!

It's not just about programming & design either. Like Code Complete it covers pretty much all of "software construction." It has some good stuff about build, integration, test, source-control, and more.

About my only pet peeve is that in the "Answers and Discussion" section it talks about recursive make versus inclusive make schemes. It has a pretty good discussion, but I couldn't find any reference to the classic paper by Peter Miller entitled "Recursive Make Considered Harmful". That kind of bothered me because I don't think there's any good excuse for it. It also made me wonder if there were some other places I didn't know about where appropriate references/citations were missed or neglected. (It's not severe enough to make me recommend the book any less highly though!)

I would probably put Code Craft on the "REQUIRED READING" list for any relatively new professional programmer, and have them read it just before before reading Code Complete.

Friday, January 26, 2007

Agile CM/ALM in 2007

Every January at CMCrossroads.com the CM Journal focuses on CM predictions for the coming year. My contribution for this year is Agile SCM January 2007 - Looking Back to Move Forward where I reflect on the previous two years' predictions and update them just a bit, with lots of emphasis on Rational Jazz and MS VSTS:

ALF and Corona? or Open-Sourced Jazz?
While there has been activity on the websites for the ALF and Corona projects, we havent been hearing so much about them in the media outside of Eclipse-centric conferences, and press-release announcements from yet another vendor with an Eclipse "compatible" release of their software. While this certainly doesn't shatter the prediction, there has been more attention (perhaps due to more marketing?) about the upcoming ALM collaboration framework from IBM Rational called "Jazz."

Based on the RDSC 2006 Day 2 Keynote presentation (and also at JavaOne), Jazz is touted as the next generation of the Eclipse platform and the team based software development platform. Rational will of course provide a tool-set to go with it, but says it plans to release the overall framework (and code/APIs) under Open-Source. The claim is that the result is an ALM collaboration architecture which is inherently scalable to provide true support for geographicall dispersed development projects in a true collaborative fashion. Well known names from Rational have been presenting Jazz at various conferences throughout 2006 and generating lots of "buzz," as evidenced by articles and blogs like the following: Interestingly enough, with all that marketing buzz, Rational was also very clear about that fact that Jazz would not be released until after 2006. So look for even more "hype" and "hope" in 2007 when the first releases of Jazz become available, and especially when the core Jazz infrastructure is released as open-source under the auspices of Eclipse project. It will be interesting to see the impact this has on the Eclipse ALF and Corona projects (which Jazz doesn't currently use, althought it could conceivably make use of Corona in the future) and the Eclipse BIRT project (which Jazz does make use of). Current marketing would suggest that Jazz is the new vision, or more aptly, more likely, the new open-source hope to slay (or at least compete with) MS VSTS

The site founder, Patrick Egan, usually also initiates a discussion thread to engage the readership into the topic, and this year was no exception, as Patrick asked us What needs to change in CM and ALM for 2007. At the end Patrick added "How does CM fair in an increasingly Agile world?"

This sparked the perennial debate about "Agile CM" and whether or not it's any different from more traditional/mainstream CM. Folks wanting to read the whole thread are certainly welcome to do so. I'm going to excerpt what I think are some relevant thoughts from what I posted ...
My thoughts are much along the same lines as Frank's posting. I think we need to raise the level of abstraction of our thinking and problem solving. There are tools that do this, but the problem is that until the "lowest common denominator" tools catch-up, the majority of the state of the practice won't move too far past that (IMHO).

I do think its a good thing that two of lowest common denominator tools on the version-control side seem to be in the process of being supplanted with successors that go further in this direction (CVS -> Subversion, and VSS -> MS VSTS). I don't see as much on the change-tracking side, and integrations still aren't very integrated for the most part.

Regarding "an increasingly Agile world" ... as more and more shops and companies (and vendors) say they are "Agile", the more the term "Agile" becomes diluted and branded, and more of a marketing term than anything else. And that does do damage (as Joe mentioned); In fact it does the most damage to those that are doing it justice.

I do however think that the increased emphasis & visibility on frequent automated integration is a good thing, and that the trend of not only doing more of that, but using that as a mechanism of generating and reporting more (and more accurate) metrics is also a good thing. ...

The term "Agile" and the ideas behind it is no better or different from other "fads" like Object-Orientation or [software/design] Patterns. They had lots of hype and buzz, they had some legitimate improvements to contribute to the state of the practice (even if the ideas themselves weren't new - that's not necessary in order to have great impact/influence), and once everything was all "hyped out" they faded into the woodwork, as a natural, acknowledged, part of the fundamental knowledge we should use+apply everyday.

Increasingly, software CM implementations & deployments will need to better accommodate an increasingly Lean/Agile world (and it will be more important to know the difference between the pretenders and the real-thing). While I agree with Joe and others that the basic tenets of what CM is and what it is supposed to be don't change because of Agile, the fact remains that the norm for how CM is actually practiced and implemented in many shops will need to change.

Many tools/vendors are already headed in that direction, and have recognized the trend foretold by Thomas Friedman (The World is Flat), Peter Fingar (Extreme Competition) and others like Dan Pink, John Seely Brown, and more. With CollabNet, MS VSTS and Rational Jazz, the emphasis is on connecting and collaborating. And ways of doing software development and CM that fail to acknowledge that, and at least the first five of what Steve McConnell calls The Ten Most Important ideas in Software Engineering are going to have a tougher go of things than they have in the past.

As to whether or not "Agile CM" does (or will) exist, that will be determine by the people who end up actually doing it, and defining it. Anything claiming to be "Agile" will need to legitimately embrace the ideals of collaboration and the human element that Agile emphasizes, as well as at least the first 4 of the 10 ideas McConnell identifies. It will also need to embrace Lean principles and techniques. And if I get to have any part in shaping it, I think it should also include heaping helpings of Theory of Constraints (including Critical Chain) and Six-Sigma as they apply to CM and the "throughput" of change-flow, and change management.

All those things have something useful and important to offer us, and for those that can sift thru the hype and wannabees, there are huge gains to be had (whatever the trendy term end up being). I also agree with Bill Langston that there are some relevant standards (as well as "classic" ideas & methods) that are important to maintain, and which must "temper" the application of the newer and trendier (instead of always going back and forth between rigid and unyielding extremes).

Maybe it should be "Jeet Kune Do" CM instead of "Agile" CM :) Because we need to look at the new things and "keep what is useful" without abandoning the old so we can adapt and change as the speed of business and technology mandates.

Friday, January 19, 2007

Blog upgraded -- tagging COMPLETE!

I'm done upgrading my blog to the new version of blogger. Some of you may have already noticed the new template. Although I tried to keep the same scheme, I couldnt keep the title/header section the same, so the font-size there is a bit smaller and my picture has moved to the top-right below the header section. The right hand panel is also a bit different, the "Previous" and "Archives" section have been merged into a a single dynamic "Archives section with a hierarchical listing.

In addition, I finished tagging my blog-entries with labels. The new "Categories" section lists all of the categories and the number of entries in each category (along with a hyperlink to take you to all entries filed under that category).

Oh yeah! I'm also using a newer picture now -- It's amazing just how much one's hair can thin/recede in just a few years :-(

If youre seeing this, then you should no longer need to worry about any more previous entries getting republished "en masse" anytime soon. Very shortly now I'll be "pushing" my last 4 entries "live" in the next couple of days.

Friday, January 12, 2007

Lean Software Development Resources

[last update: 27-April-2007]

For a colleague at work, I compiled a list of resources covering Lean principles & practices, their integration with Six Sigma and/or Agile development methods, and the application of Lean to software development. I thought others might find it useful, so here it is ...

Books:

Presentations:

Articles/Papers:

Websites / Blogs:

Friday, January 05, 2007

Top 10 ACME blog-posts in 2006

Happy new year to all! I thought this would be appropriate for my first blog-entry in 2007 ...

Here are my top 10 blog-entries of 2006. This is based not on hit-counts, but rather on reference counts (number of mentions in other blog-posts, forums, articles, etc.) in some form or another. Note that there was a tie for the #10 spot.
  1. Dimensions and Views of SCM Architecture
  2. Scaling Agility: Summary of Resources
  3. The Unchangeable Rules of Software Change
  4. Agile SCM Principles: From OOD to TBD+CBV+POB
  5. Trustworthy Transparency over Tiresome Traceability
  6. Simple ain't Easy: Myths and Misunderstandings about Simplicity
  7. Codeline Flow, Availability and Throughput
  8. Impacts of Extreme Globalization and Extreme Competition
  9. Agile vs MDE: XP, AMDD, FDD and Color Modeling
  10. Nested Synchronization and Harmonic Cadences and Feedback, Flow and Friction

Some of the above surprises me. Some of it is close to what I was expecting ...
  • I'm truly astonished at the #1 post - both because it was so recent and also because I'd seen very little indictaion of interest in my 4+2 views of SCM architecture (most folks probably just liked all the links that went along with it).
  • The #2 and #3 entries don't surprise me, and I'm happy to see them there.
  • I'm very surprised the "Simple Ain't Easy" post didnt rank much higher. I personally liked that one and my "Unchangeable Rules of Software Change" the most in 2006. And I saw so much discussion and mention of the "Simple Ain't Easy" post, I honestly expected it to be the #1.
  • I am surprised by the ranking of the posts on codeline flow & throughput, and nested synchronization & harmonic cadences. I had the impression that struck most folks as rather esoteric.
For anyone interested in what the next ten most popular ones were ... here they are:
  1. Business Agility Defined
  2. Extreme Traceability
  3. Nutshell Definitions of Agile Development
  4. 5Cs of Agile SCM
  5. Cost, Cruft and Constraints
  6. Pragmatic Multi-Variant Management
  7. Agile IT Organization Refactoring
  8. Trends in SCM Predictions for 2006
  9. Everyone Wants to be LUVed
  10. Lean Principles for Branching
Here's hoping I can do as well or better in 2007!

Saturday, December 30, 2006

Essential CVS and Global Outsourcing with VSTS

Just received two new books about version-control tools:
The Essential CVS, 2e book is one of the better CVS books available these days. I think I like it better than the classic one by Fogel, but not quite as much as the Pragmatic Programmers "Practical Version Control with CVS" (still - it's pretty close).

To be honest though, I really dont feel like CVS is very desirable among free Version-control tool offerings when we have the likes of Subversion, Monotone, Arch, and others that support the more recent paradigms and higher-levels of abstractions for working with project-wide streams (branches) and more.

The VSTS book is rather interesting. The "Global Outsourcing" parts of the title, and some of the corresponding content, would likely "turn off" a lot of folks. It even has a brief section about Agile development (to which, you'd think "global outsourcing would be anathema).

Mickey Gousset published a review of the book back in October, and it's worth a read. I mostly agree with the comments he makes. I think the book is pretty good, but there is another one coming soon that I expect I'll like a whole lot better, as well as several VSTS books available from Amazon.com.

Still, if you need to do a lot of distributed development across geographically dispersed sites, and want to use VSTS not just for its versioning capabilities, but also the tracking and coordination capabilities, this is probably the book to get.

Sunday, December 24, 2006

Upgrading my Blog -- tagging in-progress!

I've upgraded to the latest version of Blogger now that it's no longer in beta. There are still a few blog-entries I haven't "pushed out" yet. I will be going through my old blog-entries and trying to add "tags" to them.

What that means to subscribers of my blog is that you will see dozens, perhaps even hundreds of "new posts" of "old" blog-entries. You might want to temporarily unsubscribe until you see a subsequent entry from me saying Ive finished "tagging" all/most of my prior blog-entries.

Wednesday, December 20, 2006

Agile Tooling Survey Results

From Pete Behrens' Agile Executive Blog, the results to the Agile Tooling Survey they conducted in October are now available online at http://trailridgeconsulting.com/surveys.html:

    With over 500 survey responses from 39 countries, we feel this survey
    provides an excellent benchmark for where the agile movement is at
    today and how we are using project management tooling to assist our
    agile processes.

    This report builds a corporate profile of companies that are following
    agile processes today and then uses that profile to analyze how they
    are using project management tooling to support various aspects of
    their agile processes.

It's rather interesting to see what sorts of tools are being used for version-control, defect/issue/enhancement-tracking (DIET), and project planning & tracking, particularly when some high-profile Agilists would have us believe that (other than version control) Agile should "eschew" such tools.

I don't think the problem is the tools. I think the problem is most of them were/are made and used in a non-agile fashion that didn't have the agile way of working in mind. Now that there are some tools out there which do, it seems they are helpful after all :-)

Thursday, December 14, 2006

Product-Line CM in CACM

The current issue of Communications of the ACM is focused on Software Product-Lines for software engineering. It has a number of interesting articles on software product-lines and product-families for large-scale reuse.

It even has a few articles related to CM of product-lines, particularly change-management and variability-management: