Tune Up Your PC

Tune up your PC with our tools and information today!

  • Home
  • About

31

May

Why “good” doesn’t happen

Posted by admin  Published in windows, xp

On a blog post titled “what good looks like,” Alan Inglis detailed a list of “project architectectural artifacts” that he wishes that previous architects would leave behind when a project is completed. 

In his list, Alan details 10 artifacts (actually 14, if you use the ZF to catalog them) that he’d suggest should be created.  His advice is interesting, but there is a flaw in the logic.  I’ll examine his suggestion from a couple of viewpoints, to illustrate why I believe that his advice is incomplete, and to offer a suggestion for completing it.

Context

It is normal, when we begin a project, to detail out the things that we wish we had.  Therefore, we “should” create them for the next person.  Viewpoint 1: at the beginning, looking forward, defining project requirements. 

It is also typical to open up a maintenance project and need to make changes, only to find yourself wondering about the choices made by the person before you.  Viewpoint 2: in the middle, looking back, trying to understand.  (In my past dev teams, we called this process an “archeology expedition.”)

The problem with his list of artifacts (which is quite comprehensive) is that “wishing” does not constitute a requirement.  If I create an artifact “for the future” that does not mean that the people, in viewpoint 2, will use it. 

Unless there is a built-in development process that REQUIRES architects and developers to visit a repository, and withdraw relevant documents, then you have no business justification for performing the task.

I question every requirement that has no business justification, especially if it is not tied to a business process.  This is easily fixed: tie the documentation ‘requirement’ to a business process… the process of designing architecture.

Suggestion

People in “viewpoint 2” should have the requirement of looking things up, in a specific place, for a specific reason.  We need to carefully describe the processes around this “learning” phase.  Why would we look things up?  What things would we look up, and most importantly, what are the triggers or scenarios in which a lookup process is required?

Let’s draw the requirements for documentation from that development process… not from a wish list. 

For example: If I believe that it will be useful to create a list of terms (glossary), let’s understand the scenarios where a list of terms would be useful. 

  • Would it be on THIS application, or any application tied to the same business unit? 
  • What do I need to know about a term? 
  • If I look up a term, would it be natural to link that term to the conceptual data model (if applicable)? 
  • What about changes in the meaning or use of the term over time? 
  • If a term has changed, or an older term is no longer used, what guidelines must be followed to update that glossary? 
  • Should we keep older definitions, so that people inspecting older code can understand the code? 
  • Should we leave advice to those poor souls for how to interpret an older term in the context of a newer practice or process? 
  • Assuming many projects would use the same glossary, should we tie each term to the project or app that needed it?  (That way, a term won’t be deleted if a system that needs it is still running in production).

Discussion

I picked on the glossary, but EVERY ONE of the artifacts that Alan lists would have this problem.  Each describes some tiny part of a much larger ecosystem of information.  The moment the project goes into production, the artifacts must take their place among the hundreds of other relevant documents, from every other project.  They need to be findable, consistent, and AUTOMATICALLY linked together in a way that minimizes the “archeology expedition” that “viewpoint 2” implies.

This is no longer a “project” problem.  This is an enterprise problem.  The data describes part of the architecture of the enterprise, and as such, needs to be maintained at the enterprise level, for the sake of engineering. 

As Leo de Sousa pointed out in his reply to the Alan’s post, a repository is required.  But it won’t be a simple one, where we drop documents.  No, it will be a complex thing, that understands what each architectural element is, and how to find it, and how to link it to other elements, so that the artifact of the present doesn’t become the archeology of the future.

Related Articles

  • I knew where Nepal was before Raiders of the Lost Ark. Did you? (September 3rd, 2010)
  • Steve Marx Reads The Azure Tea Leaves on Connected Show #36 (September 3rd, 2010)
  • Не место красит разработчика, а… (September 3rd, 2010)
  • Quote of the Day: On the Efficiency of Government (September 3rd, 2010)
  • What happens to a named object when all handles to it are closed? (September 3rd, 2010)

No user responded in this post

Subscribe to this post comment rss or trackback url

September 2010
M T W T F S S
« Aug    
 12345
6789101112
13141516171819
20212223242526
27282930  

Blogroll

  • Development Blog
  • Documentation
  • Plugins
  • Suggest Ideas
  • Support Forum
  • Themes
  • WordPress Planet

Categories

  • computers (59)
  • email (3)
  • hardware (17)
  • Operating Systems (1)
  • security (27)
  • software (87)
  • spam (2)
  • technology (93)
  • windows (12402)
  • wireless (3)
  • xp (12397)

Archives

  • September 2010 (75)
  • August 2010 (741)
  • July 2010 (904)
  • June 2010 (594)
  • May 2010 (776)
  • April 2010 (881)
  • March 2010 (728)
  • February 2010 (794)
  • January 2010 (645)
  • December 2009 (710)
  • November 2009 (625)
  • October 2009 (653)
  • September 2009 (622)
  • August 2009 (629)
  • July 2009 (627)
  • June 2009 (652)
  • May 2009 (607)
  • April 2009 (629)
  • March 2009 (465)
  • February 2009 (40)
  • November 2008 (157)
  • October 2008 (140)

Recent Entries

  • I knew where Nepal was before Raiders of the Lost Ark. Did you?
  • What happens to a named object when all handles to it are closed?
  • Quote of the Day: On the Efficiency of Government
  • Не место красит разработчика, а…
  • Steve Marx Reads The Azure Tea Leaves on Connected Show #36
  • This is a really cool panoramic stitching tool!
  • Microsoft Dynamics ERP Licensing Guide
  • Fortnightly MSDN Flash poll
  • Analyzing Database Roundtrips with SQL Server Profiler
  • Windows Identity Foundation Samples–HTTP Watch Is Your Friend

Recent Comments

  • No Comments
  • Random Selection of Posts

    • Microsoft Test Runner series – part 3 – Filing Actionable Bugs
    • DevHealth and DevHealthViewer
    • UK MSDN Flash Poll for November 4th: How excited are you about Visual Studio 2010 and .NET 4
    • Create SQL Agent job using SMO
    • The efficacy of anti-virus
    • SSL Diagnostics for IIS 7.*
    • Azure Services Platform coming to Europe
© 2008 Tune Up Your PC is proudly powered by WordPress
Theme designed by Roam2Rome