Emprendimientos Digitales 18
El Peor Proyecto Que Un Informático Puede Aceptar.
Escoger Bien A Un Socio Es Clave Para Emprender.
Esta historia se repite muy seguido, alguien se entera de que eres informático o le han contado que tienes las capacidades para hacer un sitio o aplicación e inmediatamente te dice, “mira te puedo ofrecer el 50% (el porcentaje varía de historia a historia) de mi empresa si me desarrollas este proyecto x”.
La oferta casi siempre viene acompañada de un “Ya tengo la idea validada, o tengo todo listo sólo me falta el desarrollo, o ya tengo hecho un plan de negocios” y, otras veces la oferta viene acompañada de un “Tengo muchos contactos en este ambiente”.
La primera vez que uno escucha esta oferta parece casi irresistible, lo que todavía no sabes y muy pronto te enterarás es que hay varios locos como este dando vueltas y si rechazas una oferta todavía tienes la oportunidad de escoger entre miles más, así que no te apures.
¿Por qué debes rechazar esta oferta?
Es muy atractiva la idea de trabajar en una Startup o emprendimiento, pero si estas trabajando en un proyecto donde eres la única persona que corres el riego probablemente ese proyecto no llegará lejos y habrás gastado cientos de horas de tu vida construyendo un programa que nunca nadie utilizará.
Como escoger un buen socio.
No todas las personas que buscan un socio informático están locos y no todo loco es un mal socio, cierto grado de locura es necesario en un socio. Hay emprendedores buenos en este ecosistema y proyectos muy interesantes en los que puedes participar, pero asegúrate de encontrar uno bueno antes de dedicarle uno o dos años de tu vida a un proyecto que nunca verá la luz.
El truco para identificar a un buen socio es que sea proactivo, por ejemplo da lo mismo que no haya estudiado informática, si levantó una primera página sólo o ha tomado cursos al respecto es buena señal de que está interesado en meterse en el mundo de los emprendimientos digitales.
Obviamente las señales no se dan únicamente en el mundo digital, si la persona ha logrado ventas con su prototipo aún cuando este no esté terminado es una buena señal de que ese proyecto verá luz.
Evita a los chantas !
El mundo del emprendimiento es un mundo de caballeros, donde la palabra vale mucho, pero eso no quiere decir que dentro de el no haya chantas(palabra chilena que describe a una persona que no cumple sus promesas).
Para detectar a los chantas basta con un poco de google y contactar a su red de contactos, Antes de firmar una sociedad puedes hablar con los amigos de tu potencial futuro socio y ver cuantas personas realmente ponen las manos al fuego por él.
Minimizando riesgos
Si el proyecto parece ser interesante pero la persona no te da confianza siempre puedes cobrar por tu participación, o sea en lugar de que te den un 50% de la empresa puedes pedir el 25% más un sueldo fijo, si la persona está dispuesta a pagar para desarrollar el proyecto es porque realmente cree en el.
Otras opciones
Si estas interesado en emprender pero no encuentras ningún proyecto que se vea interesante siempre puedes apoyar un proyecto existente, existen decenas de miles de proyectos de software libre que necesitan de tu ayuda y haber ayudado a un proyecto de software libre suma muchos puntos en el Currículum.
Y si realmente quieres trabajar sin que te paguen entonces apoya a una fundación, hay muchas de ellas que necesitan apoyo en informático.
Por qué elegimos Rails
Un poco de historia
Después de haber fracasado en nuestro primer emprendimiento, con mi amigo y socio Felipe Salamanca decidimos que está vez íbamos a crear una startup que aprovechara más nuestras aptitudes. Ambos ingenieros industriales TI habíamos desarrollado aplicaciones cuando éramos universitarios, por lo que con nuestra formación crear un SaaS (software como servicio) no parecía mala idea, a pesar de que no habíamos desarrollado nada en los últimos 6 años. Con mucho optimismo e ingenuidad decidimos crear un software para optimizar la publicidad en Facebook y lo llamamos RocketAd.
La elección de Rails
Con un producto “definido” en mente empezamos la búsqueda del framework que se ajustara a nuestras necesidades. Sin entender mucho las razones por detrás, nos decidimos por un framework para desarrollo ágil con lenguaje dinámico, porque eso en teoría era lo más rápido. Así que después de mucho google, foros, blogs, stackoverflow, quora, etc… llegamos a dos candidatos: Rails y Django. Lo que concluían la mayoría de estos sitios es que ambos frameworks son espectaculares y opciones seguras, por lo que la decisión final dependía de razones personales. Finalmente nos quedamos con Rails por dos razones específicas:
- La comunidad en Chile de Rails es mucho más grande que la de Django, por lo que cualquier duda o contratar un desarrollador sería más simple
- Justo apareció un emprendimiento que enseñaba Rails (sí, se llama En1Mes), así ambos nos podiamos poner al día al mismo tiempo y con profesores para sacar dudas
6 Meses más tarde
Hace 6 meses atrás realmente no sabíamos que construir, nuestra aplicación tiene más de 60 migraciones en la base de datos y lo que nosotros definimos como MVP ha tenido muchas mutaciones. De hecho ya no “optimizamos” la publicidad en Facebook, simplemente la “automatizamos”, aunque parezca un detalle menor, eso cambió totalmente nuestra startup. Ahora entendemos mejor lo que significa el desarrollo ágil y las virtudes de un lenguaje dinámico. Pero no todo ha sido amor con Ruby on Rails, hay ocasiones que hemos odiado su “magia”, sobre todo cuando no sabemos de donde vienen las cosas. Pero sumando y restando claramente fue una excelente decisión. Jamas diría que Rails es el mejor framework del mercado, pero sin dudas es una opción segura para el 90% de los casos. Hay mucho hype dando vuelta con nuevos frameworks, stacks y guerras religiosas, pero al final del día lo único que realmente importa es que alguien esté interesado en lo que estas creando. Y para trabajar en ese mundo iterativo Rails sigue siendo uno de los grandes.
El programador Full Stack
El programador Full Stack es el generalista de los programadores, vendría siendo como el ingeniero civil industrial dentro del mundo de la informática con todo un arsenal de habilidades técnicas y no hay que confundirlo con el desarrollador Senior.
En resumen un programador full stack es un programador que puede crear aplicaciones complejas desde cero el sólo, para ello debe ser una persona que entienda en profundidad como interactúan las distintas capas de servicio de una aplicación.
1
Desarrollo Web laMP
El Kit más básico para ser un programador Full Stack es conocer desarrollo de aplicaciones WEB + LAMP, o sea Linux, Apache, MySQL y PHP, ahora muchas de estas tecnologías son intercambiables por otras similares, NginX en lugar de Apache, PostgreSQL en lugar de MySQL y Ruby on Rails en lugar de PHP, pero se entiende la idea.
Por supuesto que existe un equivalente Microsoft del Stack anterior, sería Windows + Microsoft IIS + .NET + SqlServer.
2
DESARROLLO WEB MEAN
El siguiente kit de un full stack developer es el llamado MEAN, que consiste en MongoDB (un motor de bases de datos no relacional) Express (que es un framework para Node y sólo se menciona antes que Node.js para que el acrónimo sea pronunciable), Angular el cual es un framework MVC (o MVVM) muy potente del lado cliente y Node, el famoso framework del lado servidor de javascript.
A diferencia del kit anterior este stack busca entregar la mayor cantidad de carga al lado del cliente pero requiere de una forma bien distinta de pensar las cosas.
3
Modelamiento
Claro, no se puede ser un desarrollador de aplicaciones independiente y no conocer de modelamiento y análisis de requisitos, Estos dos skills son mandatorios. Obviamente estos no son sólo conocimientos teóricos sino que se traducen en habilidades técnicas reales, conocer y manejar diversos tipos de diagrama de datos, partiendo como mínimo UML
4
Control de Versiones
Además un programador Full Stack debe saber ocupar herramientas de control de versiones como GIT, (SVN es mirado despectivamente dentro de los círculos snobs de programadores), y saber vincular GIT con herramientas de testing y deployment
5
Testing
Todos sabemos que la ley de murphy aplica siempre a menos de que estamos tratando de demostrar la existencia de la ley de murphy así que hay que testearlo todo y automatizar los testing.
6
PAAS y soluciones Cloud
Un buen programador Full Stack debe entender de manejo de PAAS como Heroku y Amazon, no sólo como usarlas si no que entender sus costos y como escalan y cuando deben ser usadas estas soluciones y cuando no.
7
Big Data, Scrapping y métricas
Este tipo de programador también debe saber de manejo de datos y cómo utilizar herramientas para análisis de ellos, o sea, sumemos a los requisitos conocer Hadoop y entender de operaciones map reduce. Además debe entender como extraer datos de sistemas de analíticas como googleanalytics, hay que tener en mente que el programador Full Stack no sólo es un programador, es además un análista.
Y como este tipo es un Rambo de la programación cuando no se tienen los datos debe saber scrappearlos de la web. Para analizar estos datos este Batman de la programación dispone en su cinturón herramientas decenas de algoritmos de Machine Learning e Inteligencia Artificial.
8
Aplicaciones Móviles
De Batman a Superman no hay mucha distancia, y como el full stack developer tiene que estar 100% actualizado obviamente debe saber como crear aplicaciones móviles, tanto híbridas como nativas, lo que suma a los requisitos conocer de frameworks web-mobile como PhoneGap y Titanium, de Frameworks Mobile como Ionic y Ratchet y obviamente debe saber Objective C (y Swift) y Java.
9
SEO y Sem
Hay que tener en mente que no es sólo suficiente construir, hay que publicar, y saber llegar a la gente y hay que saber ponerse en lugares para que la gente llegue aquí, publicar en las appstores es un arte, y estar primero en Google es una constante guerra y se hace mucho más difícil cuando la internet está llena de consejos malos.
10
Redes
Para que el arsenal esté completo, a este superheroe también se le pide que sea un experto en redes, y eso no es tan simple como montar una WIFI,hay que saber montar firewalls y hay que saber lidiar con iptables que definitivamente no es para novatos.
Las empresas cada día requieren de redes e infrastructuras más complejas y resistentes a ataques lo que me lleva al siguiente punto.
11
Seguridad Ofensiva
La mejor defensa es un ataque y ninguna persona que no esté constantemente leyendo los reportes de seguridad e intentando atacar sitios web puede estar al día en la defensa de su sitio, Un programador que no saber realizar inyecciones de queries via SQL es el mismo programador que dejará expuesta toda la base de datos de su aplicación. No digo que haya que andar por la vida haciendo daño sólo digo que es importante saber de seguridad informática.
Programadores Full Stack Vs Mundo Laboral
Es normal que las empresas quieran conseguir a los mejores trabajadores por la menor cantidad de recursos posibles puesto que en pedir no hay engaño, pero tener este tipo de conocimientos no es trivial, si bien se entiende que el full stack developer tiene más amplitud de conocimiento que profundidad entender de todos estos temas demora de muchos años de práctica por lo tanto no existe ni existirá algo así como Full Stack Developer Junior.
Hoy en día los alumnos salen de sus carreras de computer science, o ingeniería informática sin conocimientos de estos temas, por lo que una empresa los pida significa que este alumno debe tener 4 años de estudios universitarios y cómo un mínimo 5 a 10 de practica, o sea un Full Stack Developer tiene la misma experiencia de un Senior y como son técnicamente inexistentes les llaman los Unicornio de las programación.
Como empresa En1mes entiende de las necesidades de la falta de personas capacitadas en la industria, tanto en las areas de emprendimiento como en la industria formal TI y es por eso que hemos armado un Bootcamp especial para aplanar la curva de aprendizaje de estas tecnologías.
Bring your Cup | 4º Lugar mundial en el hack4good
Felicitaciones a los ex-alumnos de En1mes | Daniela Gattoni, Cristián Venegas, Rodrigo Ruy Checa, por sacar el cuarto lugar a nivel mundial en la hackathon de hack4good
El proyecto:
Una idea sencilla pero potente, una aplicación web que te incentiva a traer tu propio vaso o (mug) para que no utilices vasos plásticos, a fin de cuentas el mejor residuo es el que no se produce
El equipo:
¿Qué ganaron?
Como salieron primer lugar en Chile ganaron un viaje a valle nevado, nada mal, pero no sólo eso, además salieron 4 lugar en el mundo dentro de los cientos proyectos presentados, así que felicitaciones !!
Además Daniela Gattoni ya es uno de los mentores confirmador para Rails Girls 2.0 en Santiago de Chile.
RailsGirls Santiago 2014 (2º edition)
Acaba de empezar el periodo de inscripciones para la segunda versión del evento RailsGirls
¿Qué es Rails Girls?
RailsGirls es un evento que busca incentivar a las mujeres a empezar carreras tecnológicas en el mundo de la programación, entregándole conocimientos prácticos y herramientas para construir potentes proyectos digitales en Ruby On Rails.
Durante este evento de un fin de semana aprenderás a prototipear proyectos en ruby on rails, a trabajar en equipo y tendrás la oportunidad de escuchar apasionantes charlas de tecnología de mujeres que han logrado destacar en la industria.
Si aún no estás convencida te participar en RailsGirls Santiago te dejamos el video de la primer evento realizado.
¿Donde será el evento?
Rails Girls Santiago 2º Edition será en las geniales oficinas de Groupon los días 10 y 11 de octubre.
[easy_contact_forms fid=5]