jueves, 15 de noviembre de 2012

Que lenguaje elegir para aprender a programar?



Que lenguaje elegir para aprender a programar?
Por Diógenes Amaury MS

Esta es una pregunta que se hacen muchos estudiantes, interesados en la programación así como también muchos profesores y catedráticos a la hora de elegir un lenguaje para aprender o enseñar a programar.
Algunos teóricos dicen que “Java”, otros que C y otro aun más exagerado que debe ser  C++, en mi opinión,  la clave para aprender a programar no está en lenguaje que se utilice, como sustento esto???
Simple, todos los lenguajes sin importar cuales fueren utilizan variables, constantes, estructuras de control, sentencias repetitivas o ciclos, esta son la base para cualquier principiante en la programación, claro está luego vendrán para una segunda fase  el entorno orientado a objeto con clases, encapsulaciones, polimorfismo, herencia etc.
El problema para aprender a programar no está en lenguaje que se seleccione,  para aprender a programar, es necesario tener la voluntad como todo en la vida, con la programación, pasa lo mismo que con las matemáticas en las universidades, tienen la fama de ser algo difícil, y para colmo existen estudiantes que dicen que para pasarla se necesita repetir varias veces la asignatura, o la típica frase no la de con fulano que es el “Diablo”, por el simple hecho de que ese profesor se preocupa por que sus estudiantes den el máximo, para no producir profesionales mediocres en el futuro..
Todos esos comentarios de pasillo y muchas veces emitidos por estudiantes que no hacen el mínimo esfuerzo son falsos, la programación requiere de entrega, de estar “enamorado” de ella, de investigar, de poner en práctica la teoría, se comete un grave error cuando somos estudiantes y nos limitamos a utilizar el programa X, solo cuando nos toca la asignatura.
Hoy en día con el auge del internet y los millones de sitios web que publican artículos, ejemplos y hasta proyectos completos, resulta sumamente fácil aprender a programar, no  se trata de copiar y pegar, sino de analizar e investigar cada sentencia que contienen esos ejemplos, claro está resultara muchos más fácil echarle la culpa al profesor de que no aprendemos por su método de enseñanza,  paradoja de la vida, la mayoría de los lenguajes que quien suscribe a aprendido lo obtenido por el internet, libros y algunos amigos que ya tienen experiencia previa en un lenguaje X.
El lenguaje que elijas no importa, pasar a otro lenguaje después de haber aprendido uno es sumamente sencillo, eso sí, una cosa debe quedar claro, Programar no es para vagos, para programar se necesita tiempo y esfuerzo, noches y madrugadas de sacrificio, porque aunque Dios existe, debemos hacer nuestras aportaciones para que se vean la bendiciones.
Aprender a programar sin lugar a duda que es una decisión que implica mucho pero mucho esfuerzo.

martes, 2 de octubre de 2012

Substring En C#


Uso de Substring en c#



Por Diógenes Amaury MS
Saludos Amig@s
Hoy hablaremos del  método  Substring, el cual nos permite tomar o extraer textos o dígitos, su sintaxis es como sigue:
Substring(Inicio, Longitud)
Inicio: indica en que posición de una cadena se ubicará (tomando en cuenta que inicia desde 0). Por ejemplo Firme, la F esta ubicada en la posición cero.
Longitud: Indica la cantidad de carateres que deseamos extraer.
Ejemplo:
string nombre, resul;
nombre=”josefa”;
resul= VALOR.Substring(4, 2);

el resultado de la variable resul será “fa”


Pasemos ahora a un ejemplo un poquito mas complicado, imaginemos que deseamos escribir en un textbox letras y números, y luego poder mostrar dicha información por separados, por ejemplo si escribimos Dios123, es un textbox debe aparecer Dios y en el otro 123.
Para esto nos auxiliaremos del método int.TryParse para determinar si lo que vamos extrayendo es número o letra y de esta forma poder concatenar por su contenido.

Paso 1
Declaremos 3 textbox:
TXTVALOR
TXTLETRAS
TXTNUMERO

Paso 2
Agregemos un button.

Paso 3
Dentro del buton escribimos el siguiente código c#
private void button1_Click(object sender, EventArgs e)
  {
  string VALOR;
  VALOR = TXTVALOR.Text;
  int number;
  for (int I=0;I<VALOR.Length;I++)
    {
       bool result = int.TryParse(VALOR.Substring(I, 1), out number);
       if (result==false)
       {
        TXTLETRAS.Text = TXTLETRAS.Text + VALOR.Substring(I, 1);
       }
    else
       {
       TXTNUMERO.Text = TXTNUMERO.Text + VALOR.Substring(I, 1);
       }
     }         
  }



Explicación del código.
Declaramos una variable llamada Valor, a la que le pasomos el contenido del textbox, donde escribimos la información.
string VALOR;
VALOR = TXTVALOR.Text;
Declaramos una variable tipo int llamada number, para poder darle salida al método TryParse, y asi poder determinar si es número o no.

int number;

declaramos un ciclo for, para recorrer el contenido del Textbox.
for (int I=0;I<VALOR.Length;I++)

declaramos una variable tipo bool para almacenar true o false dependiendo del tipo de datos que se lea.
bool result = int.TryParse(VALOR.Substring(I, 1), out number);


Si es falso, significa que el character leido es letra.
       if (result==false)
       {
        TXTLETRAS.Text = TXTLETRAS.Text + VALOR.Substring(I, 1);
       }

En caso contrario es numérico.
    else
       {
       TXTNUMERO.Text = TXTNUMERO.Text + VALOR.Substring(I, 1);
       }


Espero, que este ejemplo le sea de utilidad.

Frase para meditar.
Enseñar a quien no quiere aprender es como sembrar un campo sin ararlo.

lunes, 27 de agosto de 2012

Que es JQuery ?


Que es JQuery ?
Por: Diógenes Amaury MS

JQuery es una biblioteca de JavaScript,o mejor dicho un FrameWork de javaScript, rápida y concisa que simplifica el recorrido documento HTML, manejo de eventos, animación, y las interacciones Ajax para el desarrollo web rápido.

Una de las ventajas de JQuery es su sencillez y su reducido tamaño.
Una gran parte del atractivo de jQuery es que le permite una elegante y eficiente forma de encontrar y manipular los elementos HTML con líneas mínimas de código. jQuery soporta esta vía un buen "selector" API que permite a los desarrolladores  consultar los elementos HTML, y luego aplicar comandos para ellos. Una de las características de los comandos de jQuery es que pueden ser encadenado juntos,  de modo que el resultado de un comando puede alimentar a otro. jQuery también incluye un conjunto integrado de animación API que pueden utilizarse como comandos.
JQuery  es open source, esto nos permite  descargar sus librerías, modificarlas o personalizarlas de acuerdo a nuestras necesidades.
Hoy  les presento un ejemplo, simulando un datepicker para los programadores que vienen de Microsoft, saben a que me refiero, para los que nos, se trata de un calendario que permite seleccionar una fecha y pasarla a un objeto, en nuestro ejemplo la pasaremos a un textbox.
A continuación les presento el ejemplo que pueden copiar  y pegar en blog de notas y probarlo en su hogar
Nota: pueden darle el nombre de ejemplo.html , y en la casilla salvar como ti seleccionar todos los archivos, de lo contrario se guarda como un texto y el navegador no lo puede interpretar.

<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <title>Uso de DatePiker Por Diógenes Martínez</title>
  <link type="text/css"rel="stylesheet"
     href="http://jquery-ui.googlecode.com/svn/tags/1.7/themes/redmond/jquery-ui.css" />  
  <script type="text/javascript"
     src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
  <script type="text/javascript"
     src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js"></script>

<script type="text/javascript">
      $(document).ready(function() {
          $('#txtFechaSimple').datepicker();
      });
  </script>
</head>

<body>
  <form id="form1" runat="server">
    <div>
   <label id ="Fecha">Fecha</label>
   <input id="txtFechaSimple" type="text" />
</div>
  </form>
</body>
</html>


Explicación del código.
Primero es hacer referencia a las bibliotecas de estilos y de Jquery que necesitamos para el ejemplo anterior, en este caso esto haciendo link de la página oficial, pero  es recomendable bajar estos archivos para tenerlo físicamente y en caso de que el servidor dejara de funcionar no afecte nuestra aplicación.
  <link type="text/css"rel="stylesheet"
     href="http://jquery-ui.googlecode.com/svn/tags/1.7/themes/redmond/jquery-ui.css" />  
  <script type="text/javascript"
     src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
  <script type="text/javascript"
     src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js"></script>

Segundo
Escribimos la función que mostrar el calendario cuando nos enfoquemos en el objeto.

  <script type="text/javascript">
      $(document).ready(function() {
          $('#txtFechaSimple').datepicker();
      });
  </script>

Tercero
Escribimos el cuerpo del document html.
</head>
<body>
  <form id="form1" runat="server">
    <div>
   <label id ="Fecha">Fecha</label>
   <input id="txtFechaSimple" type="text" />
</div>
  </form>
</body>
</html>


martes, 24 de julio de 2012


Recursividad en c# y Vb.net
Por Diógenes Amaury MS

Debemos iniciar por definir, lo que significa recursividad, es cuando un subprograma o función puede llamarse a sí misma. La recursividad es una alternativa a la iteración o repetición (el uso de bucles), existen numerosas situaciones en la que la recursividad  es una solución simple y natural que en caso contrario sería difícil de resolver.
Por esta razón se puede decir que la recursividad es una herramienta potente y útil en la resolución de problemas que tengan naturaleza recursiva y, por ende, en la programación.
Veamos de una forma más clara estos conceptos en la creación de un programa que determine el factorial de un número dado, y el cual será digitado en un textbox
En nuestro formulario, insertamos dos textbox,  uno llamado  TXTNUMERO y otro llamado TXTFACTORIAL, agregamos un botón, que será el que contendrá el evento para llamar a la función recursiva que determina el factorial de un número N.


Código para c#
Creado la función recursiva
int Factorial(int n)
{
if ((n == 0) || (n == 1))
   return (1);
else
   return (n * Factorial(n - 1));
}
Como pueden notar, en la codición estoy preguntado si el numero es 0 ó 1 y en tal caso retorno 1 a función Factorial(el or en c# es representado por este signo || ), en caso contrario multiplico a n por la misma función factorial, y es aquí donde se aplica la recursividad, ya que la misma función factorial se llama dentro de ella.
En el Botón btncalcular escribo el código para llamar a la función recursiva Factorial.
private void btncalcular _Click(object sender, EventArgs e)
{
TXTFACTORIAL.Text = Convert.ToString(Factorial(Convert.ToInt32(TXTNUMERO.Text)));
}


Código para vb.net
Function Factorial(ByVal n As Integer) As Integer
If n = 0 Or n = 1 Then
   Factorial = 1
Else
   Factorial = n * Factorial(n - 1)
End If
End Function


en el botón escribimos este código para llamar la función factorial y mostrarlar en el textbox TXTFACTORIAL.

TXTFACTORIAL.Text = Factorial(Val(TXTNUMERO.Text))


Cuando la vida te de la espalda, difruta viéndole sus glúteos!!!.
DM.






martes, 17 de julio de 2012

Crear Archivo Binario en C

Trabajando con archivos Binario en .Net, utilizando  C#
By Diógenes Amaury MS 


La primera opción para escribir y/o leer datos de una archivo de texto es utilizar la clase FileStream. Esta clase se encuentra en el namespace System.IO y es una clase derivada de la clase Stream. Por lo que debemos declararla donde estan los using de nuestra aplicación, por ejemplo.
using System.IO;

El FileStream actúa como un intermediario entre el sistema de archivos y nuestra aplicación, permitiendo realizar de una manera limpia y sencilla operaciones de escritura y lectura en archivos. Para utilizar el FileStream, lo primero que se debe hacer es crear una instancia que apunte al archivo deseado. Para esto se tiene la opción de utilizar alguno de los constructores ofrecidos, tal y como se muestra a continuación:



Este código se colocara en el botón Escribir, y  su función será crear el archivo llamado Binario.txt en la raíz de c.

FileStream fs = new FileStream(@"c:\binario.txt"FileMode.Create);
BinaryWriter bw = new BinaryWriter(fs,Encoding.UTF8);
String matricula = TXTMATRICULA.Text;
String estudiante = TXTESTUDIANTE.Text;
int edad = Convert.ToInt16(TXTEDAD.Text);
bool vecado = CHKVECADO.Checked;

bw.Write(matricula);
bw.Write(estudiante);
bw.Write(edad);
bw.Write(vecado);
bw.Close();
Para leer el contenido del archivo en el botón leer escibimos este código.
FileStream fs = new FileStream(@"c:\binario.txt"FileMode.Open);
BinaryReader br = new BinaryReader(fs);
TXTMATRICULA.Text = br.ReadString();
TXTESTUDIANTE.Text = br.ReadString();
TXTEDAD.Text = Convert.ToString(br.ReadInt32());
CHKVECADO.Checked = br.ReadBoolean();
br.Close();
Como pueden ver la forma de crear un archivo y posteriormente leerlo es bien siemple.

Recuerda:A nada te acostumbre, para que nada te haga falta… 

viernes, 11 de mayo de 2012

Clases en C#


Clases en C#
Por Diógenes Amaury MS 
Para entender el concepto de clase, debemos iniciar por la definición de objeto. Un objeto es un agregado de datos y de métodos que permiten manipular dichos datos, y un programa en C#  es  un conjunto de objetos que interaccionan unos con otros a través de sus métodos.
    Una clase es la definición de las características concretas de un determinado tipo de objetos. Es decir, de cuáles son los datos y los métodos de los que van a disponer todos los objetos de ese tipo. Por esta razón, se suele decir que el tipo de dato de un objeto es la clase que define las características del mismo.
Una clase es un contenedor de uno o más datos (variables o propiedades miembro) junto a las operaciones de manipulación de dichos datos (funciones/métodos

 Creación de una clase en c#
1    Ir a el Nombredel Proyecto pulsamos clic derecho y nos ubicamos en la opción Add, luego  seleccionamos la opción que dice Class.
2       Sustituimos Class1 por el nombre que le vamos a asignar en nuestro caso la llamaremos Estudiante.



  class Estudiante
    {
    }

Como hemos visto simplemente hemos creado el nombre de la clase, ahora procederemos a declarar los miembros de la clase, que para nuestro ejemplo seran los datos generales del estudiante que serán almacenados en  variables
Para tal caso procedemos a declarar la variable recordando que para esto necesitamos la siguiente sintaxis.

<tipovariable> <nombrevariable>;

public class Estudiante
{
  public static  string Matricula;
  public static string Nombre;
  public static string Apellido;
  public static int Edad;
  public static string Direccion;
  public static string Carrera;
}

 Llenando una clase, de forma directa.
Imaginemos que deseamos llenar la clase estudiante sin tener que utilizar objetos adicionales, tales como textbox u otros.
    private void btnllenaclase_Click(object sender, EventArgs e)
        {
            Estudiante.Matricula = "00-0001";
            Estudiante.Nombre = "Juan Mariano";
            Estudiante.Apellido = "Lora Peralta";
            Estudiante.Edad = 19;
            Estudiante.Direccion = "Las Colinas, calle #25";
            Estudiante.Carrera = "Inegieria de Software";
        }

Llenando una clase desde textbox u otro objeto.
        private void btnllenaclase_Click(object sender, EventArgs e)
        {
            Estudiante.Matricula = TXTMATEST.Text;
            Estudiante.Nombre = TXTNOMEST.Text;
            Estudiante.Apellido = TXTAPEEST.Text;
            Estudiante.Edad = Convert.ToInt32(TXTEDAEST.Text);
            Estudiante.Direccion = TXTDIREST.Text;
            Estudiante.Carrera = TXTCAREST.Text;
        }
Si queremos llamar la clase anterior desde otro formulario el procedimiento sería inverso al anterior:
TXTMATEST.Text =Estudiante.Matricula ;
TXTNOMEST.Text = Estudiante.Nombre ;
TXTAPEEST.Text = Estudiante.Apellido;
TXTEDAEST.Text = Convert.ToString (Estudiante.Edad);
TXTDIREST.Text =Estudiante.Direccion;
TXTCAREST.Text =Estudiante.Carrera ;


Herencia de una clase:
La herencia es un mecanismo que permite la definición de una clase a partir de la definición de otra ya existente. La herencia permite compartir automáticamente métodos y datos entre clases, subclases y objetos. 
Sintaxis.
class Clasehija : ClasePadre
     {


     }

Aquí mostramos un ejemplo de la clase nota que hereda de la clase Estudiantes todos sus atributos.
   public class nota : Estudiante
     {
       
     }

Los métodos son un bloque de código que contiene una serie de instrucciones. En C#, cada instrucción se ejecuta en el contexto de un método.
Los métodos se declaran en una clase o estructura especificando el nivel de acceso, el valor devuelto, el nombre del método y los parámetros de método. Los parámetros de método se incluyen entre paréntesis y separados por comas. Los paréntesis vacíos indican que el método no requiere ningún parámetro.
public class nota : Estudiante
  {
  public static double promedio(double nota1, double nota2, double nota3)
   {
   return (nota1 + nota2+ nota3)/3;
   }
  }

Instancia de Clase:
Una vez que tenemos una clase definida, lo único de lo que disponemos es de una especie de plantilla o molde a partir del cual podemos crear objetos en memoria. Logramos estos Mediante la instrucción new que es la encargada de crear el objeto en la memoria y asignar la dirección del mismo a la variable usada en la parte izquierda de la asignación
      
   Form fomulario = new Form2();
   fomulario.Show();

En el ejemplo anterior instanciamos a la variable fomulario el objeto tipo Form llamado Form2, para luego ser llamado con el metdodo Show.

Ejemplo: Instanciando la clase Estudiante

Estudiante estu = new Estudiante();
En este caso, la variable estu adquiere todas las características de la clase Estudiante, ya que es una copia en memoria de dicho Objeto.




domingo, 29 de abril de 2012

Desarrollo ágil de software


¿Qué es el desarrollo ágil de software?
Por: Diógenes Amaury MS

El desarrollo ágil de software, es una metodología de gestión adaptativa, que te permite llevar a cabo, proyectos de desarrollo de software, adaptándote a los cambios y evolucionando en forma conjunta con el software. Es muy importante dejar claro que no se trata de una herramienta o aplicación, sino más bien de un conjunto de métodos utilizado en el desarrollo de software, que consiste en la convención de prácticas, métodos, principios, y técnicas cuya principal utilidad es la de proveer un mejor rendimiento del equipo de trabajo y  sobre todo, permitir la producción de mejores resultados en lo que se produce durante el proyecto. Esta metodología no es únicamente utilizada en el desarrollo de software, ya que diferentes empresas de otra naturaleza también los manejan, como es el caso de la Toyota.

Existen muchos tipos de metodología agiles de desarrollo de software como son:
eXtreme Programming (XP), Kanban, Scrum, entre otros. Nuestro contenido del dia de hoy, será enfocado en la metodología Scram.

¿Qué es Scrum?
Scrum es una metodología ágil de gestión de proyectos de desarrollo de software, basada en un proceso de trabajo constante, iterativo e incremental, que toma su nombre y principios de los estudios realizados sobre nuevas prácticas de producción por Hirotaka Takeuchi e Ikujijo Nonaka a mediados de los 80.
Jeff Sutherland aplicó el modelo Scrum al desarrollo de software en 1993 en Easel Corporation (Empresa que en los macro-juegosde compras y fusiones se integraría en VMARK,luego en Informix y finalmente en Ascential Software Corporation)

 Scrum, propone una serie de características que deben guardarse a fin de lograr resultados óptimos en el desarrollo de sistemas de alta complejidad. La propuesta de Scrum, consiste en realizar entregas potencialmente utilizables de forma iterativa e incremental, en períodos de 2 a 4 semanas denominados "Sprints". Para lograrlo, establece ciertas pautas organizativas, a simple modo de guía y no de reglamento invasivo.

Scrum es una metodología de desarrollo muy simple, que requiere trabajo duro porque no se basa en el seguimiento de un plan, sino en la adaptación continua a las circunstancias de la evolución del proyecto.

Se comienza con la visión general del producto,especificando y dando detalle a las funcionalidades o partes que tienen mayor prioridad de desarrollo y que pueden llevarse a cabo en un periodo de tiempo breve (normalmente de 30 días).
Cada uno de estos periodos de desarrollo es una iteración que finaliza con la producción de un  incremento operativo del producto.
Estas iteraciones son la base del desarrollo ágil, y Scrum gestiona su evolución a través de reuniones breves diarias en las que todo el equipo revisa el trabajo realizado el día anterior y el previsto para el día siguiente.

 Los roles en Scrum:
Scrum organiza  el trabajo utilizando estos roles : Dueño de Producto (o Product Owner), Scrum Master y Scrum Team.

Dueño de Producto (o Product Owner):
El Dueño de Producto es la única persona autorizada para decidir sobre cuáles funcionalidades y características funcionales tendrá el producto. Es quien representa al cliente, usuarios del software y todas aquellas partes interesadas en el producto.
Funciones:
Canalizar las necesidades del del negocio, sabiendo "escuchar" a las partes interesadas en el producto y transmitirlas en "objetivos de valor para el producto", al scrum team.
Maximizar el valor para el negocio con respecto al Retorno de Inversión (ROI), abogando por los intereses del negocio.
Revisar el producto e ir adaptándole sus funcionalidades, analizando las mejoras que éstas puedan otorgar un mayor valor para el negocio.

Aptitudes que debe tener un Dueño de Producto:
Excelente facilicidad de comunicación en las relaciones interpersonales Excelente conocimiento del negocio Facilidad para análisis de relaciones costo/beneficioVisión de negocios

Scrum Master:
El Scrum Master es el alma mater de Scrum. Un error frecuente es llamarlo "líder", puesto que el Scrum Master no es un líder típico, sino que es un un auténtico Servidor neutral, que será el encargado de fomentar e instruir sobre los principios ágiles de Scrum.
Funciones:
  • Garantizar la correcta aplicación de Scrum. Esto incluye, desde la correcta trasmición de sus principios a las altas gerencias, hasta la prevención de la inversión roles (es decir, guardar especial cuidado en que el dueño de producto no actúe en nombre del Scrum Team y viceversa, o que la audencia se inmiscuya en tareas que no le son propicias)
  • Resolver los conflictos que entorpezcan el progreso del proyecto.
  • Incentivar y motivar al Scrum Team, creando un clima de trabajo colaborativo, fomentar la auto-gestión del equipo e impedir la intervensión de terceros en la gestión del equipo.


Aptitudes que debe tener un Scrum Master:
  • Excelentes conocimientos de Scrum
  • Amplia vocación de servicio
  • Tendencia altruista
  • Amplia capacidad para la resolución de problemas
  • Analítico y observador
  • Saber incentivar y motivar
  • Capacidad docente e instructiva
  • Buen carisma para las negociaciones
El Scrum Team:
El Scrum Team (o simplemente "equipo"), es el equipo de desarrolladores multidisciplinario, integrado por programadores, diseñadores, arquitectos, testers y demás, que en forma auto-organizada, será los encargados de desarrollar el producto.
Funciones y responsabilidades
  • Llevar el Backlog de producto, a desarrollos potencialmente funcionales y operativos.
  • Aptitudes que deben tener los integrantes de un Scrum Team:
  • Ser profesionales expertos o avanzados en su disciplina
  • Tener "vocación" (la buena predisposición no alcanza) para trabajar en equipo
  • Capacidad de auto-gestión

Backlog de Producto
El Backlog de Producto es un listado dinámico y públicamente visible para todos los involucrados en el proyecto.
En él, el Dueño de Producto, mantiene una lista actualizada de requerimientos funcionales para el software. Esta lista, representa "qué es lo que se pretende" pero sin mencionar "cómo hacerlo", ya que esta última, como vimos en el capítulo anterior, será tarea del Scrum Team.
El Backlog de Producto, es creado y modificado únicamente por el Dueño de Producto. Durante la ceremonia de planificación, el Scrum Team obtendrá los items del producto, que deberá desarrollar durante el Sprint. Formato del Backlog de Producto
El Backlog de producto, es una lista de items que representan los requerimientos funcionales esperados para el software.
Para cada uno de estos ítem, será necesario especificar:
  • El grado de prioridad
  • Esfuerzo que demanda
  • Granulidad
  • Criterios de aceptación
Ejemplo
Prioridad                    Item                            Estimación     Estado            Criterios de aceptación
1                                  Descripcion de ítem    tiempo en        criterio de lo propuesto.
                                                                        Semana o días
2                                  “ ”                                “”                     “”
3                                  “”                                 “”                     “”

Tableros de Scrum :
Con la lista de tareas ya armada, estamos en condiciones de crear el tablero. Un Scrum Taskboard, básicamente se divide en 3 columnas: pendientes, en curso y terminadas y se complementa la información con un Diagrama de Burndown que mostrará el esfuerzo restante para concluir el Sprint.