Entrevista a:Martin Salias [msalias]
PROGRAMACIÓN
 | ¿Cómo empezaste a programar, y a qué edad? Comencé a programar en papel, bastante antes de tener una computadora, estudiando assembler, y pude empezar a probar mis programas en una Texas Instrument que nos prestaban en un negocio de computación que trajo las primeras. Nos dejaban usarlas a cambio de hacer demostraciones a los clientes, ya que nadie sabía cómo se usaban. Todo esto sucedió alrededor de mis 13 o 14 años, empezando el colegio secundario. |
 | ¿Qué lenguajes manejas, y entornos de desarrollo? He programado en Assembler, C/C++, BAsic, Logo, Pascal, Fortran, Cobol, Smalltalk, dBase, Clipper y todas las versiones de Fox, Python, Ruby, Java, Universe, C#, algo de F# y por supuesto, JavaScript. Aprendí también algo de otros lenguajes, aunque no les dediqué el tiempo ni tuve oportunidad de usarlos en producción: Prolog y Lisp, Erlang, Haskell, IO, Boo y algunos más.
La mayor parte de mi carrera trabajé en plataforma Microsoft, pero también trabajé sobre Unix (incluyendo también Linux y Mac OS), al principio CP/M e IBM 360, y cosas como Pick (Universe). |
 | ¿Qué configuración de máquina y sistema operativo usas? Uso varias. Mi computadora principal los últimos años ha sido una Mac, pero usualmente tengo varios sistemas operativos virtualizados, sobre todo un Windows 7 (ahora 8) para todo lo que es Windows, y un Ubuntu para algunas cosas, aunque todo lo que es basado en Unix usualmente lo hago dentro de la misma Mac. |
 | ¿Algunos trabajos tuyos que podamos ver en la red? |
 | ¿Qué es lo que te motiva a emprender un nuevo proyecto? Muchas cosas, pero principalmente resolver un problema. Tradicionalmente el problema es una situación de negocios, pero me ha tocado trabajar en proyectos del sector público donde el "negocio" es realmente ayudar a la comunidad (por ejemplo mejorando el sector de salud) y eso motiva más aun.
También participo en muchos proyectos que se enfocan en mostrar o enseñar tecnologías o métodos de trabajo, y esos son muy entretenidos. |
 | ¿Qué parte del desarrollo es la más gratificante? Depende del proyecto, pero en general, para mi lo mejor es entregar, ya sea al final de una iteración, o al final del proyecto, la gran entrega final.
Pero también es estimulante programar de a pares, resolver problemas específicos, o esos momentos en que uno encuentra una manera novedosa de resolver algo que termina teniendo mucho impacto en el proyecto. |
 | Desde fuera parece un trabajo muy racional, pero ¿es necesaria también creatividad para programar? Requiere mucha creatividad. Programar es diseñar todo el tiempo.
Por supuesto hay quienes no crean mucho, quienes toman la programación como un empleo cualquiera, pero para quien lo hace por vocación, exige mucha creatividad, sobre todo porque cada vez que uno hace algo parecido más de una o dos veces tiende a buscar una nueva abstracción para evitarlo. |
 | ¿Qué condiciones necesitas para concentrarte a programar? No hay muchas específicas. Para programar solo, usualmente escucho música y trato de aislarme por un rato del mail, twitter, etc, pero de a ratos.
En general prefiero programar de a pares con alguien, y entonces las condiciones varían según el socio del momento. |
 | Cuando revisas tu código de tiempo atrás, ¿cuál es la principal diferencia que sientes respecto al código que escribes actualmente? No hay actualmente. Siempre que veo código encuentro posibles mejoras.
Por supuesto que veo cada tanto código muy viejo que tiene más malos olores que el más nuevo, pero no es un problema. Si tengo que tocarlo, voy refactorizando lo que haga falta. Nunca toco código porque si, sin un motivo directo. Esto lo aprendí hace muchísimos años.
El peor código (de lo más viejo) es el que no tiene tests. Esto es en todo caso lo primero que me surge si tengo que mantenerlo. Si tiene suficientes tests, no es terrible aunque pueda mejorarse. |
 | ¿Te sigues comprando libros de programación, o ya todo lo aprendes online? Sigo comprando libros todo el tiempo, aunque consumo muchísima información online. |
 | ¿Crees que se debería enseñar programación en la educación básica? Si, creo que a esta altura, los conceptos básicos de programación son como los rudimentos de las matemáticas, y de hecho la programación básica es muy buena para eprender matemáticas y física. |
 | ¿Cuál ha sido tu experiencia haciendo el marketing de tus programas? En general no lo he hecho, más que hace muchísimos años. No me interesa mucho el marketing, sino que la gente (o el mercado) realmente conozca lo que hago, sin mucha publicidad. Y en general me va bien así; no pretendo más. |
 | ¿Qué aprendes de los usuarios? En general, todo. No creo que haya posibilidad de desarrollar algo sin ellos de por medio. Incluso cuando hago pequeñas herramientas de las que luego soy el usuario mismo, cambio de sombrero y me "pido" nuevas características una vez que empiezo a usarla.
Sin feedback del usuario sólo creamos actos de soberbia, no software. Lamentablemente es algo frecuente en la industria. |
 | ¿Cuál sería tu solución a la pirateria? Creo que la piratería es un problema relativo y bastante exagerado. Me parece que es importante respetar el derecho de autor, pero también que las leyes de propiedad intelectual no están bien adecuadas a la realidad actual, y generan a veces oportunidades de negocio para la piratería, que para mi es quien lucra con la propiedada intelectual ajena.
Me parece que la mejor solución es la apertura y la búsqueda de servicios de valor agregado por encima de la propiedad intelectual misma. Hay muchísima gente que vive decentemente del código abierto y libre, o producciones intelectuales bajo Creative Commons, que por definición no sufren de la piratería. |
 | ¿Te consideras muy riguroso en tu organización del código que escribes y en comentarlo? Intento ser riguroso en los tests y la refactorización. Cuando tengo que escribir un comentario generalmente me quedo con idea de que no encontré una forma más expresiva para el código. Para mi los comentarios son en general un "mal olor", salvo encabezamientos o enlaces a algun documento adicional externo. |
 | ¿Cómo calculas el presupuesto para un proyecto de software? Depende de las limitantes: tiempo, presupuesto o alcance.
Generalmente la limitante principal es el tiempo, por lo que suelo presupuestar en base al tiempo de proyecto por los recursos involucrados. La manera de asegurar el alcance en el tiempo dado es iterando rápidamente y construyendo lo principal del alcance, sin accesorios, en aproximadamente la mitad del tiempo disponible. Lo que queda es mejorar el conjunto incrementalmente hasta llegar al final. |
 | ¿Cuáles son tus juegos favoritos y en qué plataforma los juegas? No juego a casi nada, aunque cada tanto me gusta que me muestren juegos nuevos para ver el estado de la animación, texturas, etc. |
 | ¿Con qué frecuencia limpias la suciedad que se acumula en tu teclado? Nunca dejo que se ensucie. Si por casualidad sucede, lo limpio en el momento.
Si ocurre que se engrasa, porque la piel de mis dedos es grasa. Así que cada tanto limpio con un producto especial el teclado y la pantalla. |
 | ¿Cómo te sientes cuando amigos o familiares te piden ayuda para resolver problemas con sus ordenadores? Es una consecuencia de mi trabajo, y no me molesta. Generalmente trato de enseñarles un poco, y tengo una series de herramientas seleccionadas para ayudarme a solucionar problemas o prevenirlos. |
 | ¿Qué opinión te merecen los Macs como máquinas para desarrollo? Personalmente lo encuentro uno de los mejores, pero com siempre, depende del contexto. A mi me conviene y me resulta familiar un entorno Unix, y la Mac es un hardware excelente, por lo que puedo ejecutar Windows virtualizado que funciona tan bien como si fuese una instalación física (y a veces mejor que en otras computadoras). |
 | ¿Cómo proteges tu máquina de infecciones? Con nada. Soy cuidadoso y no dejo que nada raro se ejecute. No he tenido casi ningun problema en mis computadoras personales.
En el caso de familiares o amigos, que pueden no discernir tan fácilmente qué instalar y qué no, les recomiendo en general usar AVG free para Windows. |
 | ¿Trabajas en solitario o en equipo? ¿qué te gusta más? Siempre prefiero trabajar en equipo para proyectos "reales". Los casos en que trabajo en solitario suele ser cuando estudio algo o trabajo en algo personal.
Son ritmos separados. Puedo trabajar solo un rato, pero no es algo que pueda disfrutar a largo plazo. |
 | ¿Eres de los primeros en actualizar tu software cuando se estrena, o te sueles esperar a que aparezcan versiones más estables? Por motivos profesionales, suelo trabajar con versiones preliminares incluso antes de que se publiquen, pero en general suelo utilizar versiones beta de otras cosas, cuando confío en la calidad del productor, o cuando no es algo de lo que tenga una fuerte dependencia.
También uso mucha virtualización para probar cosas inestables. |
 | ¿Cuál es la principal razón por la que no se cumplen las fechas de entrega de los proyectos? Hace muchos años que logro que esto no me suceda, pero el problema suele ser no construir incrementalmente, lo que hace que no haya feedback temprano y frecuente como para poder minimizar este problema.
Mi respuesta a quienes sufren este problema endémico es comprender y utilizar la metodologías ágiles. Por eso soy parte desde hace años de http://agiles.org |
 | ¿En tu opinión, qué compañía ayuda más a los desarrolladores de software? Ninguna compañía ayuda tanto como la comunidad misma. Lo que muchas compañías como Microsoft, Google o Apple hacen bien es apoyar a las comunidades de desarrolladores. Y en mi opinión, lo más importante que deben aprender es a no considerar que es la "comunidad Microsoft" o la "comunidad Google". Un desarrollador construye soluciones y si bien puede enfocarse mucho tiempo en una plataforma, nada lo ata completamente, y siempre estará viendo las otras. |
BLOGGER
 | ¿Cuál es la dirección de tu blog? ¿Qué temas tratas? http://codeandbeyond.org
Trato sobre desarrollo de software, principalmente enfocado en la audiencia iberoamericana, con un poco más de énfasis en Argentina porque es donde vivo, pero trato de apuntar a todos los que hablan español.
Comento sobre eventos, lenguajes, plataformas y novedades, y publico cada tanto videos en los que programo de a pares con otra gente, como una forma de entrevista muy enfocada a desarrolladores. |
 | ¿Qué es lo que te hizo crear tu blog? ¿En qué fecha lo iniciaste? Fue la decisión de compartir más sistemáticamente lo que hago, pero con una perspectiva más generalista. Inicié este blog, separado del mío personal, en octubre de 2010, y en promedio publico 4 o 5 post semanales. |
 | ¿Qué sistema de blog has adoptado y por qué? Uso blogger porque es donde tengo también mi blog personal y porque en general tiene las funciones que necesito. No tengo motivos enormes para mudarlo, pero hoy probablemente elegiría Wordpress o Tumblr. |
 | ¿Cuántas visitas recibes al dia? ¿Qué clase de comentarios recibes de los visitantes? Entre 100 y 200. No tengo muchísimos comentarios, pero generalmente son para aportar algun dato o experiencia extra sobre algo que publiqué, o para pedir algun dato extra (que usualmente no tengo). |
 | ¿Qué te ha aportado tener un blog? Me aporta un buen ejercicio de disciplina, pero para mi lo más importante es aportar a los demás, no lo que me aporta a mi. Es un canal de comunicación ordenado, que me genera cierta responsabilidad. Cada tanto por cuestiones profesionales me queda poco tiempo y publico sólo uno o dos artículos a la semana, y para mi es un alerta de que no estoy suficientemente activo. |
 | ¿Has creado relaciones con otros bloggers o con algunos de tus lectores? No a partir del blog. Mis relaciones en general son previas o se dan más alla del blog. |
 | ¿Con qué frecuencia posteas? ¿Representa un esfuerzo posterar con regularidad? 4 o 5 veces a la semana.
Si es un esfuerzo, pero también un ejercicio importante, como hacer gimnasia o practicar un deporte. |
 | ¿Te reporta ingresos el blog? ¿Se puede vivir de esto, de postear? No, pero no es mi objetivo. Se que hay gente que vive de eso, pero creer que cualquier blog puede convertirse en tu fuente de ingresos es como creer que cualquiera que escriba puede convertirse en periodista o escritor profesional. |
 | ¿Cómo promocionas tu blog? No lo hago. Solamente twitteo cada post y dejo que la gente lo replique si le interesa. |
 | ¿Cómo definirías a tus lectores? ¿Tienes una audiencia fiel? Mis lectores son desarrolladores como yo, y diría que hay una gran cantidad que son lectores asiduos, pero no me interesa que sean fieles. Me interesa que cada tanto alguien saque provecho de lo que escribo. Con eso me conformo. |
 | ¿Otros blogs que sigas a diario o con frecuencia? |
 | ¿Has recibido alguna vez regalos por opinar en tu blog sobre productos o servicios? ¿Qué opinas de los bloggers que lo hacen? No directamente por mi blog, pero si hace mucho tiempo por una columna en una revista. Me parece que está bien si alguien quiere agradecer por un comentario.
No me parece muy bueno cuando alguien promociona un producto o servicio para obtener un beneficio sin hacerlo explícito como publicidad, pero sobre todo, confio en que mi audiencia tiene la inteligencia como para saber quien está recomendandole algo por interés o porque realmente valora el sujeto. |
 | ¿Cómo ves tu blog evolucionando en el futuro? No muy diferente de como es ahora. En la medida en que pueda, incluiré más videos de programación de a pares u otros temas, pero no preveo grandes cambios. |
 | ¿Qué consejos le darías a alguien que quiere iniciar un blog? Que siga lo que su corazón le dicte. Leo a alguna gente que postea una o dos veces al año pero cuyos posts son fabulosos, y gente que postea información mínima pero valiosa, gente que publica ideas, trucos, incluso algunos solo links a otros recursos.
La grandeza de internet es que hay lugar para todo. |
|
353 visitas Whohub [msalias] Martin Salias Buenos Aires, Argentina
|