Metodologías agiles

tomado de: http://programaenlinea.net/metodologias-agiles/


¿QUE SON LAS METODOLOGÍAS AGILES?

Las metodologías ágiles son una serie de técnicas para la gestión de proyectos que han surgido como contraposición a los métodos clásicos de gestión como CMMI. Aunque surgieron en el ámbito del desarrollo de software, también han sido exportadas a otro tipo de proyectos.

metodologias 1

Todas las metodologías que se consideran ágiles cumplen con el manifiesto ágil que no es más que una serie de principios que se agrupan en 4 valores:

  1. Los individuos y su interacción, por encima de los procesos y las herramientas.
  2. El software que funciona, frente a la documentación exhaustiva.
  3. La colaboración con el cliente, por encima de la negociación contractual.
  4. La respuesta al cambio, por encima del seguimiento de un plan.

¿QUE ES LO QUE HACE?

Inicialmente, mucha gente asocia metodologías ágiles con falta de documentación o control sobre el proyecto, pero esto es ¡totalmente falso! Lo que se desea es minimizar el impacto de las tareas que no son totalmente imprescindibles para conseguir el objetivo del proyecto. Se pretende aumentar la eficiencia de las personas involucradas en el proyecto y, como resultado de ello, minimizar el coste.

metodologias

Llegados a este punto, nos preguntamos si son mejores las metodologías ágiles que las tradicionales. La respuesta es que no. Entonces, ¿son mejores las tradicionales frente a las ágiles? Tampoco. Como otras muchas cosas en la vida, depende del tipo de proyecto en el que se apliquen y aquí es donde tienen su punto de unión con los principios Lean Startup.

¿POR QUE SE RELACIONAN LAS METODOLOGÍAS ÁGILES Y LEAN STARTUP? 

Las metodologías tradicionales funcionan muy bien en proyectos donde el problema es conocido y la solución al mismo está bien definida. En este entorno es fácil analizar, diseñar y ejecutar una solución, pero totalmente opuesto al entorno de una startup.

Una startup, por definición, es una organización temporal se mueve en un entorno de extrema incertidumbre buscando un modelo de negocio replicable y escalable.

metodologias-rela

Una startup que siga el enfoque Lean, plantea una serie de hipótesis sobre un problema y realiza muchos experimentos con distintas maneras de resolverlo. En resumen, tenemos un entorno muy cambiante donde no está claro el problema a solucionar, ni la forma de hacerlo. En este entorno son claramente más eficaces las metodologías ágiles ya que éstas incorporan mecanismos de gestión del cambio que implican un menor esfuerzo.

Por lo tanto, lo que debemos tener claro es que:

  • Los principios Lean Startup se encargan de “qué” construir.
  • Las metodologías ágiles se encargan de “cómo” hacerlo.

PRINCIPALES METODOLOGÍAS ÁGILES  

Uno de los principales focos de aplicación de las metodologías ágiles son los proyectos tecnológicos. Cada una de ellas tiene sus fortalezas y sus debilidades, pero no son excluyentes. En cada proyecto  podemos adoptar una, o varias, en función de las características del propio proyecto y del equipo.

Entre las metodologías ágiles más usadas se encuentran:

  • SCRUM. Es un marco de trabajo que nos proporciona una serie de herramientas y roles para, de una forma iterativa, poder ver el progreso y los resultados de un proyecto.
  • KANBAN. Se basa en una idea muy simple. Ésta es que el trabajo en curso (Work In Progress, WIP) debería limitarse y sólo deberíamos empezar con algo nuevo cuando un bloque de trabajo anterior haya sido entregado o ha pasado a otra función posterior de la cadena.
  • XP: Es una metodología ágil centrada en potenciar las relaciones interpersonales como clave para el éxito en desarrollo de software, promoviendo el trabajo en equipo, preocupándose por el aprendizaje de los desarrolladores y propiciando un buen clima de trabajo.

metodologias-3

Si estás pensando en adoptar alguna de estas metodologías, antes de seleccionar cuál, debes hacer un análisis de sus debilidades, del tipo de proyecto a gestionar, dos consejos muy básicos:

  • Cambiar una forma de trabajar en una organización es una tarea ardua y difícil. Al implantar una metodología ágil, no realices un cambio demasiado brusco, adóptalas poco a poco.
  • En cualquier metodología ágil el cliente/usuario del software, tiene un papel clave. Si su implicación y/o dedicación no va a ser muy alta, quizás este tipo de metodologías no sean las más apropiadas (o habría que buscar alguna alternativa para disponer del conocimiento del cliente/usuario del software a desarrollar).

Upload File to Server using WebService

Sometimes in our applications we need to save information contained in files png, pdf, xml, etc. maybe to consult later or store for this reason we need one solution to resolve this.

In this article i’m going to upload a file (pdf, image, or anithing type) to my server and save it in a remote path for example (/home/iger/Dropbox/files), later im going to add this in swing application.

I decided to use a web service because it’s a easy solution to connect to a remote computer and send the information.

1. Background

In the approach employed by this article, the binary data is embedded directly in the SOAP envelop using base64 text encoding. In other words, the raw binary data is converted to an encoded String which is value of an XML element in the SOAP message. Upon receiving the SOAP message, the receiver decodes the encoded String in order to re-construct the original binary data.

The following picture depicts this process:

SOAP with binary data process

This approach is the simplest way and is only suitable for transferring a small amount of binary data. It becomes very inefficient when transferring a large amount of binary data because the base64 text encoding technique bloats the data by a factor of 1.33x (UTF-8 text encoding) or 2.66x (UTF-16 text encoding) of the original size. Also, the encoding/decoding process slows down the application performance.

This approach is also often referred as “by value” or “inline attachment” method. Now, let’s go through an example application that is used to transfer small binary files. NOTE: To optimize the binary data transfer, see: Using MTOM to optimize binary data transfer with JAX-WS web services.

(www.codejava.net, 2017)

 Ok, lets go:

I used NetBeans to code the web service implementation:

first you need to add new web operation in a Web Application project:

addWebService

I use this attributes to create my WS

AddOperationForm

The wizard create a basic structure:

basic structure WS

Now i need to add a operation «upload», we can use the pop-up menu to add a new operation with the right click on our web service,

  • name of operation: upload
  • parameters:
    • fileName (String).- is the name of the file to upload
    • fileBytes ([]byte).- is the file stored in array of bytes

AddOperation

Captura de pantalla 2017-12-26 23.43.06

That wizard create a following code:

code upload method

The following code write «fileBytes» in a remote path (filePath):

 String filePath = "/home/iger/Dropbox/files/" + fileName;
 
 try {
 FileOutputStream fos = new FileOutputStream(filePath);
 BufferedOutputStream outputStream = new BufferedOutputStream(fos);
 outputStream.write(fileBytes);
 outputStream.close();
 
 System.out.println("Received file: " + filePath);
 
 } catch (IOException ex) {
 System.err.println(ex);
 throw new WebServiceException(ex);
 }

In this point we have a simple web service to receive the file and store in remote path, we need to publish our web application server for example glassfish:

1.- we need make a «.war» project and publish it, for this we need to execute cleand and build our web project. If it work correcly the result is a «.war» file:

Created dir: C:\Users\igero\…\NetBeansProjects\LimitedEdition_WS\dist
Building jar: C:\Users\igero\..\NetBeansProjects\LimitedEdition_WS\dist\LimitedEdition_WS.war
do-dist:
dist:
BUILD SUCCESSFUL (total time: 4 seconds)

web deploy

We can see the web service deployed writing the url

web service up

We can test our web service with some tool like SoapUI (soapui.org)  the open source version workly excelent for basic executions.

soap uno

Open new Soap Project (File->New Soap Project [Ctrl + N]) and add WSDL url

soap dos

Click Ok Button and the tool create basic implementation for web methods, if you remember we have 2 web methods «hello» and «upload».

uno (1)

For the second method you can test too

for example:

dos

After execution of webservice we can find the «GerardoTest.txt» inside path (/home/iger/Dropbox/files/) in our server:

terminal tres

The result will look like the following:

terminal cuatro

 

Puyo en java AWT

El 24 de Octubre del 2005, hice este programa como prueba de un examen que me hicieron para poder trabajar en una nueva fabrica de software (video-juegos), que se abrio en Mexicali.

Les agrego tal cual el codigo que desarrolle en su momento, no creo que sea lo mejor pero fue divertido hacerlo.

Todo el codigo esta en un archivo java (Puyo.java), adjunto el zip con las imagenes y código en un enlace en mega:

https://mega.nz/#!OYYGnRKA!Y2nWI8a_HCK7Y9WpH95DisFlWMLuieQ3nW1yjN62Elc