martes, 31 de agosto de 2010

Técnica para facilitar la toma de Requerimientos

Durante la etapa de recopilación de requerimientos debemos de obtener el mayor contexto posible,
para lo cual, durante la entrevista con los Stakeholder deberemos de guiarlos a explicarse correctamente.

La técnica es realizar una serie de preguntas que lleven a obtener la información con mayor valor, para ello se clasifican por tipo se explica de manera  breve de porque la pregunta y se da un ejemplo que puede aplicar para lograr mejor entendimiento del requerimiento

Tipo Explicación Ejemplo
Analizar Para Expresar un entendimiento personal de conceptos, hechos y causas Podrías de favor indicarme en que contexto se requiere, con ello puedo tener más claro la idea  
Comprobar Para comprobar que se no se mal entendió Podrías por favor resumirme cual fue tú entendimiento de lo que acabamos de platicar
Clasificar Para organizar los hechos relevantes Sería de mucha ayuda para organizar mis ideas, si de favor puedes clasificarme estos puntos
Comparar Para revelar el conocimiento y entendimiento de hechos similares y echos diferentes Podemos comparar el requerimiento con uno que tomamos anteriormente
Definir Para entender la interpretación de los términos Para que todos entendamos lo mismo, podrás ayudarme a definir este termino
Describir Para seleccionar y definir características que proporciona una condición o una sitiación del proceso Puedes describirme una situación típica donde podría aplicar
Argumentar Para examinar un evento y extender sus implicaciones Revisemos las implicaciones de esta acción y revisemos sus implicaciones
Explicar Aclarar mediante demostración el entendimiento Podrías decirnos como es que llegas a esa conclusión
Ejemplificar Clarificar mediante ejemplo el entendimiento Podrás darnos uno o dos ejemplo de como trabaja esto
Incitar Para obtener mas información Que otra cosa pasa a parte de ello
Que mas pasa
Ondar Para obtener mejor calidad A que te refieres con...
Redireccionar Para cambiar el tema al punto de discusión Muy buen punto, podemos ponerlo en la lista, sin embargo el caso es...
Re-plantear Para demostrar lo que se ha entendido En otras palabras lo que tú quieres decir es...
Revisar Recapitular o cuestionar Podemos revisar los puntos que acabamos de platicar
Verificar Proveer información para sustentar el requerimiento Como podemos verificar que se ha cumplido el requerimiento


fuente: http://www.iag.biz/                                        

jueves, 26 de agosto de 2010

Las 4 fases del Analista de Negocio (Como son descubiertos)

Los Analistas de Negocio (Business Analysts BA’s) pasan por 4 fases hasta que son vistos con claridad por la organización.

La primera fase, la organización se encuentran con los ojos cerrados, los BA’s son imperceptibles a la organización descontrolada, esto se da por el ambiente actual donde cada sistema siembra su propio deterioro y destrucción.


La segunda fase, Los ojos empiezan abrirse, los BA´s son percibidos en blanco y negro, existen procesos declarados, plantillas y lista de requerimientos aislados y sin estructura alguna; ellos son detectados y los proyectos susurran acerca de ellos, ellos no tienen voz en los proyectos o sus comentarios son escuchados pero no se les entienden, el cliente no entiende para que están ahí, solo se percibe que quieren cargar más el costo del proyecto.

La tercera fase, en el movimiento del mundo externo, hace que la organización los identifique y los señale como recurso con habilidades y metodologías, que colaboran para converger las prácticas y tendencias, se ven en color tanto por la organización como por los clientes, se empiezan a trabajar con herramientas más sofisticadas que Excel y Word.

Ellos realizan sorprendentes estructuras para entender las necesidades del cliente, ayudan a entender en base a diferentes modelos la necesidad clave, haciendo más efectivo el trabajo de los demás, se ubican como una comunidad que participa dentro del proyecto.

La cuarta fase, Los BA´s son la fortaleza y los músculos de la organización, su habilidad de abstracción, analítica y creativa facilita las planeaciones y ejecuciones de los proyectos, son colaborativos con otras disciplinas y buscan el bien común, sobre cualquier interés personal, establecen un ambiente de comunicación continuo y de agilidad para alcanzar los objetivos.

Los BA´s son claramente vistos por toda la organización y tienen color, forma y nombre por el cual se les ubica, son entes que tienen presencia y sus sugerencias son seguidas por mejorar la eficiencia de los proyectos.

Cono de Incertidumbre

El cono de incertidumbre en las estimaciones

Podemos definir el proyecto en términos del esfuerzo limitado de tiempo que es requerido para lograr un objetivo. El cono de incertidumbre es la herramienta que utilizamos, consiente o inconsciente, para realizar nuestras estimaciones, llamada en ocasiones margen de error o colchón de tiempo.

La incertidumbre se encuentra en función del nivel de definición de las fases del proyecto, y tiene una repercusión directa en la estimación de costos y plazo de ejecución; estos costos pueden variar desde 0.25x hasta 4x, siendo la “x” el costo real final que solo se conoce con certeza al final del proyecto.

La incertidumbre no beneficia a ninguna de las partes y no hace más que transferir el riesgo de una parte (Cliente) a las otra (Proveedor). Un proyecto que se excede en tiempo y costo solo perjudicará a la parte que asume el riesgo.


La figura muestra el cono de incertidumbre que se tiene a la hora de generar una estimación de desarrollo; en donde el eje horizontal contiene los entregables comunes en el desarrollo, dados en función de los requerimientos

En el eje vertical se muestra el grado de error (o incertidumbre) que puede tener una estimación, creada por personas con habilidades para ello. La estimación representa el alcance en términos del esfuerzo, costo y tamaño del proyecto.


Estrechez del cono de la incertidumbre

Unas de las preguntas frecuentes de los Managers y Clientes es: “¿Si te doy algunos días más para trabajar en la estimación, puede disminuir la incertidumbre?”, lo cual es una petición razonable, sin embargo, no será posible cumplirla; varios estudios han encontrado que la precisión en la estimación de software depende del nivel de refinamiento de los requerimientos del Cliente, así como la efectividad de transmitirlos. Entre más refinados los requerimientos y su contexto, se puede obtener mayor precisión en la estimación.

Los desarrollos de software por naturaleza contienen una variabilidad alta y la única manera de bajar la variabilidad es realizando un proceso de Ingeniería de Requerimientos que controle o disminuya dicha variabilidad, con el objetivo que se tenga mejor certidumbre de las expectativas del cliente.





El cono representa la incertidumbre, que se tiene por naturaleza al realizar la estimación por las personas con habilidades para ello, por lo que es muy factible que el cono sea peor (ver Figura anterior) cuando las personas que realizan las estimaciones no tienen las habilidades adecuadas para ello. Es imposible tener mejor exactitud solo es posible tener mejor suerte
La estrechez del cono puede eliminar variabilidad en función de la metodología y prácticas que se sigan, por ejemplo; definir el Documento de Visión, Modelo de contexto, Prototipos (o Wireframes), entre otros, pueden ayudar a estrechar la incertidumbre del cono, ya que ayudan a disminuir los riesgos causados por un pobre nivel de detalle de los requerimientos que entran.

Es importante mencionar, que no se intenta detallar el producto entero, sino lo mínimo necesario para reducir la estrechez


Relación entre el cono y el compromiso

Las compañías de software inapropiadamente sabotean sus propios proyectos al comprometerlos al inicio del cono de la incertidumbre. Si una organización se compromete en la etapa de concepto inicial o durante la definición del producto el factor de error está estimado entre 2x y 4x.

El comprometerlo al principio del cono, hace que el proyecto tenga una predictibilidad indeterminada, incrementando el riesgo, la ineficiencia del proyecto, el deterioro de la administración y el éxito del proyecto.

Por lo que se recomienda que el compromiso no se realice en dichas etapas, donde la amplitud del cono hace que las organizaciones sean ineficientes y absorban los riesgos de ello.

Un buen punto para realizar compromisos puede ser, donde la incertidumbre del proyecto esté cerca del 30% (1.3x), en dicho punto se tiene un mejor control y monitoreo de los entregables y avances del proyecto, mejora sustancialmente la eficiencia de los equipos involucrados en el desarrollo

Referencias


http://www.construx.com/Page.aspx?hid=1648


http://www.measurecontrol.com/cono-de-incertidumbre/

jueves, 8 de julio de 2010

The Role of Architecture in Business Analysis

Michael Rosen
May 2007
Summary: Understand the architecturally significant aspects of business analysis on which a project architect should focus. (6 printed pages)

Contents

Introduction
Northwinds Trading Gets a Business Model
What Is Business Analysis?
Review
Critical-Thinking Questions
Sources
Glossary

Introduction

Imagine yourself on an assignment at Northwinds, an options-trading company. They have brought in your team to help upgrade the critical applications used day in and day out by the traders. As new kinds of options and other financial instruments are created, the old, inflexible applications are breaking under the pressure for change and integration. Today is an important day, and your trepidation peaks as you pull into an empty spot in the parking lot. As you look around, you notice that your car is the cheapest vehicle in the lot, which is dominated by BMWs, Porches, Jaguars, and the occasional Bentley. These guys make a lot of money, and they don't have a lot of time or patience for "theory," "architecture," or excuses.
Still, you know that, to meet the new regulatory and conformance requirements, and to achieve the goals of common processing and reporting, you will need to have both a business model and a technical architecture.
The business model defines the processes and entities of the business, and identifies what must be common to meet the new system requirements. The technical architecture will define patterns for implementing the business on a common technology platform. It will have to support the business architecture; but, on the Northwind project, the business model—not technology—is your focus and responsibility.

Northwinds Trading Gets a Business Model

Today is the day of the first "business-modeling" session. It will be attended by the IT group's business analysts, as well as by a few senior traders forced to attend. You kick off the meeting with an overview of the goals and a brief introduction to what a business model will look like. A prepared poster on the wall acts as a key to three concepts that will be used in the exercise; and, quickly—before any eyes can glaze over—you jump right into creating the first model on the whiteboard.
At first, the model seems to be obvious and simple, as you illustrate the basic modeling concepts. But, based on upfront preparation, you start to dig into the details with some careful prodding and questioning. Pretty soon, you hit pay dirt. Two of the senior traders are arguing over what something means or the way it works. As you facilitate a discussion to get to a common understanding, you model the solution on the whiteboard—essentially, documenting the agreement. When the main details are worked out, it's time for a coffee break and to reiterate what has been accomplished over some casual conversation. After the session, you transcribe the whiteboard contents into formal models in an appropriate tool.
So, what has been accomplished? It's much more important than the simple start of a business model. You have demonstrated two critical values of the business models themselves. First, you have exposed the fact that, although the experienced and senior people might have thought they knew how things worked, at best, they discovered that they had differing conceptions. Secondly, you have shown how a simple and easy-to-understand—but formal—model can document the business unambiguously.
Over the next few weeks, the modeling sessions increase to two mornings a week, in order to meet the deadline and expanded scope. Before each meeting, you publish the models from the previous meeting. Over time, you introduce two or three more important model concepts (with updated posters). Another interesting thing happens. More senior traders begin to participate—both to learn and to make sure that their understanding of the business gets represented in the model. People who make $500,000+ per year and have no patience for technology are willingly attending your business analysis and modeling sessions!
Fantasy? Other than the fictitious name, this is exactly what happened on my project with an options-trading company. The activity not only produced definitive models of their business, but it also provided the project team with the information and process models they needed to understand the requirements for this and future projects and optimize their implementations.
How did we make that happen?
  • Well, first, never assume that business people are stupid or too dumb to understand. Financial options are among the most complicated things I've ever worked on. Those traders were really smart; they just didn't care about the technical details.
  • Keep models simple, by limiting the concepts to a very few. We represented the business concepts and entities in pared-down UML class diagrams using only specialization, composition, and dependency relationships. [ISO/IEC 1996]
  • Start small. Demonstrate value, and build from there. This cannot be stressed enough. You must demonstrate value—for example, by showing how the modeling activity can expose and resolve differences in understanding of the business.
  • Focus on the important things. Any of you who have teenage children understand the wisdom of the saying, "Pick your battles." Architecture is no different. An architect must focus on the aspects of the business that need to be common. Do not try to create an enterprise definition of everything. I cannot think of a single enterprise-wide data-dictionary–type of project that ever worked. Instead, identify the subset needed to support the enterprise business requirements, focus on them, and forget about the rest. At Northwinds, we identified only what needed to be common to support regulatory compliance and some specific application-integration scenarios.
  • Know your audience. Talk business to the business people and technology to the IT people. In our business-modeling sessions, we never once discussed how the concepts would be implemented or what technologies, platforms, or systems would be used. But, if you are going to have any credibility, you sure as heck had better be able to talk about those things to the project team.

What Is Business Analysis?

So, what is business analysis (BA), and how does it relate to the job of an architect? According to the International Institute of Business Analysis [IIBA 2006]: "A business analyst works as a liaison among stakeholders in order to elicit, analyze, communicate, and validate requirements for changes to business processes, policies, and information systems. The business analyst understands business problems and opportunities in the context of the requirements and recommends solutions that enable the organization to achieve its goals."
In other words, the business analyst acts as a bridge to convey requirements between the business customers and the project-development team. However, the architect is not the same as the business analyst. The architect has a different set of goals and responsibilities. Architecture is not about building a single application, but instead about establishing commonality, such as technology platforms, business entities (like customer), and business processes (like compliance) across multiple applications that are part of a bigger picture. Like the business analyst, the architect acts as a bridge to the individual projects. Those who are tasked with an individual project cannot be expected to know or care about the bigger picture. Instead, the architect has to help the project team and business analyst incorporate the big picture into the current project-analysis activities.
Wikipedia [WIKI 2006] has this to say: "Business analysis, as a discipline, has a heavy overlap with requirements analysis, but focuses on identifying requirements in the context of helping organizations to achieve strategic goals...".
While both BA and architecture are about achieving strategic goals, BA is more focused on the identification and specification of requirements within that strategic context, while architecture is more focused on identifying and specifying those things that must be common across applications to achieve the business and enterprise goals. Obviously, there is overlap, and architecture must work closely with BA in integrating the enterprise requirements into its understanding of the business as a whole. This will call on the architect's ability to talk about technology concerns in a business context.
The business analyst and architect also intersect in the areas of analysis, documentation, and communication of the requirements. Here, architects can bring their analytical skills to bear in applying separation of concernsabstraction, and identification of roles and responsibilities to create formal, unambiguous, and implementable models of the requirements.
A business analyst is responsible for creating a business model that conveys the business requirements. Unfortunately, there is not really a universal definition of what a business model is. Some business models include goals, organization, key performance indicators, and other high-level concepts. Other models include value chains and business-context diagrams. Yet others contain use-case, business-process, and business-entity or information models. The higher-level models are important for setting the overall enterprise context and are often created by business architects, while business analysis is more project-focused and often produces the last set of models mentioned earlier. We sometimes call this set of artifacts a domain model. For example, the Rational Unified Process [RUP 2001] states: "A domain model provides 'the big picture' of a complex organization. It shows the major business entities, their functional responsibilities, and the relationships among the entities."
The architect has two important contributions to the business or domain model. First, the architect acts as a bridge between the enterprise requirements and the project-specific business requirements. Secondly, they formalize requirements into business models. The exact format of the business model is less important than what it achieves: the specification of business and enterprise requirements, independent of implementation technologies. The attributes that make for good requirements [McEwan 2004] apply also to good business models. Some important attributes of a good business model are that they are:
  • Unambiguous. If anything can be interpreted in more than one way, it will be—resulting in inconsistent behavior and information.
  • Complete. The model must specify the business rules, processes, and information required to build the system. The architect must ensure that this includes everything that needs to be common across applications. However, do not confuse completeness for detail. The model should contain business information, not implementation detail.
  • Consistent. The business model must be consistent with both itself and the enterprise requirements. In addition, it must be kept up to date, as requirements evolve during project implementation.
  • Traceable. Processes and entities in the business model should be traceable back to requirements.
  • Agnostic. The business model is a statement about the business and specifies what will be implemented. The solution model is a statement about the system and specifies how it will be implemented. You must maintain this important separation of concerns.
The models that we created at Northwinds provided an unambiguous definition of the options-trading business at that company. They were complete in specifying all of the information that needed to be identified and shared to meet the business and enterprise requirements, but they were not overly detailed. We assured consistency and traceability through our analysis process that produced the models and kept them free of implementation detail. Then, we worked with the development team to help them use the models in their development activities.
Although the underlying technologies and applications have changed several times since the original project six years ago, the business models are still in use today and are still providing value. Our team of architects and business analysts worked together with the customer's subject-matter experts to produce the models. The business analysts provided the business knowledge and primary interface with the customer, and the architects provided the critical-thinking and formal-modeling skills necessary to produce the models and to interpret them for implementation across multiple projects. Never forget that an architect's job is not to create architecture, but instead to help development use the architecture to create better applications that fit within a larger context.

Review

Business analysis is the elicitation, collection, and specification of requirements. It is a critical component of the success of any project. Although the business analysts should be putting those requirements into a strategic context, their primary responsibility is for the project. The architect, on the other hand, is responsible for thinking across projects and interjecting enterprise requirements into the business-analysis activities—that is, acting as a bridge between enterprise and project concerns. In addition, an architect can help to better express requirements, in terms of formal models that can be unambiguously implemented by the project-development team.

Critical-Thinking Questions

When involved in business analysis and development of a business model, the architect should keep a few critical questions in mind.
  • What information or processes must be specified to meet the cross-application requirements? How is it reflected in the model?
  • What is the minimum amount of information necessary to convey the requirements? Does the model specify enough? Are all business rules, shared information, and common processes identified? Does the model try to specify too much?
  • Does the model separate business from technology concerns? Is it simple enough to be understood by the business subject experts?
  • Is the model internally consistent? Does it provide a consistent level of abstraction and detail? Is it the right level?
  • How will the business model provide value to the project and the development team? Can it be implemented? Is the prioritization of activities correct?

Sources

Glossary

Abstraction—Generalization of content and/or suppression of unrelated detail to allow for a broader view, reduce complexity, or focus on a specific viewpoint.
Business analysis—Elicitation, collection, and specification of requirements to meet business, project, and strategic goals.
Business model—Defines the processes and entities of the business, and identifies what must be common to meet the new system requirements.
Domain model—Provides "the big picture" of a complex organization. Shows the major business entities, their functional responsibilities, and the relationships among the entities.
Separation of concerns—One of the most fundamental principles of architecture. Identifying and keeping independent things uncoupled and independent, so that changes in one do not affect the other adversely.

About the author

Mike Rosen has 25 years of software experience as a developer, product architect, application architect, and enterprise architect. He is a practicing architecture consultant, speaker, and author, as well as Director of Enterprise Architecture for the Cutter Consortium and Co-chair and Editorial Director of SOA Institute.
This article was published in Skyscrapr, an online resource provided by Microsoft. To learn more about architecture and the architectural perspective, please visit skyscrapr.net.