Devkron Knowledge in Motion


Devkron

Knowledge in motion

Por más de dos décadas hemos desarrollado software, empezamos utilizando Basic, C y ensamblador, luego C++, posteriormente C#, pasamos por Clipper, VB, Java, Javascript, PHP, Python y un sinnúmero de otros lenguajes.

Todo para muchas veces resolver los mismos problemas una y otra vez, tantos proyectos que nunca empezamos (o terminamos) porque estábamos muy ocupados aprendiendo a hacer lo mismo con lo nuevo.

Nos apasiona aprender, pero también queremos ver nuestras ideas ejecutándose hoy cuando más se necesitan, antes que nadie, porque el tiempo nunca está de nuestro lado (y menos si eres desarrollador de software).

No pretendemos ser académicos sino prácticos y pragmáticos.

Por eso, en vez de seguir haciendo lo mismo, decidimos iniciar éste proyecto basado en 5 principios y con 5 objetivos.

Hoy:

Hoy, es mejor que mañana porque es todo lo que tenemos.

5 principios

  1. El software es conocimiento en movimiento

    Cada sistema empresarial, aplicación móvil y en general todo software escrito y por escribirse es conocimiento acerca de algo preservado y ejecutándose infinitamente al servicio de un propósito.

    Cada programa es la representación dinámica de una parte del universo como lo concebimos.

  2. El conocimiento es independiente de la tecnología

    Un sistema de inventarios escrito en COBOL hace 20 años esencialmente es tan importante y útil como otro escrito el mes pasado con C#.

    Claro que con la tecnología de hoy puede ser más amigable, facilitar la colaboración a distancia y utilizarse en una gran variedad de dispositivos, entre otras ventajas, sin embargo el conocimiento acerca del control contable de inventarios es el mismo.

    El punto es reflexionar en el desperdicio que supone construir una casa de ladrillos para un año después derribarla para volver a construirla otra vez con ladrillos, pero con una habitación más.

    Imagine preservar el conocimiento acerca de la gestión de inventarios para usarlo con la tecnología actual y futura, únicamente invirtiendo en el aprovechamiento de las ventajas que cada nueva plataforma ofrece.

    Imagine construir una casa de ladrillos con un robot una sola vez y luego usar ese mismo robot (o uno más moderno) para agregar más habitaciones conforme se vayan necesitando en un terreno infinito de posibilidades.

  3. Todo obedece a un patrón

    La disposición y movimiento de las estrellas en las galaxias o la división celular siguen patrones. La naturaleza es una inmensa colección de patrones que se recrean continuamente a diferentes escalas.

    ¿Ha sentido que programa una y otra vez lo mismo? El mismo comportamiento de un botón ‘Aceptar’ en un diálogo de la interfaz de usuario, la lógica de una transacción de base de datos o el trazo de un vector en un gráfico. Una y otra vez.

    Es como atornillar a mano el mismo tornillo en la misma rosca de la misma pieza una y otra vez.

    ¿Sería mejor usar un brazo robótico con un destornillador adosado en una línea de montaje verdad?

    El cerebro humano ha evolucionado para buscar patrones.

    Identificar y describir patrones para acumularlos y utilizarlos cuando se requiera debe ser natural y fundamental en la construcción de software.

  4. Describir y generar es mejor que programar

    Si se cuenta con un patrón para algo lo mejor es utilizarlo, describa lo que quiere y deje que el software construya software.

    Una computadora no se cansará, no cometerá errores y tampoco necesitará vacaciones.

  5. Diseñar es para humanos, programar para máquinas

    El diseño es una expresión de la creatividad humana, la escritura sin defectos de un millón de líneas de código es antinatural.

    Evolucionamos para encontrar soluciones que nos permitan adaptarnos a los cambios, hacerle frente a desafíos y modificar el entorno. Para ser creativos, no infalibles.

    Hoy difícilmente nos plantearíamos seriamente la posibilidad de escribir un sistema de reservaciones en ensamblador, sin embargo seguimos suponiendo que un programador podrá desarrollar la estructura y comportamiento de un sistema con 400 tablas usando SQL y C# sin perder la vida en el intento (o al menos la juventud y el buen humor si usa Entity Framework :p).

5 Objetivos

  1. Facilitar la descripción y diseño de software
  2. Desarrollar generadores de código
  3. Producir Frameworks y componentes
  4. Aprovechar la tecnología existente
  5. Obtener, preservar, compartir y reutilizar el conocimiento

Volver

¿Quieres comentar algo?

Inicia sesión o regístrate para poder añadir comentarios