Supongamos que tenemos que desarrollar una aplicación a medida para un cliente importante.
¿Qué pasos deberíamos seguir?
Existe gran cantidad de información al respecto. Y casi toda esta información coincide con la afirmación del título de este post.
Sin embargo, quiero centrarme en 2 típicos casi tópicos errores que cometemos los programadores relacionados con el análisis:
- Tenemos la mala costumbre de intentar añadir a la aplicación más funcionalidad de la que nos solicita el cliente.
- Somos excesivamente impacientes y no completamos exhaustivamente o repasamos nuestro análisis en la búsqueda de incoherencias antes de escribir la primera línea de código.
Es más, cuanta más experiencia atesoramos como programador es más fácil que comentamos estos errores comentados.
¿Acaso no sabemos de sobra que cada hora que dedicamos al análisis estamos ahorrando un montón de horas de programación?
¿Acaso no sabemos que para una aplicación es tan malo lo que falta como lo que sobra?
Pues sí, lo sabemos pero nuestro ego o nuestras ganas por disfrutar haciendo lo que mejor sabemos hacer nos lleva a errar. Sin embargo, a todo se aprende.
La reflexión final es que, antes de escribir la primera línea de código de un nuevo proyecto, verifica tres veces al menos, que tienes perfectamente documentado el análisis y que no hay nada más que puedas añadir y, por supuesto, que no hay ningún punto del mismo que no tengas claro como implementarlo. En caso contrario, sigue analizando y no abras el editor.
Analizar bien es una virtud. No programar hasta que tengas completamente desarrollado el análisis es un grado superior de virtuosismo.
Reynaldo Villarreal dice
Hola, Soy ingeniero de sistemas y tengo problemas con mi jefe pues el no entiende que una buena aplicación surge de un buen análisis….ademas me dice que en su empresa no hay tiempo para análisis de lo cual no estoy de acuerdo!!!!! pero el no entiende!!!!
muy bueno este pos despues de leerlo me doy cuenta lo importante que es el analisis
gracias….por favor apoyemos la realización el análisis de una aplicación
dhoars dice
ps no sivio de nada mi profe el zombie me agaño i me dijo q esta mal
jarboleya dice
Gracias por tu comentario Reynaldo y, discúlpame por no haberte respondido antes.
Creo que lo mejor que puedes con tu Jefe es acordar con él una apuesta sobre el desarrollo de 2 proyectos que sean aparentemente similares en complejidad de análisis, desarrollo, implementación y mantenimiento.
La apuesta podría consistir en hacer uno de los proyectos con el sistema que actualmente estéis utilizando y, lógicamente el segundo proyecto hacerlo siguiendo un método basado en lo comentado en este artículo.
La idea sería sumar los tiempos (costes) empleados en el total del proyecto, es decir, sumando todas las horas de desarrollo, puesta en marcha, corrección de errores y mejoras que solicite el cliente.
Es más, si no hay análisis en profundidad seguro que en tu empresa se dará muchas veces que tenéis que desarrollar más de lo que a priori estaba previsto y que el cliente estará descontento porque le faltarán funcionalidades o partes que el consideraba que había contratado.
Estoy seguro de que ganarás la apuesta, incluso aunque el 2º proyecto fuese más complejo que el primero.
Saludos.
Reynaldo Villarreal dice
Gracias por tu atención Jarboleya, la verdad es que la empresa cerrará pues el no no quiere hacer la apuesta es mas termino los contratos y confirmo el cierre de la empresa en la parte de desarrollo….. Pues soy un ingeniero de sistemas y llevo varios años en esto del desarrollo de aplicaciones….yo le recomendaba a mi jefe que hiciéramos análisis antes de desarrollar y mas cuando para mi era muy difícil saber que querían los clientes imagínate! ellos en USA y yo en Colombia……mejor dicho no tenia contacto directo con los clientes y de remate el no quería que analizáramos nada solamente que nos fijáramos en otros trabajos…..mejor dicho parecíamos paracitos!!….bueno deje de lamentarme y cree mi propia empresa de desarrollo de aplicaciones…espero que me vaya bien ademas siempre tendré en cuenta esto:
«Analizar bien es una virtud. No programar hasta que tengas completamente desarrollado el análisis es un grado superior de virtuosismo»….Gracias,Gracias,Gracias! no sabe cuanto me ayudo su blog!.
jarboleya dice
Gracias a tí Reynaldo,
Desconozco que desarrollas, si creas soluciones Web o de soluciones corporativas, aplicaciones de escritorio.
Un buen analista no pone límites iniciales al estudio del problema. Posteriormente cuando diseñas la base de datos y el interfaz del usuario final es donde van apareciendo los límites de la aplicación.
Quiero decir con todo esto que un buen análisis siempre será un buen análisis independientemente de que luego puedas o no llevarlo a la práctica en la base de datos o el lenguaje con el que desarrolles la aplicación.
Para mí conocer Velneo fue como encontrar la piedra de Rosseta. Gracias a esta maravillosa herramienta plasmar el análisis en la estructura de la base de datos se convierte en un juego de niños. Claro, que después de 10 años usando Velneo que otra cosa podría contarte. Si no lo conoces te recomiendo que lo mires aunque, te apunto ya de que se trata de un producto diferente a los que hayas conocido. Deberás cambiar el chip a la hora de empezar a usarlo pero en muy poco tiempo se aprende a desarrollar aplicaciones en tiempo record. Para mí fue una experiencia única que me cambió mi forma de ver el desarrollo del software empresarial.
Saludos.
walter (argentina) dice
jarboleya, te felicito por tan excelentes comentarios. La verdad es que todo comienza por un minusioso análisis del problema a resolver. Aunque los resultados finales nos lleven a lugares similares, el hecho de hacerlo a la excelencia nos adjunta resultados de valor agregado a nuestro desarrollo final. Es muy satisfactorio poder aprovechar el tiempo ahorrado en la corrección de errores, para disfrutar con nuestros seres queridos. Por ejemplo, con mis dos hijos. Te mando un abrazo cordial y es mi deber como programador ampliar mis horizontes conociendo mas a fondo a Velneo. Por lo tanto, seguiresmos en contacto.
Walter – Bs. As. Argentina.
jarboleya dice
Gracias a ti Walter,
Me ha gustado mucho el concepto que has aportado de destinar el tiempo que ahorras en tu trabajo a tu familia. Eso dice mucho de ti. Enhorabuena por tener esa visión.
Precisamente nuestro director de Marketing cuando le explicamos que con Velneo el programador se ahorraba mucho tiempo creó un calendario laboral en el que para los programadores de Velneo los viernes eran festivos jejeje.
Me alegro mucho de que te animes a conocer Velneo, verás que además del producto contamos con una comunidad fantástica que puedes conocer en http://forum.velneo.com
Para cualquiera que quiera ampliar su conocimiento sobre Velneo aquí me tiene.
Un abrazo desde España.
Poxtan dice
Hola, soy alumno de la licenciatura de sistemas computacionales; y el profesor que nos imparte la clase de Algoritmos dejó como tarea leer este artículo, que déjeme decirle que después de leerlo tengo me dio panorama distinto de la programación. Nosotros como futuro programadores debemos tener en cuenta esto: «un buen análisis nos ahorrara horas de programación y posibles fallas al momento de desarrollar y ejecutar nuestra aplicación».
Gracias.
rafael enrique velasquez fonseca dice
entendi que para hacer cierto desarrollo de x cosa debemos de tratar de cometer errores ni desesperarnos por que ai menciona que son errores logicos que muchas veces son muy dados en algun proyecto que algun cliente nos solicite o deje realizar
MARIA DE JESUS BARRAGAN FUENTES dice
PUES YO, MARIA DE JESUS, ENTENDI QUE LA PROGRAMACION ES ALGO MUY IMPORTANTE PARA LOS ALUMNOS DE LIC EN SISTEMAS O EN ING YA QUE EN NUSTRA ACTUALIDAD ES ALGO DE MUCHA SUMA IMPORTANCIA, PROGRAMAR ES MUY IMPORTANTE POR QUE SI ERES UN LIC Y NO SABES PUES TEMETES EN PROBLEMA TANTO CON EL QUIENTE COMO CON TU JEFE PARA SABER PROGRAMAR HAY QUE ENTENDER EL PROBLEMA QUE TE PLANTEAN OSEA ANALISARLO ANTE DE EMPEZAR CON TU PROGRAMA Y TUS RESULTADOS SALDRAN EXELENTES Y PUES COMO UN BUEN PROGRAMADOR TENDRES MUCHO EXITO EN TU TRABAJO COMO EN TU VIDA
jarboleya (Jesús) dice
Buenas noches,
@Poxtan, gracias por tu comentario, me alegra saber que estos post puedan ser de ayuda para vosotros y más aún si es el mismo profesor quien os anima a leerlo.
@Rafael Enrique Velasquez Fonseca, lo siento, creo que no entiendo bien tu mensaje. De todas formas lo que quiero expresar no es que debamos cometer errores, al contrario, lo que se trata es de evitarlos. Por ese motivo cuanto mejor está analizada una solución a desarrollar menos probabilidades de cometer errores tendrás.
@María de Jesús Barragán Fuentes, saber programar siempre es importante, lo más habitual es que un programador realice ese trabajo durante años, y en ese tiempo va aprendiendo y cogiendo experiencia, la mayoría de esa experiencia además de con la programación tiene que ver con el análisis, por eso el siguiente paso es convertirte en un analista-programador y con el paso del tiempo acabas dedicando más tiempo a las actividades de análisis y menos a las de programación. De todas formas, todas las actividades tanto de programador como de analista con importantes. Lo que creo que debes tener en cuenta es que cuanto mejor analista seas, mejor programarás.
Para terminar os dejo una frase de un genio de la programación que tengo la suerte de conocer, mi amigo y compañero, Juan Muñoz-Cobos que dice que: «Programar es preveer». Me encanta esta frase porque define con 3 palabras lo que debes de hacer para convertirte en un gran programador.
Saludos.
sandra dice
Buenas noches tengo un problema,me falta logica para conprender, muchas cosa estoy a un alto nuvel universitario y es para que yo ya supiera muchas cosa referente a mi carreraing. en sistema me gusta la carrera pero tengo problemas para retener informacion en mi mente, tengo como pereza mental me preocupa espero me puedas ayudar. y logica pàra comprender problemas matematicos me explican y explican pero no se no retengo nada. como si tuviese una laguna mental en mi mente me preocupa que debo hacer leer. buscar profundicar pero tambien me cuesta mucho analisar… agradeceria de corazon si me ayudas
ROSA VALDESPINO dice
HOLA
SOY ALUMNA DE CALIDAD SUPERIOR, Y TENGO DUDA
QUISIERA SABER CUALES SON LA MULTIPLES APLICACIONES QUE TIENE PARA UNA EMPRESA, LA APLICACION DEL ANALISIS DEL TRABAJO.
RESPONDEME URGENTE AMIGO (a) Estare agradecida
Saludos. Rosy.
jarboleya (Jesús) dice
Hola Rosy,
Siento no poder ayudarte pues en este artículo hablo de análisis de aplicaciones (software) no de análisis del trabajo.
Saludos
ferrchu dice
quisiera saber la diferencia entre la descripcion generica y la descripcion especifica, no se si me podrian ayudar pero me servitia de mucho
eliseo diaz dice
hola soy estudiante y me doy cuenta que el analisis es muy importante aunque la mayoria de los jovenes no lo utilizamos.Y el sader analisar nos ayuda a muchas cosas………
eduardo(cuba) dice
jarboleya amigo creo que es muy interesante lo que dices sobre el analisis estoy empezando en esto de la programacion y necesito que me digas cuales son los pasos para un buen analisis o lo que hay que teneren cuenta para realizarlo.
gracias saludos.
jarboleya (Jesús) dice
Eduardo,
Analizar es prever, es pensar de antemano todo lo que debes tener en cuenta.
Tu pregunta es muy abierta y casi requiere escribir un artículo dedicado al análisis. Los pasos de forma esquemática para el análisis son:
1. Escucha: Debes comenzar por conocer las necesidades a cubrir con la aplicación que desarrolles. Será preciso reunirse con todos los actores implicados en la aplicación y levantar acta de dichas reuniones para que sea aprobado. El primer paso básico es conocer y comprender.
2. Confirmación: Debes plasmar la información recibida en un documento «Análisis funcional» que explique la funcionalidad de la aplicación una vez desarrollada. Ese documento debe ser validado por el equipo de trabajo responsable del proyecto, usuarios de la aplicación y la dirección.
3. Análisis: Una vez que está fijado y claro el objetivo pasas a desarrollar el análisis técnico. Este documento debe plasmar el análisis funcional a nivel de su programación. Esquemas, organigramas, definición de la estructura de la base de datos, objetos de aplicación, etc. Este documento debe ser validado por todos los programadores y analistas que intervengan en el proyecto.
4. Desarrollo: Se realiza la programación ajustándose al documento técnico del punto anterior.
5. Verificación: Una vez desarrollado es importante que los que validaron el análisis funcional, validen en este punto el resultado del desarrollo.
6. Formación: Antes de poner en producción una aplicación debes formar a los usuarios para reducir la barrera de entrada que se produce en el cambio de software. Además, este paso ayuda a limar aquellos detalles que no se habían detectado durante el análisis funcional.
7. Producción: El último paso es la puesta en producción de la aplicación. En este punto se producen necesidades de mantenimiento y mejora de la aplicación durante las primeras semanas-meses. El primer año siempre es de gran actividad en el mantenimiento de una aplicación, el segundo año se reduce bastante.
Los 3 primeros puntos corresponden a la fase de análisis. Sin embargo, he preferido ponerlos todos para que tengas una visión más amplia. Hay que tener presente que en todas las fases siempre el análisis permanece activo y es muy necesario.
Espero haberte ayudado.
Saludos.
Henry_Alvarez(Peru) dice
Hola a Todos soy estudiante de Ing de Sistemas, y quiero felicitar a Jesus por el extraordinario trabajo de este post que nos permite afiansar la idea de la importancia de desarrollar una aplicacion en base a un orden y que haciendo analogia con un edificio tiene una base, un sustento, que si no es solido pues la «obra» no resultara eficiente.. pues es la etapa de analisis la que si es bien llevada nos asegurara un proyecto de alto alcance, cabe recalcar tambien que la etapa del analisis no solo se presenta al iniciar el proyecto, sino que debe desarrollarse, con ayuda conjunta del cliente, en todo el proceso de elaboracion de la aplicacion, para que asi tengamos un proyecto que durante su elaboracion fue constantemente mejorado realimentado con el analisis.
ammi martinez dice
Necesito una definicion corta de la importancia del analisis!….porfavor
junior carita calla dice
bueno estas en lo correcto al decir que un buen analisis es la base para poder desallorar un problema x sabes yo quisiera ser un buen analizta pero no se pordonde comensar me entiendes es por eso que no se tu y tus amigos me puedan ayudar para poder desarrollar este criterio quiero ser un buen programar para porder solucionar problemas a los usurios porfa ayudame
jarboleya dice
Hola Junio.
Si piensas puedes analizar. Se trata de pensar en el cliente y responder a:
– ¿Por qué lo necesita?
– ¿Qué necesita?
– ¿Cómo lo necesita?
– ¿Cuándo lo necesita?
– ¿Dónde lo necesita?
Una vez aclaradas esas dudas, entonces es cuando se puede empezar a pensar en la implementación de la solución, pero antes hay que ser capaz de entender al cliente e ir más allá de lo que él ha pensado, hace falta sentir lo que él siente, empatizar con sus necesidades, visualizar cómo debería ser la solución y dónde se puede aplicar y cuándo.
En resumen pensar, pensar y pensar hasta que no tengas dudas y sí tengas claras las ideas y cubiertas todas las dificultades que hayas detectado. Recuerda que programar es prever todo lo que pueda llegar a suceder.
Hay mucha documentación, pero lo verdaderamente importante para aprender a analizar o a programar es, practicar, practicar y practicar.
jimmy dice
soy analista y la verdad es la primera vez que encuentro dificil… continuar un analisis sobre un proyecto ya establecido. es como encontrarse en medio del mar sin saber como controlar las olas jaja.. nesecito encontrar un punto de partida en todo esto..