El curso =)

Durante el curso de ken el método que utilizo de enseñanza fue muy distinto al que estamos acostumbrados, pero la verdad se me hizo algo muy interesante y necesario porque fuera de la escuela cuando ye estemos trabajando en algo no vamos a tener un profesor que nos diga que estudiar y vamos a tener que siempre seguir aprendiendo algo nuevo.

Al principio del curso la metodología no me pareció algo muy nuevo que digamos porque muchos profesores ya están dando algo del tema de la clase y nos hacen estudiar la mayoría fuera de la clase, pero la verdad la manera de que ken nos enseñó cosas que si podemos utilizar fuera de los salones de clase y siempre nos mantuvo guiados de una manera u otra fue lo que más me gusto del curso.


Verificación y validación de software

Estas dos palabras son utilizadas muy frecuentemente en el testeo de software. Verificación es el proceso de evaluar el producto para ver si cumple con las expectativas de cada parte y la validación es muy parecida pero lo que cambia es que debes de ver si una parte cumple con las expectativas es ver si todo el producto en sí las cumple.

La diferencia es en el objetivo que quieren lograr, la verificación es para comprobar si durante el desarrollo del producto se está haciendo de la manera correcta y la validación es para comprobar que el producto está terminado y listo para ser publicado o vendido.

14000664235_91124f800d_z.jpg
Foto de flickr por Daniel Waters

En conclusión, estas partes del testeo de software son muy parecidas, pero ambas son necesarias para la creación eficaz y eficiente del producto.

Referencia


Diseño de interfaces de usuario

La interface es lo que los usuarios están utilizando para comunicarse con el código y su diseño es muy importante para la utilización de tu software porque es si tu código es algo impresionante y no tienes una interface que el usuario comprenda nadie va a utilizar tu producto.

3013865652_b3ea69377d_o.jpg
Foto de flickr por Jeff Warren

La manera que el diseño está incorporado en la interface es de una manera sencilla y para que tu aplicación lo tenga tiene que seguir una serie de pasos.

Primero tienes que hacer es que la interface tenga los elementos necesarios para su utilización ya que si pones demasiadas cosas en ella no se podrá comprender, después tienes que hacer sea sencillo de leer y utilizar ya que si tiene los botones necesarios, pero en un orden extraño puede que el usuario no lo pueda comprender, por ultimo tiene que verse bien por el simple hecho de que a la mayoría de los usuarios quieren también algo que se vea bien.

En conclusión, para mí la interface de usuario es una parte muy importante para que tu producto pueda evolucionar a otro nivel y los usuarios puedan utilizar tu producto en todo su esplendor.

Referencia


Mantenimiento de software

El mantenimiento de software se implementa cuando ya entregaste un producto y lo quieres mantener funcionando a lo largo del tiempo y también en ocasiones modificarlo para hacer algo mejor.

7263382550_002a49be33_z.jpg
Foto de flickr por Florian Richter

Algunas razones para la modificación de tu código pueden ser alguna de las siguientes.

Por condiciones del mercado, por requerimiento del usuario o si la organización cambia por alguna razón

Esta parte es muy importante para el software ya que la tecnología está en constante movimiento y cambiando y si tu no te adaptas y cambias con ella tu producto queda obsoleto y no se puede utilizar por esto el mantenimiento del software es muy importante.

En ocasiones le tenemos miedo al cambio de nuestro software porque no sabemos si lo que estamos modificando es lo correcto, pero la verdad para mi es que el cambio es necesario y nos tenemos que adaptar para poder seguir creciendo.

Referencia


Software de código abierto

En pocas palabras es cuando las personas que crearon el código lo hacen público para que las personas lo puedan ver y modificar, pero no tomar poder tomar crédito de como el creador del código.

128010935_67ce3d5b33_z.jpg
Foto de flickr por Justin

Al hacer el software código abierto esto ocasiona para mí que todas las personas que están utilizando tu producto lo puedan modificar para poder ayudarte a crear algo mejor y esto también ocasiona que las personas puedan estar mucho más relacionadas con tu producto y sientan in sentimiento de incorporación en el producto que están utilizando.

Para terminar esto es una manera de crear algo con lo que los usuarios del producto puedan estar incorporados y crear algo mejor que si lo haces solo.


But this one goes to 11 !!!!! (Español)

En ocasiones nos podemos encontrar con diferentes tipos de personas que perciben el mundo de diferente manera que nosotros y puede que pensemos que ellos están en algo mal porque no piensan de la misma manera que nosotros o también te puede parecer algo absurdo que piensen de esa manera, pero para mi esto es algo hermoso porque nos muestra como nadie es igual, las personas son únicas.

En el vídeo podemos ver a dos personas que una está muy segura que puede crear música a un nivel mayor que los demás y él la otra persona le está diciendo que no es así de una manera algo cómica, pero en este vídeo podemos ver como las dos personas tienen diferentes conceptos de lo mismo, esto aunque es algo un poco extremo me mostró como no importa como nosotros veamos y pensemos cómo está funcionando algo las demás personas pueden verlo de una manera totalmente distinta a la mía y esto hace que quiera saber más.

No hay que limitarnos a lo que solamente nosotros vemos. =)


The Cathedral and the Bazaar (Opinión en español)

Este ensayo describe como una persona pasa a través de una gran cantidad de experiencias para llegar a la conclusión que dice que hay muchas maneras de hacer software pero cuando es open source y las personas pueden ver y modificar el código como les plazca esto puede hacer que ellos mismos te ayuden a mejorar, encontrar bugs y muchas otras cosas que anteriormente no podías.

La manera en que describe esto es muy sencillo pero lo voy a cambiar usando mis palabras .Imagínate que estás trabajando en un proyecto y estas atorado en una parte, normalmente te quedas viendo y corrigiendo el código o también le pides ayuda a una o dos personas, ahora imagínate debes de pedirle ayuda a una o dos personas le estas pidiendo ayuda a una gran cantidad de personas, cuál crees que sea la manera más eficiente de solucionar tu problema solo tu o tu y muchas otras personas.

Te preguntaras porque las personas te ayudarían y la verdad la razón es muy graciosa por el simple hecho de demostrar que sí pueden el simple orgullo es suficiente. La verdad este articulo me ayudo a ver cómo la experiencia de las demás personas se puede transferir de una manera muy bien diseñada y si empiezan a leer el documento mejor les recomiendo escuchar el audio porque la verdad es mucho más gracioso, pero esa es mi opinión. =)


Pruebas de software

Normalmente nosotros probamos el software para ver si funciona adecuadamente, pero no siempre tenemos el tiempo de checar todo el código porque en un proyecto muy grande la cantidad de líneas de código que se tienen que checar son miles y si sale un error es muy probable que no recordemos de la mejor manera como hicimos ese código y como lo podemos reparar. Por eso existen algunos programas que nos pueden ayudar a checar y probar nuestro código mucho más rápido y eficiente que nosotros línea por línea.

Los pasos que normalmente siguen los programas para hacer testeo son los siguientes:

  • Procesar la información
  • Checar los ciclos
  • Checar las pruebas estáticas
  • Checar las pruebas dinámicas
  • Evaluación

Los programadores muy avanzados tienen un dicho primero haces el código de prueba de software y luego empiezas a hacer el código del software en sí, esto se me hace algo impresionante de hacer porque para lograr eso ya debes de tener una muy buena idea de lo que vas a crear y sabes los errores que puede tener sin siquiera empezar a hacer el código.

Referencia


Patrones de diseño de software

Los patrones de diseño son soluciones optimas y reutilizables para problemas de programación que encontramos todos los días. Hay que entender que no sol clases ni librerías que las ponemos y arreglan el código sino es una guía que se tiene que implementar de la manera correcta, porque si no los utilizas bien pueden ser los causantes de muchos problemas en el código, pero si los utilizas de la manera adecuada te pueden salvar.

24938976053_9e829266da_b.jpg
Foto de flickr por Riccardo C.

Ay varios tipos de patrones de diseño:

  • La estructural: que se utiliza cuando quieres relacionar entidades y hacer que la comunicación entre ellos sea más sencilla.
  • La creacional: que utiliza mecánicas instantáneas que hace que la creación de objetos sea más adaptable a la situación.
  • La conductual: Que se utiliza en la comunicación entre entidades y hace que sea más flexible la comunicación entre ellas.

Los patrones de diseño son muy buenos porque la mayoría de las veces el problema que tú tienes en tu código muy probablemente ya le haya pasado a alguien más y sepa cómo solucionarlo y ya haya creado algo para solucionarlo, es mucho más eficiente ya utilizar algo que sabes que puede solucionar tu problema (y normalmente lo hace) que hacer un programa desde cero que lo tenga que solucionar.

Referencia


¿Qué es la arquitectura de software?

La arquitectura de software se describe como la organización del sistema, donde el representa un número de componentes que tienen como objetivo cumplir cierta función.

También se puede tomar con todo el fin de la palabra arquitectura porque sirve como un conjunto reglas que el sistema debe seguir y hay varios estilos que pueden seguir los creadores los cuales son:

  • La arquitectura de negocios.
  • La arquitectura de aplicaciones.
  • La arquitectura de información.
  • La arquitectura de tecnología.

Pero todos deben cumplir con ciertos patrones:

  • Indicar los componentes que pueden comunicarse entre ellos y con las reglas que deben seguir para poder lograrlo.
  • Mejorar la calidad del código y su reutilización para dar solución a problemas frecuentes.
  • Describir una forma de configurar los componentes para que se puedan comunicar entre ellos.

Es muy bueno saber las distintas arquitecturas que existen para poder empezar un proyecto de la mejor manera posible, pero no solo eso también se tiene que saber lo que puede llegar a lograr lo que estas creando y por eso la arquitectura de software se me hace algo importante que todos deben saber para poder llegar al límite de lo que estas llegando y si se puede más.

Referencia