What is TOGAF – without jargon

Yes, TOGAF is an EA (Enterprise Architecture) framework – but what is that suppose to mean?

Imagine that you have to oversee the IT integration of 2 companies which has merged and they have different ERP, CRM, billing system and the customer facing process are different. The merged entity needs to rationalize the product offering and needs to project a uniform and integrated face to the customer. Obviously, this is going to be a big challenge – technological, people, process and change-management. How would you go about this complex transition? You can do a ground up thinking and make a plan or you can take the help on an EA framework like TOGAF and tailor it to your specific needs.

However, the important point that needs to be kept in mind is that TOGAF is NOT a methodology for managing software development. It will help you to identify what software to build – what need the software should satisfy – if you are planning to outsource the work, what should go into an RFP – even how to monitor the development and implementation.

ADM = Architecture Development Methodology

If you look around a little you will realize that the core element of TOGAF is ADM. Important point to remember is the “A” in ADM is ARCHITECTURE and not application.

[BTW: TOGAF = The Open Group Architecture Framework and the current version is 9]

You will also come across this diagram either in the Wikipedia page on TOGAF or on the Introduction to ADM page on the TOGAF site. I won’t blame you if you find the content in these pages to be too confusing. However, the annotated diagram on the left should be able to give you an overview.

Though the diagram has 10 circles, ADM is essentially a 4 step process.

  1. Tailor TOGAF to suit your need: this is a onetime activity to be done before you start adopting TOGAF for your organization
  2. Define scope of work and prepare plan for rollout: this activity is made of six distinct steps – we will get into the details in a later post
  3. Oversee development and implementation: how the actual development and implementation is done is not within the scope of TOGAF
  4. Manage post-implementation change: Any major change will trigger off another cycle of ADM

You may have multiple ADM cycles simultaneously running for different projects running within your organization. These projects need not be in sync.

Requirement Management = Central knowledge repository

The circle at the centre represents a knowledge repository. TOGAF was specific recommendations on how to organize the repository. We will see more about this in a later post.

I will also not get into the detail of what Enterprise Continuum is. If you had tried skimming through the TOGAF material, you surely would have encountered this term. It is a way of classifying item in the knowledge repository. On one dimension is to separate architecture and solution. On this other dimension is about moving from more generic to more specific (foundation, common system, industry, organization specific). Again, this requires more detailed discussion and we will do it in a later post.

Architecture as defined in TOGAF

The architecture is used in TOGAF in ways you would not normally use. You need some time to get used to it. The TOGAF study guide explicitly states that…

…”architecture” has two meanings depending upon the context:

  1. A formal description of a system, or a detailed plan of the system at a component level to guide its implementation
  2. The structure of components, their inter-relationships, and the principles and guidelines governing their design and evolution over time

At this stage I will not analyze this definition but draw your attention to 2 phrases – “detailed plan … to guide its implementation” and “evolution over time”. Do you find this different or confusing? You better get used to it.

If you come across the term Architecture Work, it means the work that needs to be done to move from baseline (current) architecture to target (desired) architecture. In simple term it means scope of work.

In the next post I will elaborate the 6 steps for defining scope of work and preparation of plan for rollout.

Advertisements
Posted in TOGAF. Tags: , , . 12 Comments »

What makes Agile agile

Silly question – or is it? How do you judge if a methodology can be classified as agile methodology? Can Iterative or Spiral development methodology be classified as agile? What about Six Sigma or Lean process? On what basis will decide will you decide? If you go by the Forrester classification, Iterative or Spiral development methodology is not agile where as Six Sigma and Lean is agile.

In the survey report Agile Development Management Tools, Q2 2010, Forrester classifies Scrum, Agile Modeling, Feature-Driven Development, Test-Driven Development, eXtreme Programming, Lean Development, Microsoft Solution Framework for Agile, Agile Data Methods, Adaptive Software Development, Six Sigma, Crystal, Behavior-Driven Development and Dynamic System Development Methodology under agile methodology but classifies Rational Unified Process, Iterative Development or Spiral under Iterative Development.

Is there any accepted definition for agile methodology which can help us determine if specific methodology can be classified as agile? I have looked and have not found any.

Can we fall back on the agile manifesto or the 12 principles behind the agile manifesto? If you study them carefully you will realize that they are more of an aspirational statement rather than specific guideline which can be used to evaluate a methodology.

For example, take the first statement in the manifesto – “Individuals and interactions over processes and tools”. Does is mean – don’t bother with tools and processes? Is it feasible in today’s fast passed, complex world? It is like the statement from John Zachman – You can run an enterprise with pencils, paper and file cabinets – reality in the past; unthinkable today.

Similarly, have a look at the 5th principle – “Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.” Does it mean – don’t bother with process? If there are multiple agile projects going on in an organization then can each team chose to follow a different agile methodology?

For that matter, 4th and 6th principles state – “Business people and developers must work together daily throughout the project” and “The most efficient and effective method of conveying information to and within a development team is face-to-face conversation”. This will mean physically collocating business people and developers. In the current globalized and virtually networked world, I wonder how this is feasible.

What we need to do is to take a couple of step backward and try to extract the essence and formulate clear yardsticks which can be used to qualify any methodology and agile or non-agile. I suspect that most of us know intuitively what those yardsticks are but it will still be good to have it in black and white.

Essence of Agile – 2 dimension

Before we can formulate the yardsticks let us understand the spirit behind the manifesto.

Change is inevitable because …

  • …software cannot be unambiguously and completely specified through a document or a model
  • …people don’t know and cannot completely visualize what the software should be till they play with it
  • …communication is never perfect and correction through feedback loop is essential
  • …environment around us is never static and useful software needs to evolve to match the revised requirement

Thus, any methodology to qualify as an agile methodology needs to have specific recommendation on “how to effectively manage short iterations”. As a corollary, any methodology which tries to lay down standards on how to “unambiguously and completely” specify different aspects of the software cannot be considered as agile.

Individuals create software and better software is produced …

  • …by motivated individuals
  • …through regular interaction among individuals
  • …when individuals working together figure out how to be more effective
  • …where the environment has minimum roadblocks and illogical restrictions

Therefore, “how to help individuals to work together” is the second dimension that an agile methodology needs to address.

Yardstick of evaluation – 2 positive and 1 negative questions to ask

(+ve) What recommendations does the methodology provide …

  1. …for managing short iterations: Obviously any methodology which does not recommend iterative development gets immediately disqualified.
  2. to help create a self-motivated team: Recommendations need to be specific and actionable and not philosophic statements.

(-ve) Is there any mandate that makes it necessary to produce a document or a model which is expected to be a complete and unambiguous representation of a specific dimension of the software?

Evaluating methodologies and extracting principles

In subsequent posts, I plan to use these criteria to evaluate different methodologies.

 

 

ABC of Patenting – why, what and how

“No more than 1 in every 100 patent earns enough to pay back development cost and patent fees. About 1 in 500 makes any money above its out-of-pocket costs.” – Peter F. Drucker in Innovation and Entrepreneurship

If this is true then why do so many people file patent application? There are about 200,000 patents granted in US every year. (You can see this report from U.S. Patent and Trademark Office for more detail.)

4 Reasons why people file Patent

  1. Measure of R&D progress: For individual it can build your credibility. For a research lab in can be the ROI measure for the top management. For an organization it can have a positive influence on the brand.
  2. Proof of uniqueness & usefulness: Any product which is backed up by a patent has a higher perceived value.
  3. Defensive measure: You can file a patent to get protection from possible future litigation (see this). Alternately you can use patent to cross-license technologies. (see this)
  4. Startup valuation: Not just for startups, patents can push up valuation of any organization. Look at how Oracle is trying to leverage Sun patents against Google Android.

What can be patented?

The common theme is the emphasis on the invention being new and useful. This is where patenting differs from any academic publication where the emphasis is only on advancing the state of knowledge.

Patent rules differ from country to country.

  • In US: Almost anything can be patented as long as it is new – laws of nature, physical phenomena and abstract ideas cannot be patented – see this
  • In India: Software cannot be patented – you need a hardware component as a part of invention

Getting a patent in one country provides protection in that country only. That does not mean that you need to file patent in every country separately. PCT or Patent Cooperation Treaty is an international patent law treaty which provides protection in all the countries signatory to this treaty.

Important point: Patent is always granted to an individual.

Warning: You need to start the patenting process before you invention is shown to others. Anything that is already sold, published or presented to external audience is NOT patentable.

How to go about patenting?

Let me concentrate on the US patenting process.

  1. If you are in the field of IT, the patent will fall under the category of Utility Patent.
  2. You NEED a registered patent attorney – this is where you can find one – India has 6 registered attorneys (2 each in Bangalore, Hyderabad & Mumbai).
  3. There is a searchable patent database – you can search for granted patents as well as patent applications – you can glance through it and get an idea of what patents look like.
  4. Before you can proceed, you need to search the database and see if something similar has been patented – normally this search is done by your patent attorney.
  5. Once you are satisfied that your invention is new you have the choice of either filing for a provisional application which will allow a time of one year to make the final application.
  6. After you have filed the patent the average waiting time is 26 months for the USPTO sends you the first response.
  7. Once your patent is examined, USPTO in most cases will raise a set of objections which you have to counter – average time for this process is about 10 months after the first response.
  8. If you are able to successfully convince the USPTO the indeed your invention is new then you will be granted the patent – you have to pay the patent fee.
  9. You have to renew the patent after 3.5, 7.5 and 11.5 years.
  10. In India, it would cost you around US$ 20,000 in patent fee and attorney fee to get a patent processed.

The USPTO site has a nice dashboard which provides useful statistical information.

 

This is a simplified version of the patenting process as described in USPTO site.

Information Explosion – So What

With the exponential growth of information why are we not paralyzed yet?

IDC had predicted 40-60% Y-O-Y growth of information. This translates to a ten times growth in about 6 years time. Here are some interesting analogies on information explosion from Infographic: The Information Explosion, Forecasts, and the Cloud.

In spite of such growth we still continue to find that piece of information that we are looking for – we still have place to store data, picture, music, and video. We still reply to the important emails and catch up on Facebook. We are still able to afford to store the content within the budget and space constraint.

3 things have saved us! No, cloud storage in not one of them.

Reduction in cost of storage

Storage cost has come down at about the same rate as the rate of increase of the data volume. One seems to have compensated the other. Matthew Komorowski has collected the cost data and has arrived at a formula for cost reduction – see the post A History of Storage Cost and see this post by Volkan Tunalı say that price become half every 14 months.

The reduction works out to about one order of magnitude every 4 years. Here is couple of other documents produced in 1992!

 

Improvement in search technology

Getting Information off the Internet is like taking drink from a fire hydrant … Mitch Kapor

Thanks primarily to Google, we are able to find our needle in the haystack or we are able to drink comfortably from the fire hydrant!

Today we can move away for from the data classification of structured vs. unstructured to:

  • Machine processable data: Such data is typically stored in a database or in a data warehouse. Computer can process, transform, analyze and aggregate such data. All transactional data fall in this category
  • Machine searchable data: Though machine can read this class of data and index it for people to search, computers cannot directly make sense of the data. Documents (word, excel, pdf etc) and web pages fall into this category. The semantic wave or the web 3.0 movement is aimed at making the searchable data into processable data.
  • Machine opaque data: Most of the audio, image and video data falls in this category. For many years now AI community has been working on trying to make opaque data into searchable data. OCR (optical character recognition) and Google similar images is a result of such effort. Opaque data can also be made partially searchable by adding meta-data to it.

Interestingly, the volume of searchable data is an order of magnitude more than processable data and the volume of opaque data is an order of magnitude more than searchable data. Gartner believes that over the next three years video will become a commonplace content type and interaction model for most users, and by 2013, more than 25 percent of the content that workers see in a day will be dominated by pictures, video or audio. (http://www.gartner.com/it/page.jsp?id=1454221)

 

Multi-factor knowledge acquisition

We have entered an era where we have adapted our ability to gather bits and pieces of information from multiple sources and build our understanding or find an accurate answer to a question we are asking. The beauty of this process is that the individual pieces of information may be partial and may even me erroneous. Our brain is able to resolve the contradiction and make sense and learn from this cacophony. This is the best way to combine what computers can do well (index and search) with what human can do well (make sense from multiple, incomplete and even contradictory set of information).

This process is like multifactor authentication where more than one piece of information about user identity is used to get more secure authentication.

Some of us follow this process with our own contributing to this cacophony. We go back and publish our understanding. We curate the content and create new content. As per Business Insider – Content Is No Longer King: Curation Is King.

 

Coming back to cloud storage and for it to remain viable the reduction in the cost of cloud storage needs to be visible.

That is the storage cost should be half every 14 months. However, such trend in not yet visible. I had done an analysis one year back – Cloud Economics – A Platform Comparison. You can use data from that post to do your own calculation.

Agile Trends – Minus the Hype

Surprise, surprises … Agile has never appeared in Gartner Hype Cycle for Emerging Technologies. So, the task of separating the hype from reality becomes simpler. The reality, Scott Ambler says, is that “…you’d have a hard time these days trying to find people who don’t want to be agile…”

Agile is like starfish – you can cut one arm of an (starfish) Agile methodology and let it grow to (a full starfish) a tailored agile methodology to suited for your needs.

Now coming back to question 3 & 4 – [You need to read this post in conjunction with my earlier post where I had raised 4 questions and answered 2 of them].

3. If the current trend continues then where will it be in one year time?

For the majority, there will be 2 distinct style of agile adoption where the focus will be on …

  1. checklist based adoption: as long as you follow a series of steps recommended by the chosen methodology …
  2. iterative development: as long as you develop in iteration where complete specs have not been written down up front …

…it would be deemed that you are following agile methodology.

However, few questions will need to get answered:

4. What happens if you take no action on the specific technology for next one year?

This one is easy – if you take no action then you would have postponed the inevitable by one year.

The good news is that you can do it in your own way – the way that suits you the most.

What is Agile Methodology?

Agile has taken many forms and beyond the Agile Manifesto there is no commonly accepted definition of agile (What is the Definition of “Agile Methodology”?). There are so many different methodologies which are classified under agile – these methodologies have very little in common among themselves except that all of them recommend iterative development lifecycle.

Does any methodology which follows iterative development with evolving requirement become an agile methodology? Is self organizing team a necessity? Forrester, in a survey, has grouped “Lean” and “Six-Sigma” under agile but have a separate category for “Iterative Development”.

Has Agile gone main stream?

Forrester says “Agile Development is rapidly becoming the Norm”. As per their survey report on Agile Development Management Tools, Q2 2010, 35% of the organizations surveyed described Agile as their primary development tool. Another 16% uses iterative development. Waterfall represents only 13%. Here is the chart:

Infoworld.com had asked the question Agile programming 10 years on: Did it deliver? In this interesting blog post by Paul Krill, the answer is mostly on the affirmative. However, in another post
Bob Lewis raises a concern “…I hear about how it’s being taught as a series of steps you have to follow, not as a style of relationship management…”

About Starfish

Starfish (sea stars) are beautiful animals that resemble a star. Like agile methodologies they come in a variety of colors, shapes and sizes. They have the curious characteristics that not only can they regenerate lost arms but also some can even regenerate an entirely new sea star from just one arm and a portion of the star’s central disc.

Here is couple of references: