Friday, April 28, 2006

Impacts of Extreme Globalization and Extreme Competition

I promised to say something about how I think all this stuff about globalization, innovation and extreme competition will impact CM and Agility. But first, a refresher on the books that I blogged about throughout most of March and April:
My blog entries on the subject thus far have been as follows:
So here are my jumbled thoughts on what I think it all portends for Agility and CM ...

  • Extreme Globalization will continue to drive the need for Extremely Distributed Development teams and team members.

  • Extreme Collaboration will increase the trend for needing human-interaction management over workflow enforcement. Tools will need to be less prescriptive and predictive and more enabling and empowering (particularly of "rich" virtual communication where face-to-face is not possible).

  • The Internet as the new personal computing platform will meld deployment CM with development CM and with ITIL. It will also make managing dynamic dependencies of components and services an absolute nightmare, especially for Service-Oriented Architecture. But it will be a necessary nightmare to face.

  • All of the above, plus regulatory compliance and accounting (such as Sarbanes-Oxley) will combine to make issues of security and fine-grained access control of electronically stored assets and business-intelligence (and processes) an even bigger concern than it already is, which tools will need to do a better job of addressing.

  • The collaboration and innovation process will itself need to be "Agile", and agile practices will need to extend from "delivering software" to "delivering innovation." Applying principles of Agile, Lean, Theory of Constraints (TOC), and even SixSigma to the "innovation supply chain" will become increasingly important. We'll need to struggle to understand what refactoring, test-driven (trust-driven), continuous integration, pairing, and being adaptive/responsive to change mean in this new context.

  • All of the above will also make automating extreme traceability an even bigger concern. But a more agile-style of development that is task-based and event-driven, will help to automate extreme traceability as pragmatically as possible. Extreme "big brother" environments that know and log everything we are doing, in the appropriate context (with the appropriate privacy/security levels) will be an increasing trend in properties of the IDEs and ALM tools we use.

  • All of the above will also make for "extreme configuration identification." We'll have so many things to try to track, it will be almost intractable to try and identify and track them (and their dependencies) in the usual ways. Search engines will help us out here with "tagging and searching" rather than "capturing, filing and sorting", with multiple views and scopes and transparency/trust levels.

  • Extreme time-based competition and focus on the customer-experience will bring "Lean" and TOC (particularly "Lean") methods even more prominently into the limelight. Creating and managing baselines will be more challenging as signficant CM events (such as baselines) blur closer and closer together (what I term the 'collaboration-dilation' effect) and transform discrete events into continuous flow. The logging and tagging+searching capabilities previously mentioned will need to help us with this.

  • Extreme Visualization for how to conceptualize these things in our heads and share those concepts with others, will be another important focus of the next generation of "extreme" ALM tools and services to assist us.

What else? I know I'm missing something else that I thought of earlier but am drawing a blank now. There's gotta be more than this!

Thursday, April 20, 2006

CMCrossroads articles on FDD and Situational Code Ownership

The following two articles of mine appear in the April 2006 issue of CM Crossroads Journal (the month's theme is "Agile Development Practices"):
If parts of them look familiar it's because these articles evolved out of multiple entries from this blog over the past year :-)

The more I look at FDD, the more I really like it as an agile method suitable for a large projects and companies, especially those striving for CMM/CMMI. I also really like the work David Anderson has done tying FDD together with Lean, TOC, and SixSigma.

I'd be real interested in any work on melding FDD together with many of the project management practices of Scrum, and some of the programming practices of XP (e.g., continuous integration, TDD, collective ownership, and refactoring).

Sunday, April 16, 2006

More Extreme Competition: Business Drivers, Realities and Strategies

Another a follow-up to my previous blog-entry about Peter Fingar's book Extreme Competition ...

In the book, Fingar talks about 5 "unstoppable" drivers/transformers, 16 "new realities of business", and 13 "strategy patterns" to consider. Rajesh Jain, who wrote the foreward to the book, has a very well-written series of blog-entries collected together in Tech Talk: Extreme Competition.

I've already blogged quite a bit about this book, so I wont go into detail about each of the items listed below other than to simply list them. For more details, I recommend looking at Rajesh Jain's Tech Talk: Extreme Competition and also the numerous materials available from the homepage for the book Extreme Competition

The Five Unstoppable Drivers Transforming Competition
  1. Knowledge as Business Capital
  2. The Internet
  3. Jumbo Transportation
  4. Three Billion New Capitalists
  5. The New IT
The Sixteen New Realities of Business
  1. Extreme Customers
  2. Extreme Innovation
  3. Extreme Individuals
  4. Extreme Customization
  5. Extreme Business Processes
  6. Extreme Teams
  7. Extreme Supply Chains
  8. Extreme Experiences & Self-Service
  9. Extreme Industry Blur
  10. Extreme Education & Learning
  11. Extreme Government
  12. Extreme Health Care
  13. Extreme Time
  14. Extreme Change
  15. Extreme Specialization
  16. Extreme Branding
Thirteen Strategies for Extreme Competition
  1. The Time to Act is Now!
  2. Be Slavishly Devoted to Your Customers
  3. Think Globally, Act Globally
  4. Be a Superspecialist
  5. Connect with the Superpsecialists
  6. Be a Brand Master, Fight Brand Bullies
  7. Embrace Time-Based Competition
  8. Grok Process!
  9. Embrace The New IT
  10. Offer Process-Powered Self-Service
  11. Offer Product-Services and Experiences
  12. Systematize Innovation
  13. Be a Good Citizen

Wednesday, April 12, 2006

Book Review: Collaboration Explained

My review of Jean Tabaka's Collaboration Explained: Facilitation Skills for Software Project Leaders appear's in this month's issue (April 2006) of The Agile Journal.

I think the book has a lot of useful information, methods and techniques about creating collaborative software teams that are pretty hard to find in other books because most other books on the subject aren't targeted specifically at software development and software project/technical leadership. See the Featured Book section for the review.

Sunday, April 09, 2006

Extreme Traceability

I gave the following response in a March 24 posting to the extreme programming list on the subject of XP-style traceability:

dsrkkk wrote:
Whatever process we use, we need to track requirements, user stories to design and test cases. The traceability provides obviously many benefits. Why don't we automate traceability? How can we humanly track these complex relationships? If we do manually, we may miss something.
I responded . . .

The less you work in a waterfallish-way, and the more you work in an agile fashion with very short feedback loops, the less necessary it becomes to make additional efforts to track/trace requirements.

If I first do lots of requirements, then lots of design, then lots of code, etc., I have to "put the pieces together." The task I performed to write requirements was different from the one that did the design which was different from the one that did code, tests, etc.

If I work in very short cycles (particularly using test-driven development), then an individual development task looks something like:
  • write a single test
  • write the code to pass the test and no more
  • refactor the code
  • commit my changes (Note I might commit my changes before refactoring too).
If, when I commit my changes to the repository, I associate my "commit" with the name or id of the story the test was for, then I have a single, fine-grained change-task that went thru the complete cycle of specification, implementation/design, verification all in a matter of minutes for a single "commit" and user-story.

Working in such fine-grained full-lifecycled tasks automatically associates all the elements that were created & updated as part of the task, which in turn is associated with a user-story. Ta da!!!! Traceability comes along for the ride almost automatically.

From Extreme Locality, in the Feb 2004 "Agile Times", pp.37-40
In Agile methods, we often hear a lot about the importance of simplicity: simple design; do the simplest thing that could possibly work; simple tools; minimal documentation ... Much of the documentation and artifacts created in larger software development methods is for the sake of capturing historical knowledge: the rhyme and reasons behind why something is there, or is designed a certain way.

The desire for such information is often used to justify the need for formal traceability and additional documentation for the sake of maintainability and comprehension. Some very powerful and sophisticated tools exist to do this sort of thing. And yet, there are basic fundamental principles and simple tactics to apply that can eliminate much of this burden.

WHENCE FORMAL TRACEABILITY?
The mandate for formal traceability originated from the days of Department of Defense (DoD) development with very large systems that included both hardware and software, and encompassed many geographically dispersed teams collaborating together on different pieces of the whole system. The systems were often mission critical in that a typical “bug” might very likely result in catastrophic loss of some kind (loss of life, limb, livelihood, national security, or obscenely large sums of money/funding).

At a high level, the purpose of formal traceability was three-fold:
  1. Aid project management by improving change Impact Analysis (to help estimate effort/cost, and assess risk)
  2. Help ensure Product Conformance to requirements specs (i.e. ensure the design covers every requirement, the implementation realizes every design element and every requirement)
  3. Help ensure Process Compliance (only the authorized individuals worked on the things [requirements, tasks, etc.] they were supposed to do)
On a typical Agile project, there is a single team of typically less than two-dozen. And that team is likely to be working with less than 10 million lines of code (probably less than 1 million). In such situations, many of the aforementioned needs for formal traceability can be satisfactorily ensured without the additional rigor and overhead of full-fledged formal requirements tracing.

Rigorous traceability isn’t always necessary for the typical Agile project, except for the conformance auditing, which some Agile methods accomplish via test-driven design (TDD). A “coach” would be responsible for process conformance via good practices and good “teaming,” but likely would not need to have any kind of formal audit (unless obligated to do so by contract or by market demand or industry standards).

Agile methodologies turn the knob up to 10 on product conformance by being close to the customer, by working on micro-sized changes/increments to ensure that minimal artifacts are produced (and hence with minimal reconciliation) and that communication feedback loops are small and tight. Fewer artifacts, better communication, pebble-sized change-tasks with frequent iterations tame the tiger of complexity!
For more then you ever wanted to know about the why&wherefore behind traceability, see The Trouble with Tracing: Traceability Dissected

Tuesday, April 04, 2006

Trends in SCM Predictions for 2006

The January 2006 CMCrossroads Journal came out a few months back. Each January issue of CMCrossroads Journal usually tries to make some predictions about SCM in the coming year (or years).

My predictions on The Future or Agile SCM (from the January 2005 CMCrossroads Journal) actually tried to project thru 2008 (and even 2010 and beyond for one particular prediction). This year we scaled it back to just looking at 2006 (and possibly early 2007).

There were several recurring themes that I noticed among the half-dozen or so articles. No big surprises of course, but the degree of concurrence among the different contributors was very noteworthy (at least I think so):
Globally Distributed development is the new "normal"
Globalization is kicking into high gear in the "flattened world" (see Thomas Friedman's The World is Flat and Barry Lynn's End of the Line : The Rise and Coming Fall of the Global Corporation). The trend of globally distributed development is increasing at a rapid rate and will be a more important focus (and more frequent "buzzword", along with "collaboration").


ALM is the "new" SCM!
Application Lifecycle Management (or ALM) is becoming the new/trendy term for the full-spectrum of Software CM. Vendors have spent the last 6 years or so buying-up individual tools to provide "full-lifecycle" suites to enhance an IDE: modeling tools (that do their own versioning), requirements tools, version control, test management, change-request tracking, and others are all being offered as singly-packaged suites of integrated tools. And the vendors are using the term "ALM" for the result.


TeamSystem, and Eclipse ALF & Corona are the new "Vision"
Microsoft's new Visual Studio Team System (and Team Server) will make a huge splash! Look's like the splash already started, with TeamSystem winning a "Jolt" award (tho not in the SCM category). The fact that it's Microsoft and integrated with VisualStudio is enough, by itself, to warrant other vendors "taking notice." With a single integrated tool-set running off the same server and integrated with the IDE, you can do all sorts of amazing things with automated logging and traceability (especially if it's web-services enabled, or the .NET equivalent).

In order to compete, other vendors are aligning with the Eclipse ALF project, which just recently had its "proof of concept demo." ALF is the Application Lifecycle Framework, an under-development set of web-service and interoperability standards for vendor-independent integration of tools in the ALM space (version control, change/defect tracking, requirements mgmt, test management, project tracking, build/release mgmt, and even IDEs and modeling tools). And at EclipseCon 2006 the Eclipse Corona project was announced as a recent "spinoff" of ALF. According to a March 20 InfoWorld article:

    "ALF addresses the issue of integration and communication between developer tools across the lifecycle; Corona enables Eclipse-based tools to integrate with ALF, according to Eclipse. Also known as the Tools Services Framework, Corona provides frameworks for collaboration among Eclipse clients."

Other related Eclipse projects are BIRT (business-intelligence & reporting tools), the Data Tools Platform, the Test & Performance Tools Platform and the SOA Tools Platform.


Integration of CM with ITIL is the new "Enterprise CM"
More and more SCM services departments are having to deal with many of the same issues of IT (and even being lumped together with IT) as they support not just the functions for CM, but also provide deployment, training and support for the corresponding ALM tools, repositories and servers. The integrated CMDB is also useful for both traceabilty and accounting/accountability (think Sarbanes-Oxley).

Also, more and more folks are needing to extend CM into their deployment sites at their customer's operations to help them handle field-issues and upgrades, even monitoring, service-tracking/licensing/monitoring and possibly some CRM functions.

So it makes sense that CM professionals who need to deploy, develop and support "the whole shmeer" are having to learn and understand CM, ALM and ITIL. Word has it that integration of CMMI with ITIL is coming soon.


SOA, BPM and TCO are emerging priorities on the horizon
There wasn't quite as much mention about these, but it seems clear that they will be growing more important this year. Service-Oriented Architecture (SOA) will be important to the extent that TeamSystem and ALF are important, and some vendors are already using SOA-based integration for the tools within their own suites.

As the integrations between ALM tools and with the IDE become more seamless, Business Process Management (BPM) and Workflow will become a bigger concern as folks try to more readily define and automate their processes, particularly for deployment to multiple distributed sites.

And Total Cost of Ownership (TCO) is becoming an increasingly more prevalent factor in selection of CM/ALM tools. The spiffy features and functionality are nice, but just as much weight (if not more) is being given to business issues of global licensing and upgrade/support, administration/maintenance, along with total cost of ownership.

So where does that leave us today? And how does this relate to the subject of last month's blog-entries about globalization and the resulting business imperatives of continuously connecting and collaborating to create, innovate and dominate?

Saturday, April 01, 2006

The Design of Things to Come: Pragmatic Innovation

This book, by Craig M. Vogel, Jonathan Cagan, Peter Boatwright, sort of naturally follows from previous blog-entries "connecting the dots" from globalization 3.0, to continuous collaboration + innovation, to the sets of right-brained skills Daniel Pink says will be essential to prepare us to move from the information age to the conceptual age.

The Design of Things to Come : How Ordinary People Create Extraordinary Products, is about "people-focused" innovation and how to use the skills Dan Pink describes to create a new breed of innovation that forges an emotional connection to the customer to provide a thrilling customer experience in the various forms it may manifest itself for business.

Throughout the book, the term Pragmatic Innovation is used, enough so that it hopes to become a new "catch phrase" (time will tell if it succeeds). Much of what it describes, including its focus on people and pragmatism, seem very well aligned with the values described in the Agile Manifesto.

Put this book together with the previously mentioned works from Peter Fingar (Extreme Competition), John Hagel and John Seely Brown (The Only Sustainable Edge) and Dan Pink (A Whole New Mind), and you may very well have a blueprint for both strategy and tactics on how to connect, collaborate and innovate and in what areas (and in what ways) to attempt it [such as focusing on "the customer experience" and Human Interaction Management while companies like Google transform the internet into our ubiquitous personal computing platform].

Add a dash of Fanning the Creative Spirit and Innovation at the Speed of Laughter, and maybe we'll get a solid picture of what the ideal future workplace may look like: agile, lean, connective, distributed, collaborative, pragmatic, people-centered, innovative, and dominating the competition.

Tuesday, March 28, 2006

Whole New Mind: From The Information Age to the Conceptual Age

Daniel Pink's latest book seems to be out in both paperback and hardcover with slightly different titles. The hardcover version is A Whole New Mind: Moving from the Information Age to the Conceptual Age. The paperback version is a tad more recent and has a more sensationalistic title: A Whole New Mind: Why Right Brainers will Rule the Future. The best place to go to learn more information about the book is Dan Pink's website (and blog).
From what I can tell, much of what Pink concludes is a result of the same sort of things that Thomas Friedman (The World is Flat) and Peter Fingar (Extreme Competition) and John Hagel and John Seely Brown (The Only Sustainable Edge) discuss in their respective books:

In the new "flattened world" of Globalization 3.0 the only way to get ahead and stay ahead is to innovate faster than your competition. And the keys to rapid business innovation are to "connect and collaborate!"
So those who have the skills to see the big picture, connect with others, effect collaborative synergy, foster creativity and innovation (or innovate and be creative) are the skills that will be in highest demand (and commanding the "cushiest" employment arrangements.

Pink claims we are in the process of moving from the Information Age, where we have access to, are driven by, and overloaded with hoards of information vying for our attention, into the Conceptual Age where we put it all together and figure out what it means in the smaller and larger context of our lives and our interconnected personal and professional networks. The essential skills needed to survive and thrive in the Conceptual Age are: Design, Story, Symphony, Empathy, Play and Meaning. The book then describes in more detail what those are and how we can try to develop and hone them for ourselves.

An excerpt from 800ceoread.com summarizes the book:
A Whole New Mind looks at the right brain/left brain differences and shows how those historical issues are radically changing. As I learned during a weekend in Vermont with Tom Peters, Dan Pink also believes that: "The MFA is the new MBA." Pink points out that design and traditional "right brain" thinking will be the course of the future. The first part of the book gives a primer on how the brain works with great stories from Pink on how his brain was scanned and stimulated and how the different parts of his brain responded. He then goes into pages and pages of supporting stories and examples from his extensive research. Excellent reading!

Pink states that we are entering the Conceptual Age and to prepare for it we need to improve six essential abilities. They are: Design, Story, Symphony, Empathy, Play and Meaning. These abilities are the chapter heading for the final six chapters. At the end of each of the chapters, Pink has a Portfolio which is a combination of tools, exercises, and further reading culled from his research and travels that can help you sharpen each sense.
If that piques your mind for more of Pink's "Whole New Mind," here is an excerpt from the Introduction to the book:
The last few decades have belonged to a certain kind of person with a certain kind of mind – computer programmers who could crank code, lawyers who could craft contracts, MBAs who could crunch numbers. But the keys to the kingdom are changing hands. The future belongs to a very different kind of person with a very different kind of mind – creators and empathizers, pattern recognizers and meaning makers. These people – artists, inventors, designers, storytellers, caregivers, consolers, big picture thinkers – will now reap society’s richest rewards and share its greatest joys.

This book describes a seismic – though as yet undetected – shift now underway in much of the advanced world. We are moving from an economy and a society built on the logical, linear, computer-like capabilities of the Information Age to an economy and a society built on the inventive, empathic, big picture capabilities of what’s rising in its place, the Conceptual Age. A Whole New Mind is for anyone who wants to survive and thrive in this emerging world – people uneasy in their careers and dissatisfied with their lives, entrepreneurs and business leaders eager to stay ahead of the next wave, parents who want to equip their children for the future, and the legions of emotionally astute and creatively adroit people whose distinctive abilities the Information Age has often overlooked and undervalued.

In this book, you will learn the six essential aptitudes — what I call “the six senses”—on which professional success and personal satisfaction increasingly will depend. Design. Story. Symphony. Empathy. Play. Meaning. These are fundamentally human aptitudes that everyone can master—and helping you do that is my goal.

****

A change of such magnitude is complex. But the argument at the heart of this book is simple. For nearly a century, western society in general, and American society in particular, has been dominated by a form of thinking and an approach to life that is narrowly reductive and deeply analytical. Ours has been the age of the “knowledge worker,” the well-educated manipulator of information and deployer of expertise. But that is changing. Thanks to an array of forces—material abundance that is deepening our nonmaterial yearnings, globalization that is shipping white-collar work overseas, and powerful technologies that are eliminating certain kinds of work altogether—we are entering a new age. It is an age animated by a different form of thinking and a new approach to life—one that prizes aptitudes that I call “high concept” and “high touch.” High concept involves the capacity to detect patterns and opportunities, to create artistic and emotional beauty, to craft a satisfying narrative, and to combine seemingly unrelated ideas into something new. High touch involves the ability to empathize with others, to understand the subtleties of human interaction, to find joy in one’s self and to elicit it in others, and to stretch beyond the quotidian in pursuit of purpose and meaning.

As it happens, there’s a convenient metaphor that encapsulates the change I’m describing—and it’s right inside your head. Your brain is divided into two hemispheres. The left hemisphere is sequential, textual, and analytical. The right hemisphere is simultaneous, contextual, and synthetic. Of course, we enlist both halves of our brains for even the simplest tasks. And the respective traits of the two hemispheres have often been caricatured well beyond what the science actually reveals. But the legitimate scientific differences between the two hemispheres of the brain do yield a powerful metaphor for interpreting our present and guiding our future. Today, the defining skills of the previous era—the metaphorically “left brain” capabilities that powered the Information Age—are necessary but no longer sufficient. And the capabilities we once disdained or thought frivolous—the metaphorically “right brain” qualities of inventiveness, empathy, joyfulness, and meaning—increasingly will determine who flourishes and who flounders. For individuals, families, and organizations, professional success and personal fulfillment now require a whole new mind.

I wonder if I'm one of those "Right-Brainers" or not. Alas, I am right handed -- tho I swing a baseball bat, tennis racquet, and golf-club with a lefty grip. Of course one can have and/or hone these skills regardless of one's "handedness." My Meyers-Briggs type indicator is INTP. That is allegedly the "innate architect" type: Architects are highly analytical, but also somewhat artistic (i.e. creative) and need to see the bigger picture and how it all connects together; they can also narrow their focus too much on the "worlds of the mind" that they strive to create. If it helps any, I used to be a dancer in a previous life (my Mom was a dance teacher and I was classically trained since the age of 4 in modern, ballet, jazz, and several other forms of dance).

Perhaps there is yet hope for my future! All indications thus far are that my four-year-old daughter and two-year-old son are left-handed. :-)

Friday, March 24, 2006

The Only Sustainable Edge

The Only Sustainable Edge: Why Business Strategy Depend on Productive Friction and Dynamic Specialization, by John Hagel III (former senior advisor at McKinsey & Company) and John Seely Brown (former Chief Scientist at Xerox Corp.) is a book that builds on the conclusion of Peter Fingar's Extreme Competition. Like Fingar, Hagel and Seely Brown draw the same conclusions about the "flattened world" described in books by Thomas Friedman (The World is Flat), Barry Lynn (End of the Line), and Clyde Prestowitz (Three Billion New Capitalists) . . .

The new flattened world means that the only way to get and stay competitive is to continuously innovate at a pace that your competition cannot match, and utilize technology to that end. But where Fingar delves deply into the drivers and forces and forward looking solutions, The Only Sustainable Edge focuses on the process of how to achieve such continuous fast-paced innovation and what is necessary to create and sustain it.

From the book's website at www.edgeperspectives.com, the following areas are covered:
  • Developing New Business Strategies: Traditional approaches to strategy are broken and what must be done going forward
  • Understanding China and India: Contrary to popular perception, China and India are emerging as global centers of management innovation
  • Competing in a Flat World: As Tom Friedman suggests, the world is flattening, but companies can use pragmatic approaches to create powerful new sources of strategic advantage
  • Finding Innovation on the Edge: In pursuing innovation, shift attention from the core to the edge - the edges of business processes, the edges of enterprises, the edges of emerging economies and the edges of new generations of tech savvy consumers and workers
  • IT Matters More than Ever: New generations of technology are converging to create even more powerful sources of innovation and strategic advantage
  • Reassessing Public Policy: Public policy can amplify or undermine business strategies - business leaders must become catalysts for public policy change
The thesis of the book is that effective business strategy "depends on productive friction and dynamic specialization." They write of "the core" versus "the edge":
First, we mean the edge of the enterprise, where one company interfaces or interacts with another economic entity and where it currently generates marginal revenues rather than the core of its profits.

Second, the edge refers to the boundaries of mature markets as well as industries, where they may overlap, collapse, or converge...

[Third], geographic edges, especially those of such emerging economies as China and India, where consumers of all kinds crave Western goods and services that will ease their burdens and improve their lives.

Finally, we refer to the edges between generations, where younger consumers and employees, shaped by pervasive information technology, are learning, consuming, and collaborating with each other and where baby boomers are preparing to retire or switch careers over the next decade.
The authors focus on three strategic imperatives in order to build and sustain this strategic competitive advantage: dynamic specialization, connectivity and coordination, and leveraged capability building. Some key excerpts from reviewer comments at Amazon.com:

Fred G. Sanford:
Hagel and Brown are two well pedigreed authors, and they attempt to explain their view on what is the next frontier in corporate strategy. The answer is that value of the firm lies not inside the firm but at its edge. The edge is a broad metaphor for geography (India, China and Brazil), maturity (old econ and new economy), physical edge (inside the firm as well the partners outside). The key insights from this book are:
  • Two types of forces have converged to squeeze margins -Informational technology, and Public policy shifts. Try telling this to the 500,000 people who have lost their jobs in the valley.
  • Three key elements of the new model for business strategy are:
    1. Reconceive sources of strategic advantages by accelerated capability building across boundaries. This implies - Dynamic specialization, Connection and Coordination of 3rd parties and Leveraged capability building. Elaborated using the Li & Fung, Hong Kong retailer example.
    2. Master new mechanisms to build advantages - This implies focusing on efficiency as well as effectiveness, process outsourcing and offshoring, loose coupling of extended business processes and production friction
    3. Adopt new approaches for developing strategy
  • Given this framework, conduct a diagnostic that inventories the key initiatives for the last 12 months, as well as the proposed initiatives for the next 5 years. At the end of this diagnostic, you should be able to identify what activities you can offshore and outsource and therefore you can dynamically specialize.
  • Process networks are predicated on loose coupling of processes and Productive friction. Productive friction can be decomposed into four factors, Performance Metrics, People, Prototypes, and Pattern Recognition.
  • Process networks are enabled by performance fabrics and IT is critical in achieving a solid performance fabric. Web services is critical in implementing this new fabric.
Laurence Stybel:
The current fad is to talk about business models organized along industry lines. The authors argue that industry focus is insufficient for a proper conversation about strategy. Within that industry-focused model, there needs to be a second strategic focus. They see this new strategic focus along three dimensions:
  1. Infrastructure Management. Financial services, pharmaceuticals, and the computer industry are already structured in significant ways along these lines. State Street Corporation is an example of a company that services the financial services industry but its value clearly revolves around infrastructure management. UPS revolves around infrastructure management of logistics. An infrastructure management theme works well for relatively routine, high volume business activities.
  2. Product Innovation. Specialized biotech companies are taking on more of R&D activities so that large pharmaceutical companies can focus on scale intensive manufacturing and distribution. There are specialty design shops that serve the fashion industry. There are specialty semiconductor design shops that serve the electronics industry.
  3. Customer Relationship. These firms concentrate on identifying target customer segments, getting to know that segment very well, and using its resources to mobilize third party products and services to address the needs of their customers. Physicians who practice general medicine, financial planners, real estate agents, and attorneys all provide this framework. Accenture is a company with this type of framework.
Emily Levine:
Dynamic Specialization:
The pre-globalized world world was divided into what Isaiah Berlin called "hedgehogs" - generalists, who know a little about a lot of things; and "foxes" - specialists, who know a lot about one thing. In a globalized world, the specialist is neither fox nor hedgehog: the specialist must know a lot about one thing...and how it works in many, many different contexts. To grok the specialist as a boundary-crosser, moving laterally across a broad spectrum, is also to understand the shift from a vertical to a horizontal focus (what Thomas Friedman calls "flattening"). Likewise, the transcendence of the fox/hedgehog paradigm suggests that oppositional constructs themselves may be passé. Indeed, throughout the book, the authors look to maintain the tension between opposites rather than resolve the tension either one way or the other. (Thus, unlike the early enthusiasts of chaos theory, who replaced "things" with "flow", Hagel and JSB have a healthy respect for both.)

Performance Fabric:
Pre-globalization, growth was measured size and/or efficiency. In a globalized world, growth is measured by complexity. You grow by deepening and broadening your connections, forming new partnerships, entering into new collaborations, growing one's skills across many more contexts. That tapestry of connections is what Hagel and JSB call "a performance fabric". I'd be tempted to say that the richer the tapestry, the richer the company and its shareholders, but now I'm thinking "tapestry" doesn't do justice to the elasticity of the performance fabric. Perhaps "trampoline" would be better - it gives you that added bounce you need to vault into a higher stratosphere, a higher level of complexity. (Perhaps it could be said that in a globalized world, companies have to grow up.)

Productive Friction:
Pre-globalization, boundaries were thought to be hard and fast, built like moats around a castle to protect one's enterprise against competitors, predators (or pirates) and/or regulatory bodies. In a globalized world, boundaries are points of connections as well as separation. Companies and individuals have to collaborate with competitors. Those working in and with countries that have different ideas of property and the boundaries we create to protect property, need to negotiate boundaries rather than impose them. Rubbing up against each other in this way creates friction, but, as anyone who's ever watched "Survivor" knows, rubbing two sticks together produces fire. Likewise, productive friction sparks new ideas and new solutions.

Next, I will look at a
Whole New Mind, by Dan Pink (also see Dan Pink's blog)

Wednesday, March 22, 2006

The Coming IT Flip-Flop

As a follow-up to my previous blog-entry about Peter Fingar's book Extreme Competition, a related article by Fingar called "The Coming IT Flip-Flop" (also available in a BPM Trends article) builds on the same trend, and talks of the increasing need for Human Interaction Management, and tools that try to facilitate that INSTEAD of trying to do more workflow/process automation (see related book of the same name). Some relevant excerpts:
It won't be just the satellite/fiber networks that drive the continued globalization of highly skilled white-collar workers, it will be the ability to create virtual work spaces where far flung teams can work together in real time. As globalization continues, the demand for a new generation of technology support for work accomplished by geographically dispersed teams becomes clear.
. . .
And the answer isn't workflow... Such capabilities are needed to help a company put it's "house in order" with application integration. But they don't directly support the way people actually accomplish their work.

What's needed is dedicated support for dynamic human-to-human interactions that cannot be preordained or pre-programmed the way system-to-system interactions are. Further, it's the human-driven business processes that are the very heart of business process management and project management. A New Category of Business Technology.
. . .
The Old IT applied automation to information; the New IT applies automation to relationships. The Old IT was about keeping records and transmitting data; the New IT is about "connecting and collaborating" to get work done--now that productivity doesn't require proximity.
. . .
It's not enough to organize human activities around information; it must be organized around the work itself. In the Industrial Age, human activities were organized around the assembly line; and in the Information Age, human activities are organized around information (the raison d'etre for functional management). In the emerging Process Age, where a company's business processes are key to effectiveness, it's now time to organize human activities around the work itself. That means fusing traditional collaboration and information tools and extending them with a complete theory of human work iif we are to build systems that can support the way people actually work, versus treating them as cogs in an information machine.
. . .
Xerox's former Chief Scientist John Seely Brown, is correct: "Processes don't do work, people do."
These are subjects near and dear to agility (supporting "people and interactions over processes and tools").

I'll talk about a recent book from John Seely Brown and John Hagel in my next blog-entry.

Monday, March 20, 2006

Extreme Competition: Innovation And the Great 21st Century Business Reformation

For a "hot off the presses" view of what one of the experts in the BPM and IT communities thinks about how the new "flattened" global economy will impact our industry, take a look at Peter Fingar's recent book "Extreme Competiton: Innovation and the Great 21st Century Business Reformation" (see the provocatively illustrated Executive Summary).

When Peter Fingar spoke at the October 2005 ABPMP meeting (which was hosted at the Galvin Center) he described his new book as trying to be a "wake-up call" for the US. With the new global economy, the US will no longer be at the head of the pack in the new knowledge economy of knowledge workers and the continuing dearth of interest in the US among younger folks to go into the software/knowledge engineering field will quickly put the US economy behind the pack.

This book tries to explain what the effects of Friedman's "flattened global economy" mean for our industry and how that all adds up to extreme competition and innovation engineering, with extreme globalization and extreme mass-supply chains making it possible for even the small shops to compete, and (from Clyde Prestowitz' book) the three billion new capitalists from the emerging markets in China, India and the former Soviet Union ready to take advantage of them.
So, what strikes fear in the hearts of business leaders these days? Globalization and Commoditization. We are not on the brink of a new world economic order, we've already cross that threshhold.
Fingar predicts that even what we today call innovation and "agility" won't be enough -- we'll need the "second derivative" of that, which is being able to quickly respond to change by continuously innovating and reinventing ourselves and our business processes (think of "extreme refactoring" and "continuous integration" but of an entire enterprise's business processes and supporting technology infrastructure).

We will need to focus on extreme collaboration and enabling human interaction in the customer experience as we involve the customer in our efforts. Tools and technologies to both involve/enable our customers and to enable our businesses will need to provide advanced and innovative human interaction management in order to allow us to globally and adaptively collaborate with agile responsiveness. In the era of the "always on, wired world", how can companies compete?
Operational innovation-where you forge new relationships across to globe to form extreme supply chains, pursue extreme innovation and collaborate with extreme specialists-is the next true source of competitive advantage.
. . .
Innovation is the new "holy grail" of business because with the whole world now a source of supply, your company must innovate to avoid becoming a commodity player that cannot make margins.
Fingar uses "connect and collaborate" as the catch phrase for how this new operational innovation will be accomplished. Being innovative isnt enough. To compete and dominate, you have to set the pace of innovation, and and connect and collaborate with such operational efficacy that your competitors simply cannot keep up with the pace of your "continuous innovation."
Then there is that matter of the scarcest resource, the most valuable resource--time. If you want to succeed today, you must become a time-based competitor. ... Being a time-based competitor allows you to earn solid margins be being responsive to your customers. Customers love responsiveness and, in turn, will reward you with loyalty and increased business. Being a time-based competitor allows you to be first-to-market where you earn the greatest premiums, and allows you to set the pace of innovations in your industry.
Fingar also notes that the kinds of innovations needed will be more service-focused rather than product-focused, centered on how you operate, how you deliver services to your customer, to create a "customer experience", and how you empower your customer with information to be "in control" of the whole process to demand what they want when, and at what price.

I'll be blogging more next month on various aspects of this book and some of the strong tie-ins to CM and Agility.

Thursday, March 16, 2006

Three Billion New Capitalists: The Great Shift of Wealth and Power to the East

Next up on my continuing theme of globalization and collaboration is Clyde Prestowitz' book Three Billion New Capitalists: The Great Shift of Wealth and Power to the East...

Peter Fingar, in his book Extreme Competition refers to Prestowitz' book quite a bit. I haven't read Prestowitz' book myself, but from reading about from others and seeing the reviews of it on Amazon.com, I think one can get the basic idea. Some quotes there of interest ...

From Publisher's Weekly:
While China and India focus on trade and industrial policies and turn out competent workers who put in long hours at a fraction of American wages, the U.S., Preston argues, struggles with crushing trade and budget deficits, a zero savings rate, failing schools, dwindling investments in scientific training and research, a collapsing dollar and a debt-dependent economy that will face an "economic 9/11" once foreign creditors bail out... and argues cogently that the research and development apparatus and high-tech entrepreneurship that is supposed to save America's economy is likely instead to follow the manufacturing base offshore. It's a lucid and sobering forecast.
From BookList's Mary Whaley:
Prestowitz, economic trend-spotter, reports, "Over the past two decades . . . China, India and the former Soviet Union all decided to leave their respective socialist workers paradise and drive their 3 billion citizens along the once despised capitalist road." These new capitalists symbolize the threats to end 600 years of Western economic domination as America's lead role in invention and technological innovation lessens and the Internet allows jobs to be performed anywhere. The author foresees the possibility of an "economic 9/11," which won't kill but will cause great hardship. To prevent what he sees as an accident waiting to happen, Prestowitz offers a wide range of solutions relating to the dollar's role in today's global marketplace, addressing the reality that Americans consume too much and Asians save too much, and facing energy challenges in the U.S and problems confronting our educational system. The author offers valuable insight into these important topics currently being debated in government and corporate circles.
From Robert D. Steele:
His most important point is made in one line: America does not have a strategy. America does not have a strategy for winning the global war on terror, it does not have an energy strategy, it does not have an education strategy, it does not have an economic or competitiveness strategy. The government is being run on assertion and ideology rather than evidence and thought--a media cartoon has captured the situation perfectly: as the VP tells the President that we are "turning the corner" the two walls behind them are labeled Incompetence and Fantasy. As a moderate Republican and a trained intelligence professional with two books on the latter topic, I have to say that this book by this author, a Reaganite businessman and senior appointee in the Department of Commerce is right on target. We *are* out of touch with reality, and we do not appreciate, at any level from White House to School House, the tsunami that is about to hit us.

The author makes two important points early on in the books: first, that information is the currency of this age, replacing money, labor, and physical resources; and second, that the best innovation comes from the right mix of sound education across the board, heavy investment in research & development, and a co-located manufacturing bases that can tinker with R&D and have a back and forth effect. America lacks all three of the latter, and is not yet serious about investing in global coverage of all languages, 24/7.
The book goes into a lot more depth and detail about the Asian culture and economy, and chapter 12 has the author's list of recommendations for what the US needs to do (Steele says chapter 12 alone worth the price of the book).

This indeed seems to be an interesting book, and an interesting lead-in to the one I'll discuss next, Peter Fingar's Extreme Competition, which is another sort of call to arms for the business and software industries, and gives even more emphasis to collaboration and human interaction management.

Sunday, March 12, 2006

End of the Line: The Rise and Coming Fall of the Global Corporation

Continuing the theme of globalization started in the previous blog-entry on Thomas Friedman's The World is Flat and how the internet & wireless technologies + mass accessibility gives us the 5th dimension that transcends time & space to give us the "virtual inverse of teleportation" ...

Barry Lynn's End of the Line : The Rise and Coming Fall of the Global Corporation picks up where Friedman left off and goes into more depth. He takes a somewhat alarmist view. He argues that with all this extra social and technical connectivity comes greater and more thoroughly enmeshed dependencies of businesses and economies upon increasingly more fragile and rigid "weak links" and little or no sufficient security (both in terms of computer security, and financial and economic security).

One example, an 1999 earthquake in Taiwan that registered 7.6 on the Richter scale and had a death toll of 2,400 was barely known to most Americans. But it "took out" two of Xilinx's semiconductor factories, and within days thousands of assembly-line workers located from California to Texas, were temporarily laid off. Wall street responded and shares of computer-makers like Dell, HP and Apple took a downward spike, and by Christmas "American shoppers were scurrying to avoid the shortages of laptop computers, Barbie cash registers and Furby dolls." (quoted from a reviewer at Amazon.com)

Lynn writes: "We must never forget that the germ of our global economy was the desire of the postwar governments to foster peace by forging cooperation."

He talks about transnational partnerships as a way of bolstering national security, and talks about supply chains, single-source risk, and logistics. In many ways it is about risk management (and its associated dependencies) and what that means in the flattened world of such delicate social and technical dependency networks, and how forging partnerships and collaboration helps safeguard against security threats.

The collaboration and trustworthiness themes should ring a familiar tune with many agilists, as should risk management. The dependency network being dealt with here is not the architectural dependencies of a software system design, but the sociotechnical network dependencies and economic risks. And diversity, single-sourced (localized/encapsulated) risks, redundant failover, and other strategies can be used.

I think he's basically saying that the flattened connected world economy is a complex adaptive system that exhibits emergent behavior to create unexpected order out of unanticipated chaos (and vice-versa). It's not as optimistic as Friedman's work and paints a lot of scary scenarios.

I have an even scarier one that's been occurring to me while reading all of these works: Bird Flu Pandemic. It doesn't even have to happen. It just has to be feared enough of being imminent enough soon enough that enough people start eschewing real human contact and interaction within any close physical proximity.

What will we do to stay connected? We'll resort to technology in place of the "human touch" and face-to-face communication. We'll be reclusive, stay within our homes. Wear gloves and masks when we have to go outside, do more online shopping (especially delivery) with extra safety and sanitation precautions on the part of ourselves and delivery persons, well ... you get the picture.

Talk about being able to spread damage instantly across a wide "social" network in a busy, bustling flattened world ... even when/if we do have a vaccine, we cant produce and distribute it fast enough at high-enough volume. Now if it were software or some form of nano-bio-technology, we could distribute it digitally and wirelessly some how. But that's a bit of a pipe-dream.

Or is it? How do you fight a virus that deadly that quickly? Seems to me something that spreads so fast like that ... one would have to "fight fire with fire." I'm no medical professional, so I have no idea if it's possible, but what if we could somehow make a "good virus" that was highly "contagious" and could be transmitted upon contact or close proximity. Maybe it could mutate bird-flu into something harmless, or less harmful (without mutating again). But it seems to me the only hope of being able to produce and distribute something of the scale necessary to combat bird-flu would be something that can be (re)generated and (re)transmitted much the same way as the thing it's trying to combat.

What might be an "agile" approach for something like that, that could rely upon collaboration and cooperative development?

Wednesday, March 08, 2006

The World is 5-Dimensional: Globalization and Teleportation

This will be the first of several blog posts on the subject of globalization and my thoughts on what it portends for CM and Agility ...

For those of us who haven't read Thomas Friedman's The World is Flat, here are a few resources to familiarize yourself with the basic gist of the material in short-order time:The book is about globalization and how technology (and other "levelers") have "leveled the playing field" for so many others in (formerly) thirld-world countries to compete with "the big boys."

I think the book is, in part, saying that mass availability of technologies like the internet and Wireless connectivity, have provided us with the "inverse" of teleportation. The mass availability and accessibility of the internet and its pervasiveness into the everyday life of businesses and individuals is essentially the virtual inverse of teleportation: instead of being able to send ourselves anywhere, instantly, we have the ability to virtually summon anything from anywhere to wherever we are!

Okay, so we've only be able to do that digitally, with the mass commoditization of the internet and wireless technologies. We can do it with information and data, but not physical objects. But we can still connect with people anywhere instantly!

In terms of business, the world is "flat", but in terms of technology, we're basically saying The World is now 5-Dimensional!

The traditional 4 dimensions are the three spatial dimensions (height/length, width, depth) , and time. Friedman is saying that these "flatteners" have occured. Of course the world isnt really flat (we know it's round), but what I perceive him to be saying is that a new "dimension" has emerged that now allows us to come pretty darn close to bypassing the traditional constraints of time and space.

This 5th dimension is technology plus mass accessibility! Each of the "flatteners" Friedman describes is a form of technology that allows information, communication, and collaboration to transcend the traditonal time-and-space boundaries of the physical world. And the internet (the "virtual world") is a big part of that 5th dimension. But we did't make it to that 5th dimension right away. It wasnt until everyone and their mother in this country, and all the other countries we economically compete and partner with, had access to that technology (and used it!)

Friedman calls this Globalization 3.0. Whereas Globalization 2.0 was centered around business, the increased pervasiveness of the internet into daily lives and gadgets gas created Globalization 3.0, which centers around individuals. I wonder if globalization 4.0 might be achieved when we finally perfect virtual teleportation and have the ability to project our own virtual presence (not just a "holographic image" but many of our our five senses) to interact with that of others. (That sounds a little too much like the Matrix for my taste.)

Here some interesting reviews and commentary on Friedman's book:Over the coming weeks, I'll be musing more on what this might mean for the future of CM and Agility, and I'll be commenting on several related books on the topic:

Tuesday, February 28, 2006

Unchangeable Rules of Software Change - Redux

I put together a couple of my earlier blog-entries on the topic of software change and iterative development and developed them into an article in the February 2006 issue of CMCrossroads Journal. The article is entitled The Unchangeable Rules of Software Change (just like the earlier blog-entry) and updates some of what I had blogged about earlier.

In addition to the first three commonly recurring pitfalls encountered when first faced with the reality of these "unchangeable rules", I identified three additional pitfalls that typically occur when first attempting iterative development. It also has a few more iterative development resources than my previous follow-up blog-entry. Lastly, I expanded the rule-set by one, adding the "quicksilver" rule to the "quicksand" rule as noted below:

The Unchangeable Rules of Software Change
Rule #0: Change is Inevitable!
The Requirements/Plans ARE going to change!

Rule #1: Resistance is Futile!
There isn't a darn thing you can do to prevent Rule #0.

Rule #2: Change is like Quicksand -- Fighting it only makes it worse!
The more you try to deny and defy rule #1 by attempting to prevent rule #0, the worse things will get.

Rule #3: Change is like Quicksilver -- Tightening your grip makes it slip from your grasp!
The more you try to deny and defy rule #2 by attempting to precisely predict, or rigidly control change, the more erratic and onerous the result will be.

Rule #4: Embrace change to control change
The more flexible and adaptive you are at accommodating change, the more control you will have over your outcomes
You can read the whole article here!

Thursday, February 23, 2006

More SCM Blogs

In my last blog-entry of 2005, I posted a list Software CM and Version-Control Blogs and asked for others that any of you recommend. I know of a few more now:
Austin Hastings now has a blog! Check it out at Doing Better!

Austin is incredibly knowledgeable about CM and architecture, and I also think he's not only much more concise than I am [I'm (in)famous for being verbose] but he's also a lot more insightful and much more quickly sees the 'whole' system and gets at the crux of the matter. I'm expecting great and inspiring things from this blog, and judging from his entries on Defining Baseline and Table Data Gateway, I won't be disappointed!

Kevin Lee has a forthcoming blog!

Okay - so it's not quite a blog yet. But it supposedly will be very soon. Kevin has a forthcoming book on Continuous Integration using ClearCase, ANT, and CruiseControl that looks to be pretty good. And he has some nice articles and downloads from his "buildmeister" website.

Rob Caron writes that Robert Horvick started a blog about Team System's version control features and API

Sunday, February 19, 2006

Agile IT Organization Refactoring?

On the agilenterprise YahooGroup, someone asked for advice about how to structure the whole enterprise/organization, including core competencies for development, support, testing/QA/V&V, business/marketing analysts, systems engineering/architecture, deployment, PMO, CM, IT, etc...

I asked if he was looking for things like the following:
Mishkin Berteig wrote that he thinks that "this is one of those places where Lean and Agile really start to blur into one-another via queuing theory." I mentioned that I think Theory of Constraints (TOC) also blurs-in with Agile and Lean via queuing theory as well, as evidenced by the work of David J. Anderson.

Mishkin also wrote:
"The answer is that in a lean portfolio management situation this is a mandated constraint for projects. Projects simply are not approved unless they are able to fit inside that timebox. If you have a larger project, you must break it into two.... and you must not make it fit by making a larger team.... which leads to the other side: all teams should be roughly the same size, team composition should change very slowly, and people should be dedicated to a single team at a time."
I replied that, rather than the above, the practice of "pairing" and "refactoring" might actually scale up by refactoring people across projects and teams every 3-6 months. I'm thinking about the case of an IT department that supports several so called "products", and in any 3-6 month period, they of course get requests against those projects, as well as requests for new projects.

Now, not every request and/or project has the exact same priority. So having each project or product prioritize it's backlog and then work on whatever "fits" into the next iteration sort of assumes that each project has the same priority (if all the teams are more-or-less the same size and experience mix).

If, instead of each project/product separately prioritizing it's backlog, they might instead do something like:
  • Form a combined backlog list across the entire department
  • Have representatives [governance] from each customer organization in the enterprise meet, and prioritize the department-wide backlog list
  • And whatever shows up as the topmost requests that can be handled in the next financial quarter with the available staffing is what gets worked.
If that means that some projects or products get more of their requests worked on in that time-frame, then so be it. And people might be "refactored" across teams and projects within the department, adding more staff to "feed" the projects that have the "lion's share" of the most highly prioritized requests from the backlog.

Wouldnt that be essentially creating a "pull" system for "allocating resources" to projects?

If pairing were used, it would help the "refactored" folks come up-to-speed more quickly on the new product or project. And after awhile, I'd think most folks in the department would have a reasonably high knowledge level and awareness (and appreciation) about all the "important" projects going on in the department, and understand the overall "business" big-picture a little better (at least for that department).

That would still seem agile to me. It looks similar to some matrixed approaches, but I think its a bit different because it is more fine-grained and incremental. I'm thinking it would help "scale" a single agile project and team into an overall "agile" department servicing an entire portfolio of projects, and making sure that those projects that are most valued for the given quarter get the appropriate amount of resources relative to how the "Customer" prioritized the backlog across the entire portfolio.

Wouldn't it? Or would team-dynamics and other people-issues make it too darn hard to incrementally rotate/refactor people in that manner?

Isn't this also an example of using the Five Focusing Steps of TOC? (Would this be an example of a team/project constraint elevated to the level of the department and using dynamic allocation of the entire department's staff to subordinate to the constraint and place the most staff on the projects with the most valued requests?)

Friday, February 10, 2006

Agile vs MDE: XP, AMDD, FDD and Color Modeling

The February 2006 issue of IEEE Computer is devoted to Model-Driven Engineering (MDE). MDE is actually a bit broader than MDA/MDD, because MDE (allegedly) covers more of the lifecycle, and corresponding process and analysis. Doug Schmidt's Guest Editor's Introduction to MDE is a pretty good overview of the current theory and practice and the obstacles to overcome.

A co-worker of mine is very interested in combining Agile methods with Model-Driven Engineering. He feels that the benefits of agility and of model-driven code-generation show tremendous promise as a breakhrough combination in productivity and quality and he is stymied that there aren't a lot more folks out there trying to do it.

He attended UML World in June 2005 and had some discussions with Scott Ambler (AgileModeling), Steve Mellor (co-creator of the Schlaer-Mellor OOAD method, and co-author of "Agile MDA", Executable UML and MDA Distilled), and Jon Kern, Agile MDA Evangelist (who helped Peter Coad launch TogetherSoft). He found most of what they had to say supported the possible synergy between Agility and MDA, but was very surprised to see AMDD folks and XP/Scrum folks throwing away their models once they had the code for it.

Upon hearing the above, I noted that Peter Coad is quite possibly the missing link between MDE and Agility:
The potential mismatch between MDA, with AMDD and XP-like Agile methods, is that:
  • Full/pure MDA strives for 100% generation of all code and executables directly from the models.

  • Ambler's AMDD, and "domain modeling" espoused by the likes of Robert Martin, Martin Fowler, and others in the XP community strives for "minimal, meaningful models", where they model only as needed, as a means of gaining more understanding, and then embed the knowledge gained into the code and/or tests.
I beleive FDD has the potential to bridge the gap. It strives for a comprehensive domain model, but from that point the code is written by hand (using coding practices that are traditionally non-Agile in nature, including strict-code-ownership, and formal code reviews/inspections). FDD doesn't say anything about using MDA/MDD techniques to auto-generate code, but the method is extremely amenable to doing exactly that.

Furthermore, doing so would remove a lot of the manual parts and practices of FDD that many consider to be the least "Agile". And much of the FDD "Color Modeling" patterns and techniques are very much the equivalent of refactoring and design-patterns that are currently used for code. See the end of this message for some more resources on Color Modeling.

In my own humble opinion, I think the "sweet spot" is somewhere in between 100% code generation and "hand-crafted" code. I realize that 100% is the ideal, but I'm thinking about the 80/20 rule here, and whether trying to eliminate that last 20% is perhaps not always practical.

I think the biggest barrier to doing that today is tools:
  • The modeling tools are good at handling the structure, but not as much as the behavior.

  • High-level programming languages like Java and C# and their IDEs are more convenient for specifying behavior (which is still largely textual in UML 2 and Action-Syntax Languages).

  • It is extremely difficult to maintain the non-interface code for a "class" or "package" unless it is either 100% manually coded or else 100% auto-generated. If it is 50-50, or even 80-20, then the "nirvana" of seamless and reversible round-trip design to code and back just isn't quite there yet.
What would get us there and help close that gap? I think the "melding" of the IDE with the modeling tool is what is needed - and it would have to allow specifying code such as Java or C# as opposed to only allowing ASL "code" (most of which looks pretty darn close to Java and C# anyway :) as well as a means indicating if/how a chunk of code was auto-generated or if it was to be hand-crafted, but "navigable" and editable via the Model.

The Eclipse framework shows a lot of promise in helping us get to that point, and has a lot of the groundwork and building blocks already in place, but still has a lot more work to be done.

I hear some of you saying, "Okay Brad, I see what this has to do with Agility. But what does this have to do with CM?" Well, in my January 2005 Agile SCM column, among other "crystal-ball gazing" predictions, I talked a little about "Model-Driven CM" and how it would resurrect the once popular SCM research-area of Software/System Configuration Modeling:
  • MDE/MDA would readily lend itself to allowing the developer to focus on the logical structure of the code, letting the physical structure (files and directories) be dictated by the code-generation tool with some configuration scripting+profiles.

  • This in turn would allow models and modeling to be easily used to analyze and design the physical structure of the code, including build & configuration dependencies.
Of course, we have a ways to go until we get there, but I do believe the trend is on the rise and it's only a matter of time.

Some other resources related to Agility and MDE:

Wednesday, February 08, 2006

Book Review: Practical Development Environments

Matthew Doar's Practical Development Environments (PDE) looks to be a pretty AMAZING book. It really does cover the entire lifecycle of development environment tools for version control, build management, test tools, change/defect tracking, and more. My previous favorite work on this topic was the Pragmatic Programmer's Pragmatic Project Automation (PPA), but no more.

The PPA book is still a GREAT book! And it focuses a lot more on programming and automating tasks and good ways to go about doing it. It goes into some of the details of particular tools and setting them up, especially JUnit.

But the PDE book is far more comprehensive in the range of development environment practices and tools that it covers, including not just the automation aspects, but evaluating them, setup and administration, integrating them together (and issues and challenges encountered), and many more aspects of testing, building, project tracking, version controlling, and just generally helping the development team get work done with maximal support and minimal hindrance from the tools they use.

If you want to be a toolsmith, and learn more about scripting and automating tasks and some of the common tools that already exist, then I'd still recommend Mike Clark's Pragmatic Project Automation.

If you're focus is less on how/when/why to automate and more on evaluating, setting-up and maintaining a practical development environment for your team, then Matthew Doar's Practical Development Environments is definitely my top pick nowadays!

Sunday, February 05, 2006

Book Review: Perl Best Practices

As far as I'm concerned, Damian Conway's Perl Best Practices book should be required reading for any serious Perl programming, and should be mandatory for any team that does any serious Perl development. These best-practices and conventions are exactly the sort of thing that programming teams need to come to grips with, and establish shared norms for how to make their codebase clear and "clean."

Next time I come across a team of Perl scripters that needs to develop a set of team standards and strategies for how to do thse kinds of things, I'm simply going to tell them to get this book: read it together, discuss it, learn it, understand it, and then do it!

Friday, February 03, 2006

O'Reilly Book Reviews

I received a whole slew of books from O'Reilly to review, so I'll be writing about them in a subsequent review either on this blog or in separate articles. The one's I'll be reading through are:Watch this space! I've already been making my way through Perl Best Practices, and it looks quite good. The other one I'll be doing soon is Practical Development Environments, which looks like it might give the Pragmatic Programmer's Practical Project Automation more than a run for it's money.