Primeros pasos
Por donde comenzar?
Es la pregunta de mis alumnos, la respuesta es simple:
-
Requerimientos
-
Planificación del proyecto
-
Análisis y diseño de la arquitectura del sistema
-
Diseño del plan de pruebas de la arquitectura
-
Análisis y diseño del framework base
-
Diseño del plan de pruebas del framework base
-
Análisis y diseño del API del sistema
-
Diseño del plan de pruebas del API
-
Creación del plan de desarrollo usando SCRUM
-
Programación y pruebas unitarias del framework base
-
Programación y pruebas unitarias del SDK para la construcción del sistema
-
Programación y pruebas unitarias del sistema
-
Pruebas del sistema
-
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.