Primeros pasos

Por donde comenzar?


Es la pregunta de mis alumnos, la respuesta es simple:




  1. Requerimientos


  2. Planificación del proyecto


  3. Análisis y diseño de la arquitectura del sistema


  4. Diseño del plan de pruebas de la arquitectura


  5. Análisis y diseño del framework base


  6. Diseño del plan de pruebas del framework base


  7. Análisis y diseño del API del sistema


  8. Diseño del plan de pruebas del API


  9. Creación del plan de desarrollo usando SCRUM


  10. Programación y pruebas unitarias del framework base


  11. Programación y pruebas unitarias del SDK para la construcción del sistema


  12. Programación y pruebas unitarias del sistema


  13. Pruebas del sistema


  14. Programa piloto de uso

Suena largo y extenso, si, pero es la única forma de tener un sistema comercial.


Que diferencia un sistema comercial de un sistema interno de una empresa? La respuesta es el número de usuarios y el costo de soporte, en un sistema comercial el precio de venta está definido por mercadeo, el costo de soporte está supeditado a la calidad del sistema, menor calidad mayor costo de soporte, por eso los esquemas de open source que algunas organizaciones ponen en su desarrollo, el costo del soporte lo comparten con los usuarios … en realidad son subsidiados por ellos.


La otra diferencia es la durabilidad de un sistema comercial, conozco productos de software que tienen mas de 10 años de uso, con mejoras contínuas, donde la primera versión no tiene relación con la última, desde el punto de vista del usuario, pero tiene un gran porcentaje del mismo código fuente desde el punto de vista de los programadores.


Otro punto importante es la documentación para el usuario, el control de calidad del producto y el soporte al usuario final. Los productos mas exitosos en el mercado no han sido los mejores sino los que cuentan con mejor soporte.


Por años he escuchado la misma opinión de gerentes generales y gerentes de tecnología: “no es el mejor producto, pero tienen el mejor soporte” y pagan por eso.


Requerimiento 1: El sistema debe estar enfocado a pequeñas (< 10 usuarios) y medianas empresas (< 50 usuarios). Dando todas las facilidades para la operación diaria y facilitando el crecimiento de la solución hasta cubrir las necesidades de la organización.


Nota 1: Lo que cuenta son los usuarios del sistema, no los empleados o los montos de la organización. En la actualidad un pequeña empresa puede tener cientos de empleados (factorías, tercerizadoras, agrícolas, distribución) y solo unos pocos usuarios del sistema.


Requerimiento 2: El sistema debe estar enfocado en la operación diaria de la empresa, no en el seguimiento de transacciones. Todo debe estar enfocado en la administración del proceso.


Requerimiento 3: Todo el sistema debe ser declarativo, configurable y modificable por el que instala o por el usuario final.


Requerimiento 4: Todo debe tener un “wizard” para facilitar el proceso de creación de componentes como empresa, usuarios, productos.


Requerimiento 5: Debe existir una versión de 1 usuario que utilice pocos recursos, pero que se integre con la versión general.


Asi que, tenemos que empezar por la arquitectura de la aplicación y que herramientas vamos a usar.


Por que .NET?


La razón es simple, me gusta .NET. He trabajado con productos de Microsoft durante años y ésta es la primera vez que estoy de acuerdo con Microsoft: .NET es una maravilla (comparado con lo anterior de Microsoft) y tengo acceso a las herramientas y componentes.


Herramientas 


Microsoft .NET Framework 3.5, Visual Studio 2008, SQL Server 2008.


Red-Gate Sqltoolbelt, Embarcadero ER-Studio, VersionONE


TODO COMENTARIO ES BIENVENIDO.


 


 

4 thoughts on “Primeros pasos

  1. Ivan, situas Scrum en la novena posición, cuando en scrum se comienza en los requisitos o incluso antes, en el plan de negocio y las prueba unitarias en la 9 posición, entiendo que estas se deben crear durante todas las fases del desarrollo, es mas existen buenas practicas que incluso pasan por desarrollarse antes que el propio programa, no se si la posición es algo indicativo ?

    Desde luego las herramientas estan muy bien, yo te recomendaria Resharper y CodeRush para mejorar la escritura de código y por supuesto la adopción de fxcop desde el principio.

    Muy interesantes los post sobre aplicaciones reales, saludos.

  2. Interesante post, yo he utilizado el ER-Studio con muy buenos resultados. Ojalá que comentes mas acerca del requerimiento 4, ¿Qué herramienta usarías para crear los ‘wizards’?.

    Saludos

  3. No se si el orden que has puesto es correcto, por ejemplo Scrum comienza al inicio en los requerimientos, para mi podria empezar incluso antes, en el diseño del proyecto o el plan de negocio.

    Yo te recomendaria la adopción de fxcop desde el comienzo y la utilización de herramientas como resharper o coderush que te avisaran de errores en la escritura de tu código y cuenta con varias utilidades que permitiran escribir más rápido.

    Muy interesante tu post. Salu2.

  4. El orden puesto es debido a una realidad de este proyecto, los 8 primeros pasos son conceptuales, en una organización existente, las definiciones de herramientas, framework, api ya existen.
    En este proyecto solo tengo en este momento un esquema mental que debo construir y con apoyo, el llegar a un producto.
    EL proceso real de construcción empieza en el punto 9, con el SCRUM, donde se organizaría como primer story del primer sprint el plan de negocio y la amplitud del primer release.
    Podría decir que los 8 primeros pasos son del “cliente”, y desde el 9 del proveedor de servicios de tecnología.
    Y por eso los requerimientos son tan generales, en realidad son requerimientos de arquitectura, no del producto.

Leave a Reply

Your email address will not be published. Required fields are marked *