DSN_XP y el tablero de ideas

DSN_XP.Tablero



Necesitábamos un tablero de ideas para organizar formalmente los lineamientos propuestos por DSN_XP como escuela de pensamiento sobre el diseño de software en Ecuador.

Decidimos aplicar DSN_XP para hacer ingeniería inversa a DSN_XP como metodología de investigación científica del software.

La idea de crear un tablero como blog fue posible gracias a las sugerencias de varias personas que desean seguir nuestras ideas ya sea por curiosidad, porque les parece interesante, porque necesitan referencias, etc.

Tablero

  • Este blog está escrito en español porque toda la información técnica acerca del software usualmente suele estar escrita en inglés y es necesario para América Latina propagar el conocimiento en español :o)
  • Este blog está dedicado a publicar nuestras investigaciones (desde el año 2003) sobre la ingeniería de software y recopila todos aquellos comentarios teóricos que hemos publicado en varios sitios de la Internet, esperamos que nuestras investigaciones sean de apoyo para nuestros lectores y usuarios.

DSN_XP


  • DSN_XP es un marco de trabajo que originalmente fue creado para aplicar ingeniería inversa al diseño y desarrollo de software (esto es ingeniería de software)
  • Como el software se ha convertido en una herramienta fundamental para los negocios, por extensión también probamos que DSN_XP puede aplicarse para la ingeniería inversa al mundo de los negocios
  • Una vez que aplicamos DSN_XP tanto al diseño de software como al diseño de procesos del negocio, pudimos aplicar DSN_XP al estudio del comportamiento humano y el proceso del pensamiento en base al diseño de modelos (a esto lo denominamos como perspectivas)
DSN_XP como metodología (estudio del método) tiene la capacidad de adoptar cualquier artefacto definido en otros métodos y recomendar su aplicación en cierto contexto de uso. DSN_XP utiliza un marco de trabajo basado en los principios propuestos por el manifiesto ágil.

DSN_XP es un producto Ecuatoriano y por lo tanto en espíritu es libre por lo cual recomendamos su utilización para consultas o soporte teórico en la ingeniería de software.

DSN_XP y las triadas o la Ley del 3

Triadas

Tres dimensiones en una

DSN_XP inicialmente como metodología (estudio del método) profundizó el método científico como la herramienta necesaria para poder sostener todos los argumentos requeridos para la concepción filosófica de nuestro marco de trabajo, en especial en la versión 1.0

Creatividad y el pensar

Cuando empezamos a investigar sobre los factores de la creatividad que existían en los diseños codificados de los programadores, pudimos observar la presencia de lo que denominamos como estructuras mentales de pensamiento conocidas como systematics o el estudio de las dimensiones del pensamiento para DSN_XP.

Al buscar los componentes filosóficos que sintetizan el procedimiento de utilizar un lenguaje de programación para estructurar ideas abstractas y con ello poder captar un escenario y luego procesarlo mediante la relación software/hardware, exigía la presencia de nuevas herramientas para la comprensión del fenómeno ya que implicaba por defecto, el estudio de la mente y el proceso cognitivo más un conjunto de marcos de trabajos relacionados con algoritmos, modelizados, estructuras de control, dependencia de fenómenos no conocidos previamente, etc.

El software como artesanía o receta

Un primer acercamiento al modelo científico fue desplegado gracias a las investigaciones del grupo KYBELE, este hecho nos puso de frente a la necesidad de buscar raíces más profundas en la filosofía para comprender justamente los principios del método de razonamiento y la experimentación, dos momentos dentro del proceso de la creatividad del programador y el denominado modelo básico de programación que nos fuera enseñado en las aulas y que se trataba del modelo codificar y corregir.

Al entrar de lleno entonces en el mundo de la filosofía, entendíamos que definir un marco de trabajo para desarrollar software se volvía un tema más complejo que la definición de un modelo del ciclo de vida del desarrollo de software, esto es así porque desde los inicios de la ingeniería del software, los artefactos de diseño fueron tomados prestados desde otras ciencias y adaptados en conjunto con otras tecnologías.

La raíz del mirar DSN_XP

Teníamos como DSN_XP el objetivo el determinar la eficiencia de la experimentación, como uno de los procesos naturales que sostienen la creatividad y el diseño básico soportado por nuestro modelo, esto nos ponía como método de desarrollo de software, entre las escuelas de diseño más criticadas en la década de transición hacia el 2000, ya que se exigía de la industria del software la predictibilidad del software que fue demostrada en su proceso de inserción gracias a la revolución tecnológica y las supercomputadoras para el cálculo estadístico.
La experimentación, como método intuitivo y personalizado del programador era el resultado de todo un proceso de transformación y avance de la tecnología electrónica aplicada al procesamiento de datos, este proceso de diseño se puede comprender cuando se profundiza en el estudio del software como tecnología y no como ciencia, nuevamente, esta observación ya fue estudiada por KYBELE, pero no resuelve el proceso de aprendizaje basado en el error que implica el modelo de codificar y corregir que se vuelve experimental para el programador.
Esta observación de separar la parte blanda del diseño del software de su parte dura por implementación, implica dentro del estudio filosófico del diseño del software a aquellos conceptos de diseño como la ocultación de información y el encapsulado, fenómenos que la ciencia y sus métodos no soportan por concepto de la presencia del cambio en el modelo (falsación) que pondría en evidencia la robustez de la teoría producto resultante del método científico.
Dada esta restricción en nuestro proceso de investigación del software, recurrimos a la lógica dialéctica para el estudio del diseño de software, en especial, del proceso de impacto en el diseño debido al cambio como producto de un aprendizaje en el proceso de abstracción del problema y su solución. 

Más allá de una dualidad

DSN_XP estudia a las triadas como una estructura mental que permite el proceso de abstracción de forma diferente al proceso dual; el ser humano constantemente recurre a la dualidad para abarcar un concepto o evento, esto es así ya que pensamos en extremos para cuantificar diferencias como medio de abstracción, ejemplo: bueno y malo, día y noche, arriba y abajo, si y no, etc., 

En cualquier cosmología o sistema total, existe una diada básica de lo Absoluto y lo Relativo, donde hay manifestación, lo relativo es triple. Por lo tanto, siempre podemos hablar de cuatro mundos o de tres mundos inmanentes en un mundo.  En la tradición hindú esto está de acuerdo con la doctrina Samkhya de las tres gunas, En cosmología de Bennett, las tres gunas corresponden a función, ser y voluntad.

Sólo existen pocos modelos en los cuales de forma natural se recurren a tres (3) dimensiones en una, por ejemplo: largo, ancho y profundidad, ayer, hoy y mañana y sólido, líquido y gaseoso como los únicos ejemplos de triadas, lejos de este punto se concluye que la mayor parte de abstracciones son de tipo dual o basadas en imágenes, fotografías o registros que no pueden incluir la tercera dimensión porque no es visible para este razonamiento 

El estudio de las estructuras mentales del pensamiento como elemento fundamental para el uso de [Perspectivas] dentro del #TEAMVIEW.

Las triadas permiten obtener el pensamiento inverso que se requiere para modelar algo, en la Ingeniería Software existen varios artefactos basados en la noción de triadas, esta sección justamente se dedica a identificar y analizar dichos artefactos con el pensamiento basado en triadas :o)

El sistema basado en triadas relaciona la acción, la relación misma y el escenario de vida en el que se manifiesta, la orientación a objetos contempla también este aspecto al abstraer un acción como el resultado de un procesamiento de acuerdo a un evento en particular, es por esta razón que preferimos al esoterismo sobre el método tradicional en la investigación científica para el diseño del software, ya que es en base al esoterismo que nos es más transparente explicar los conceptos de la orientación a objetos de forma académica, esto es DSN_XP.


El primer acercamiento formal antes del esoterismo que DSN_XP contactó fue una acercamiento sobre ingeniería de software en un foro de discusión, en el cual preguntábamos sobre una nueva forma de aplicar un método basado en triadas al estudio del software.


Descubrimos que la escuela de pensamiento que soportaba los argumentos de mi compañero de foro denominada Unicismo utiliza una muy interesante combinación sobre las triadas que se explicarán en otro post a futuro, también esto nos llevó a conocer las fuentes de la sabiduría ZEN y el Cuarto Camino :o) 

El unicismo aplica el concepto de triada para describir y comprender un sistema, ya que cualquier sistema está integrado por un propósito, una función activa y una función de conservación de energía para asegurar los resultados. 

Ejemplos triádicos aplicados al estudio ontogenético funcional o enfoque funcionalista:
  • La función activa y la función de conservación de energía de la inteligencia de un árbol impulsan su crecimiento y supervivencia. 
  • La elevación y propulsión hacen que los aviones despeguen y vuelen.
  • La música y la letra de una canción definen su estética.

La naturaleza del software y su triada de computo



La naturaleza del desarrollo de software y su triada de uso



El uso de las triadas en la gestión de proyectos de desarrollo de software


Existen tres fuerzas básicas detrás de un proyecto, cualquier alteración a una de estas fuerzas se propaga en las otras dos, la conjugación correcta de las mismas determina la calidad del producto final.

Cada fuerza es asociada a una variable de cálculo, el tiempo se convierte en cronograma, los recursos en costos y el alcance en funcionalidades, la resultante se mide en el éxito o fracaso del proyecto.

El equipo de desarrollo es responsable del alcance, el tiempo y los recursos son asignados al cliente, el proceso creativo del software tiene que ser transformado en retorno de inversión de acuerdo al esfuerzo aplicado a una funcionalidad específica.


Existen tres fuerzas básicas detrás del diseño de un producto, cualquier alteración a una de estas fuerzas se propaga en las otras dos, la conjugación correcta de las mismas determina la demanda del producto final.

Cada fuerza es asociada a una variable de cálculo, el producto se convierte en esfuerzo, el mercado en ingresos y las administración en costos, la resultante se mide en el éxito o fracaso del producto.

El equipo de desarrollo es responsable del producto, la administración y el mercado son asignados al cliente, el costo de fabricación del software tiene que ser transformado en la optimización de recursos de acuerdo al esfuerzo aplicado a una funcionalidad específica.


Existen tres fuerzas básicas detrás de un proyecto software, cualquier alteración a una de estas fuerzas se propaga en las otras dos, la conjugación correcta de las mismas determina el entorno de trabajo.

Cada fuerza es asociada a una perspectiva de interés en el éxito del proyecto, el software determina la usabilidad, el business determina el factor de oportunidad y el team determinan el compromiso de cada uno de los miembros del equipo multidisciplinar.

El adecuado proceso de estimación de esfuerzos tiene que ser equilibrado para evitar cansancio en el team (sobrecarga de trabajo) ya que un equipo cansado y no motivado repercute en el entorno de trabajo, en la calidad del producto y en la entrega a tiempo de las funcionalidades.


Existen tres fuerzas básicas detrás de un proyecto, cualquier alteración a una de estas fuerzas se propaga en las otras dos, la conjugación correcta de las mismas determina la usabilidad del producto final.

Cada fuerza es asociada a una fuente de información, el stakeholder provee las necesidades de requerimientos para la toma de decisiones, el usuario provee el conocimiento y el proceso que se desea abstraer, el desarrollador provee las mejoras al proceso y la simplicidad de la herramienta.

Es responsabilidad del equipo de desarrollo el comprender y balancear estos requerimientos en funcionalidades y servicios para el uso correcto del producto.


Existen tres fuerzas básicas detrás de un producto, cualquier alteración a una de estas fuerzas se propaga en las otras dos, la conjugación correcta de las mismas determina la calidad del producto final.

Cada fuerza es asociada a un factor de diseño, las historias de usuario capturan las necesidades del producto por parte de los usuarios (retorno de inversión), los criterios de aceptación capturan las necesidades del stakeholder principal (priorización) y las sentencias de trabajo definen sin ambigüedades las especificaciones del software (esfuerzo).

Es responsabilidad del equipo de desarrollo el verificar que cada historia posea los tres indicadores para una adecuada gestión del proyecto.

La triada de la permacultura

Tenemos el cuidado de la tierra, el cuidado de la gente y la repartición justa

La triada de la actitud

Tenemos el pienso, el quiero y el hago

La triada de la ética

Tenemos el crecer por mi, el crear por los demás y el cocrear por el mundo

La triada de la calidad

Procesos, entendiéndose como el conjunto de actividades en cierta secuencia que permiten alcanzar un objetivo, usualmente si el proceso no se encuentra bien definido o diseñado, estos aspectos tienen su impacto en la medición de la calidad del software.

Personas, es tal vez el elemento más complicado del desarrollo del software ya que son las personas las que interactúan con el producto software y determinan el conjunto de atribuciones externas que en conjunto definen la calidad del producto.

Producto, entendiéndose este como el objeto de análisis de los factores de la calidad de acuerdo a la injerencia de los otros dos elementos a todo el proceso de desarrollo de software.

La triada de los lenguajes en la solución de problemas

Este es un material que hemos tomado prestado de la base de conocimientos de LeanSight y hace referencia a las tres perspectivas que existen en el desarrollo de soluciones y casi de forma específica en el desarrollo de software.

La triada de la planificación ágil

Este es un material que hemos tomado prestado de Roman Picher respecto al Rol de Product Owner y que contempla la perspectiva táctica o el conjunto de actividades para concretar algo para luego contemplar la perspectiva estratégica de la situación y finalmente contemplar la perspectiva de una visión compartida para la organización.

DSN_XP y su herramienta Taladro

Herramientas DSN_XP


Principio básico del Observador es confrontar las nociones de adentro y afuera de sí 
Las metodologías en el estudio del método, requieren para efectos de su operatividad de un conjunto de herramientas como artefactos y modelos que permiten en su aplicación, la obtención de la información.
Cuando iniciamos nuestro estudio del software y su proceso de creación, este esfuerzo requería de investigación tanto a nivel de la ingeniería de software como a nivel de su desarrollo localmente en Ecuador y desde una mirada como academia dentro de la formación profesional en universidades de quienes crearían este software.

El método de investigación temática


DSN_XP diseñó este artefacto para poder realizar prototipos mentales sobre el conocimiento de una cosa o de un evento.  El proceso de investigación científica aplicado al diseño del software utilizado por DSN_XP, requiere de una apropiada herramienta que nos permita realizar una minería de información en el vasto contenido publicado en la Internet. 

DSN_XP como método de investigación científica, obtiene su base de conocimientos académicos tanto de libros especializados como de la Internet (incluyendo sus redes sociales), DSN_XP por el principio de ingeniería inversa, requiere además del conocimiento académico, del conocimiento experimental que no necesariamente se basa en la opinión de alguien muy versado en tema o concepto investigado conocido como "Gurú", sino que recoge en sí mismo la noción de fallar como premisa del método y su modelo "codificar y corregir", actividad que denominamos en sintaxis como desarmar() y armar().

Proceso de abstracción en la definición del requerimiento


Por asociación, llamamos "El taladro" al artefacto que posee dos movimientos (BottomUp / TopDown) en el proceso de abstracción para el diseño de software y lo implementamos en su sintaxis como drillUp() y drillDown() 

Ahora bien, ¿pueden funcionar de forma independiente entre sí estos dos movimientos?... 

La respuesta es "depende" del contexto de uso en el cual estamos trabajando, sin embargo, hemos descubierto que para un mejor diseño, se requiere inevitablemente aplicar los dos movimientos pues se complementan entre sí.

El Taladro by DSN_XP

Esta herramienta propuesta por DSN_XP es un "taladro" cuyos dos movimientos permitidos son la profundización o drillDown() y la abstracción o drillUp(). Nos dió el principio de los posibles movimientos del taladro y que puede aplicarse en cualquier dirección y de forma directa o drillDown() o de forma inversa o drillUp().
  • drillDown() significa que el lector desea conocer más sobre el contenido de un post en especial, por lo cual tiene que profundizar sus lecturas hacia los orígenes de las fuentes (DSN_XP.Source), para ello dispone de una base de conocimientos de referencia.
  • drillUp() significa que el lector está en la capacidad de generar un modelo y poner a prueba DSN_XP, registrando todos los puntos e inquietudes que pueda tener al respecto en la base de conocimientos.
Estos dos movimientos son básicos en el método científico aplicado al estudio del diseño de software.