Showing posts with label Methodology. Show all posts
Showing posts with label Methodology. Show all posts

Wednesday, August 30, 2006

Methodology and SOA for the Methodology Nazi in You (and Don't Forget Governance)

The title is a little tounge-in-cheek but there is a segment of the software community that cares a lot about application development methodology and making it easier for a large team to follow the associated best practices (and correspondingly harder to make excuses for going off and doing their own thing). The current focus on Service Oriented Architecture has placed a really bright spot light on these issues and the stakes are high for ignoring best practices.

IBM's Rational Method Composer (RMC) can be used to customize an established development methodology such as the Rational Unified Process (RUP) for your particular project or organization. RMC comes with "multiple process content libraries, including RUP, RUP plug-ins, SUMMIT Ascendant methods, and other processes for Program, and Portfolios management."

Once you customize your development methodology, you can export it to Rational Portfolio Manager to help project managers create project plans. See Exploring Rational Method Composer and Rational Portfolio Manager integration.

You can also export your customized methodology into content that loads into Rational Application Developer for WebSphere (RAD) so that your developers can refer to the guidance from within the same Eclipse shell as they develop their Java code. The method content is displayed within RAD in a "Process Advisor" view as described in New Features of RAD 6 for WSAD v5 Developers Course Outline beginning on page 8.

For those of you who worry about making sure your organization follows a newly established SOA Governance policy as they start creating new business services, rolling out an Enterprise Service Bus, and making "grow my own" vs. reuse decisions, download IBM Rational Method Composer plug-in for SOA governance. This helps "identify appropriate best practices, merged with your existing IT processes, to provide proper governance of the capabilities introduced with SOA. The end result is a project plan to create your organization's unique governance framework." Note the project plan tie-in which would benefit from the integration of Rational Method Composer with Rational Portfolio Manager as described earlier.

For those of you who are both methology czars and service modelers there is a free download UML Profile for Software Services, RSA Plug-In which can be used to customize Ratonal Software Architect for modeling services in an SOA environment. It uses the conceptual model described in UML profile for software services and adds many useful stereotypes to your UML models such as Message, Service Partition, Service Provider, Service Consumer, Collaboration, Service Collaboration, Service Channel, Service Specification, Service, Service Gateway, and Message Attachment.

Copyright © 2006 by Philip Hartman - All Rights Reserved

The postings on this site are my own and don't necessarily represent IBM's positions, strategies, or opinions.

Thursday, July 27, 2006

Leading a Software Project Like Directing a Movie?

A couple of weeks ago a co-worker passed me an article that really got me thinking about what it takes to lead a significant software development project. In Successful software management style: Steering and balance* Walker Royce, Vice President Rational Brand Services, makes an interesting argument that running a major software project is a creative act, more like directing a movie than what most of us think of when we think of project management.

I must admit his argument is seductive. I think that as an architect, I consider myself more of a “creative type” who makes something out of nothing. Often I don’t like being held to a plan I had no part in making. And when I help make a plan, I budget some time for some tinkering.

Maybe Walker Royce has a point. Here are some quotes:

“Managing software projects successfully has proven to be very failure prone when using the traditional engineering management discipline. Comparing the challenge of software management to that of producing a major motion picture exposes some interesting perspectives. Both management problems are concerned with developing a complex piece of integrated intellectual property with constraints that are predominantly economic. This article introduces some comparisons between managing a software production and managing a movie production, then elaborates four software management practices observed from successful projects. The overall recommendation is to use a steering leadership style rather than the detailed plan-and-track leadership style encouraged by conventional wisdom.”

""Heresy!" some may shout. "Software projects need more disciplined engineering management, not less." Before you dismiss my claim as an insult to the profession, consider these observations:

  • Most software professionals have no laws of physics, or properties of materials, to constrain their problems or solutions. They are bound only by human imagination, economic constraints, and platform performance once they get something executable. Some developers of embedded software are the obvious exception.
  • In a software project, you can change almost anything at any time: plans, people, funding, milestones, requirements, designs, tests. Requirements -- probably the most misused word in our industry -- rarely describe anything that is truly required. Nearly everything is negotiable. "

"Metrics and measures for software products have no atomic units. Economic performance more typical in service industries (value as observed by the users vs. cost of production) has proven to be the best measure of success. Most aspects of quality are very subjective, such as maintainability, reliability, and usability."

"Process rigor should be much like the force of gravity: the closer you are to a product release, the stronger the influence of process, tools, and instrumentation on the day-to-day activities of the workforce. The farther you are from a release date, the weaker the influence. This axiom seems to be completely missing, or at least grossly underemphasized, by the process evangelists and literature, but it is usually very observable in successful software projects."

"Most unsuccessful projects exhibit one of these characteristics:

  • Over-engineering on the early phases (creative aspects) of the life cycle. You need maneuverable processes that easily adapt to discovery and accommodate a degree of uncertainty to attack a few major risk items, prototype solutions, and build early and coarse artifacts. What creative discipline can you think of in which more process rigor is considered beneficial in helping humans think?
  • Under-engineering on the later phases (production aspects) of the life cycle. Extensive change-managed baselines of detailed and elaborate artifacts need engineering processes with insightful instrumentation and attention to detailed consistency and completeness to converge on a quality product."

On the flip side, there is the problem of “Can my customer culturally handle the kind of “give and take” in a creative software development process? Do they understand the idea of “discovery” of requirements or do they think they've identified them all already? Can customers really admit how little they know about what they want or how poorly they sometimes articulate their “requirements”. Can they accept trying out an idea, deciding it was all that good, and throwing the work away?

Another problem area is that for most of us is that we have to live within a budget which often must be cast in stone very, very early in the process before those requirements (negotiable as they may be) are really well understood. How many customers really work in an organization that allows them to “go back to the well” and ask for more money without commiting some kind of career suicide?

Then there is the recurring problem of technical orgainzations expecting to have their budget estimates cut so they pad their numbers. Business users then come to expect to routinely receive padded numbers and promptly cut the estimate by an even larger percentage. For a humorous look at this situation see Project Approval Games: Three Fantasies mentioned in a previous post Feudal Line Management and Shared Resources.

My gut tells me to accept a lot of Walker Royce’s ideas and bake them into a project plan that appears more traditional by adding a lot of tasks with formal sounding names that really mean “verify we really understand what they want”. My experience is that customers often articulate pretty well the “happy path” of what they want when everything works like they hope. They are not so good, however, at telling you how many things can go wrong and telling us what the software should do when an exception occurs and we are no longer on the “happy path”. It may be wise to add a few formal sounding task names that really mean “contingency for exception handling we don’t know about yet goes here”.


Copyright © 2006 by Philip Hartman - All Rights Reserved

The postings on this site are my own and don't necessarily represent IBM's positions, strategies, or opinions.

Wednesday, July 05, 2006

Feudal Line Management and Shared Resources

There is often a fuzzy line in practice between the role of a project manager and an I/T architect. I say in practice because all too often it is not possible to be a “pure” I/T architect. We have to help the project manager be successful if we want to continue to have our fun creating new solutions to solve new problems.

I know, for example, that my project managers often rely on me for help setting up a viable project plan. How are they supposed to know which tasks in the technology mix are predecessors of others if the I/T Architect doesn’t tell him? And since all of my projects have at least some first-of-a-kind (with the client anyway) element to them, how would the project manager know what the tasks are in the first place.

Then there are the resource issues. If the first-of-a-kindness of the project involves some development tool or middleware that we haven’t used before then a good I/T Architect should help the project manager identify the skills required. I know once names are submitted, I often get involved in the interview and selection process as well.

One of my project manager friends and I were discussing a common project management problem – the resource that everybody needs for their project. In our case, we are anticipating that if our client adopts SAP then the already thin ranks of the programmers supporting the legacy systems will be in great demand. Who will provide the routine support if these people are in requirements discussions related to SAP? Who will create that urgently needed report if they are in a conference room trying to help the data migration team move the legacy transaction history over to SAP? What if the client’s business climate becomes more competitive and the business requires yet another tweak to the legacy system to support the latest marketing program? But there are all those SAP meetings to go to!

We came to the quick conclusion that the client could hire 20 or 50 or 100 SAP consultants (or another 250 in India) and not deliver a working SAP instance any faster because those few legacy subject matter experts (SMEs) could only attend just so many hours a day of meetings.

My project manager friend pointed me to a set of really wonderful project management “fables” which uses the feudal system of middle age Europe and the story of Robin Hood to illustrate the real-world, political problems faced by today’s project managers in a the resource constrained realm of shared resources. Check out Robin Hood PMs and Feudal Line Management by Dick Billows at 4pm.com. This article makes some great points and is amusing reading and all too true! A small sample of this gem:

“Sure, there were all those blasé assurances of “full support” from the line managers before the project started. Now that the work has begun, these feudal Sheriffs of Nottingham patrol their castle walls hurling stones and boiling oil on PMs who attempt to utilize one of their artisans.....’A person can have but one boss and that is I.’.... the sheriff notes the PM’s project work assignment on a scrap of paper but does not assign a specific individual from the castle to complete the task. ... They (the PM) don’t know who will be working on the assignment When the sheriff finally does allow work to start, the selected individual is usually not the most skilled artisan in the castle. Often, the sheriff picks an individual whose absence from the castle may actually improve the castle. .... The sheriff may recall them on a whim or to silence another whining Robin Hood. How does the borrowed person react to all this? It’s clear that the project assignments should not, in any way, interfere with the person’s accountabilities in the castle. It’s there after all, that the sheriff will decide on compensation, promotion and continuing employment. The PM has none of these rewards to dole out... With several borrowed people on the team, usually on critical path assignments, the project team takes on an excessively casual, holiday-like atmosphere. This is in stark counterpoint to the user or client King who views the project as a crusade and reminds the PM of its importance at annoying frequent intervals.”


Another gem from the same site, Project Approval Games: Three Fantasies where the fantasies are Executive Fantasy Land (too much confidence in the PM), the Used Car Lot (PM as “slick shyster” trying to rip the executive off), and The Eager Puppy Dog (which drives PMs to pad their project estimates with contingency and executives to assume there is extra fat which can be cut).

Read both and enjoy!


Copyright © 2006 by Philip Hartman - All Rights Reserved

The postings on this site are my own and don't necessarily represent IBM's positions, strategies, or opinions.

Wednesday, May 24, 2006

SAP Projects and the "Big Bang" Theory

A fellow IBMer saw some of my previous posts about navigating the SAP maze from a custom development point of view and sent me an email basically asking the question "Can SAP projects be iterative? All the ones I've ever seen always seem so 'big bang.'" The more I thought about his question, the more I realized how reasonable the question seemed to those of us who've been building custom applications. After all, how many small SAP projects have you seen? How many have put something in production in 3 months? Don't most of them have budgets in the tens of millions of dollars (or even more)?

I decided to pose his question to a "real SAP consultant" I met recently. She claimed that SAP projects can be iterative. An project can cycle thru multiple iterations of the ABAP programs used for point-to-point integration with SAP (the old style integration pre-dating XI) and companies can and do gradually add new modules to their SAP environment. (This is probably more incremental vs. iterative).

I challenged her "don't the customization done at the beginning of an SAP project drive the generation of database schemas? Aren't these database schemas hard to change?" She said she typically isn't involved in that kind of SAP setup but that it could be done. There was, however, a catch. Such a change would probably require some kind of data migration project associated with it to move data from one schema to another. My gut tells me these data migrations are almost always painful. There is a reason IBM acquired Ascential a while back. The phrase Master Data Management (MDM) is familiar to all SAP consultants. If your client is looking at SAP, you'll get familiar with it too.

I think this may shed light on why SAP projects appear to be such a "big bang". Most companies do not want to support more than one system of record simultaneously. (The "E" in ERP stands for "Enterprise" so otherwise you are taking the "E" out.) They want SAP to take over all of whatever it is doing (for example the order to cash process). Otherwise you get into a need for the new SAP and the old legacy system to exchange a lot of information to keep each other "in synch" with what they are doing. Everyone these days wants their data up-to-date in real time so that probably means real-time synchronization.

I know of a company facing exactly that kind of decision. They don't really like the idea of rolling a new system out across the whole company. They'd prefer to roll new capabilities out to a single line of business first. But... each line of business shares a lot of the same customers and dealers. They often share warehouses. Shipments to customers often contain a mix of products from different lines of business. With today's legacy systems, customer can mix products from different lines of business on the same order. Imagine the implications of changing the order to cash process to a new SAP system and rolling it out to only one line of business at a time:
  • Do I track inventory in two different systems?
  • How do I load a truck at the warehouse if the shipment includes products from both systems?
  • How do I keep up with vacant storage bins in the shared warehouses if the inventory is split between two systems. Do I draw a line down the middle and and disallow putting line of business A's inventory on the line of business B side of the line?
  • How will I generate the pick list for the people that load the trucks? Will they have to work from two lists? How do yo make sure it'll all fit on the same truck?
  • Dealers don't have to split orders by line of business today, will they have to split their orders into two separate orders tomorrow while we're in transition?
  • Will customers have to check the status of different line of business orders separately?
  • Will my dealers get a single invoice with all line items like today? or will they get two separate invoices, one for each system?
  • Will dealers get a single monthly statement?... or two separate monthly statements?
  • When a dealer visits the B2B website today they can order products from different lines of business from one screen. In the future, will they have to go to one screen for one line of products and to a different screen for the others?
So, the choices are clear (or is that murky?):
  • Offload the data integration onto your employees and customers; making them deal with separate orders, separate shipments, separate invoices, separate statements, etc. OR
  • Spend millions on middleware solutions to broker all transactions so that they all look to the external customer like there is a single back end system OR
  • Put the "E" back in ERP and don't even try to roll out an order-to-cash process until your whole business (Enterprise) is ready.
Which would you choose?


Copyright © 2006 by Philip Hartman - All Rights Reserved


The postings on this site are my own and don't necessarily represent IBM's positions, strategies, or opinions.

Friday, February 03, 2006

Waterfall Methodology Makes a Comeback!

Check out this post I discovered via link on Grady Booch's blog regarding the comeback of waterfall methodologies being celebrated at an upcoming Waterfall 2006 Conference. Register now!




For anybody who doesn't know, Grady Booch is an IBM Fellow and was founder of Rational prior to its acquisition by IBM.

The postings on this site are my own and don't necessarily represent IBM's positions, strategies, or opinions.

Monday, December 12, 2005

Forget Business - I/T Alignment ?

I found an illuminating post on I/T Architecture that proposes a view about Enterprise Architecture which is counter to the prevailing “business – I/T alignment” winds. This post called “Why Enterprise Architects should eschew IT / Business alignment“ in James McGovern’s blog “Enterprise Architecture: Thought Leadership” advocates approaches which are no doubt heretical to some – but makes points that have worried me for some time.

Here are some provocative quotes to get your attention:

“The phrase, IT should align with the business is commonly heard in magazines such as CIO. I have blogged sporadically on the fact that this form of hype is actually detrimental to the health of the enterprise.”
“Enterprise Architects that embrace agile methods understand that there is a chaordic balance and attempting to make everything predictable is not only limiting the possibilities of greatness but in many situations futile. Predictability as a system quality is further championed by folks who don’t write working software for a living and instead focus in on comprehensive documentation. These folks encourage practices such as Six Sigma, Eight Omega, CMM and other efforts without focusing on the real problem space; lack of innovation.”Predictability causes mediocrity. Enterprises that desire to be predictable buy the same software as their competitors, are rare to implement technology within their vertical first and prefer to let other enterprises work out all the bugs. “
“I am firm in my own belief that the recent practice of vendor consolidation may be the decline of the IT enterprise as many within our profession have outsourced their architecture via Powerpoint to vendors whose sole competency is commoditizing solutions and promoting them to your competitors.”

The postings on this site are my own and don't necessarily represent IBM's positions, strategies, or opinions.

Friday, October 28, 2005

IBM Proposes to Donate Part of Rational Unified Process to Open Source Community

IBM's Rational Division Proposes Major IP Donation to Open Source Community
— RUP is a software process platform that has guided some 500,000 developers around the world in projects ranging from small-scale product development to large industrial-strength systems, according to IBM. It comprises what IBM says is 'a vast collection of methods and best practices for promoting quality and efficiency throughout software development projects.' Now IBM proposes to donate a subset of the platform to the Eclipse Foundation.




The postings on this site are my own and don't necessarily represent IBM's positions, strategies, or opinions.