Upload
martinb35
View
605
Download
2
Embed Size (px)
Citation preview
Cómo trabajar con programadoresTaller Emprending 2015
Martin Becerra@martinb35
Nicolás Morandi
● Experiencias?
● Resultados?
● Problemas?
● Proyectos?
Algunas encuestas
Antes de pensar en un programador para tu app o sitio web...
● Experimentar.● Crear prototipos con tus
conocimientos.● ¡Validar!
Definir un Mínimo Producto Viable (MVP)
Cómo definir un producto
● Explicar problema, solución y target de usuarios.
● Buscar competidores. Ventajas y desventajas.
● Mapa del producto. Diagramas de flujo.
● Bocetos (moqups.com).
● Documentar (escribir, mucho!).
● Ejemplificar con sitios existentes.
● Casos de uso.
Lenguaje ≠ Framework ≠ CMS
Tecnologías y tendencias
Web front-end● HTML
● CSS
● JavaScript
○ jQuery
○ AngularJS
● Bootstrap
Tecnologías y tendencias
Tecnologías y tendencias
Back-end● PHP
○ Laravel
○ Symfony
○ CodeIgniter
● Phyton
○ Django
● Ruby
○ Ruby on Rails
● .NET
● Java
○ Spring MVC
● Scala, Clojure, Go, etc..
Tecnologías y tendencias
Mobile● Phonegap/Cordova
● Objective-C / Swift (IOS)
● Android
● Windows Phone
● Ionic
Tecnologías y tendencias
Content Management Systems● Wordpress
● Drupal
● Joomla
● RefineryCMS
● Magento
Lenguajes
Metodologías de desarrollo
Tradicionales Ágiles
ÁgilesTradicionales
● Proceso lineal● Modelo rígido e
inflexible● Alto costo de cambio● Foco en Planificación y
procesos● Tiempos y presupuesto
predecibles
● Iteraciones cortas● Modelo flexible● Costo de cambio
reducido● Foco en Software de
alta calidad● Tiempos y presupuesto
difícil de predecir
Metodologías ágiles
● Iteraciones cortas
● Fácil de pivotear
● Prototipos o desarrollos incrementales
● Evaluación constante del producto y las
prioridadesStartups like this
Metodologías ágiles: Scrum
● Metodología ágil y flexible para gestionar el desarrollo de software
● Reconoce que los requerimientos del cliente pueden cambiar.
Comunicación
● Ser claros y concisos
● Definir horarios de reuniones o llamados
● Comunicarse frecuentemente
● Probar distintas herramientas y canales
Herramientas de comunicación
Para manejar proyectos:- Basecamp- Trello- Asana- Teamwork
Para manejar proyectos de desarrollo (+ avanzado):- Jira- PivotalTracker- Assembla
Vocabulario
Buscando programadores1. Recomendaciones de conocidos
2. Portales de trabajos freelance
- Workana- Nubelo- oDesk.- Freelancer.com
3. Comunidades y grupos de lenguajes específicos.
- http://grupophp.com.ar/- http://python.org.ar/- Meetups
4. LinkedIn
5. Universidades - Escuelas de desarrollo
- coderhouse.com- itmaster.com.ar
6. Agencias de desarrollo
- Latinbrain.com
7. Consultoras RRHH de IT
- XimpleHR
8. Toptal
Entrevistando programadores
● Pedir portfolio. Ver trabajos realizados.
● Plantear un problema y preguntar cómo lo resolvería.
● Reputación online (LinkedIn, GitHub, StackOverflow, oDesk, Workana).
Identificando buenos programadores
● ¿Es inteligente? ○ ¿Es apasionado? ¿Tiene opiniones propias?
○ ¿Es curioso?
○ ¿Aprende? ¿Se comunica bien?
● ¿Hace cosas?○ ¿Se especializó en algo?
● ¿Quiero trabajar con esa persona?
Una buena receta...
1. Reducir la gran idea a una versión 1.0.
2. Crear una descripción simple.
3. Describir detalladamente el recorrido por todo el sistema.
4. Separar el proyecto en hitos.
Una buena receta...
5. Hacer el primer hito, una proyecto independiente.
6. Postearlo en portales de trabajo (oDesk, Workana, Nubelo, etc).
7. Contratar varios candidatos para el primer hito.
8. Continuar el proyecto con el que más te gustó.
Tips
● Mantener a los programadores motivados● Dar especificaciones detalladas● Cambios de último minuto● Planificar reuniones● Feedback constante● Recomendaciones técnicas● Medios de comunicación
Resumen
● Validar con tus propias manos con Lean Startup.
● Reducir una versión MVP al mínimo.● Elegir programador, no tecnología.● Aprender de las metodologías ágiles.● Trabajar con programadores requiere
mucho trabajo.
Referencias- http://quickbooks.intuit.com/r/online-and-digital-products/terms-know-working-programmers- http://rudyonweb.net/cms-framework-cmf/- http://mashable.com/2015/01/18/programming-languages-2015/- http://qph.is.quoracdn.net/main-qimg-b0d6b2d98ae66f82b2ff77a6c02d099c?convert_to_webp=true- http://www.aaronsw.com/weblog/hiring- https://signalvnoise.com/posts/2628-how-to-hire-a-programmer-when-youre-not-a-programmer- http://www.quora.com/How-does-a-business-person-hire-a-good-developer-programmer-engineer-on-eLance-or-oDesk- http://programmers.stackexchange.com/questions/33816/how-to-recognize-a-good-programmer- https://sivers.org/how2hire- http://en.wikipedia.org/wiki/Scrum_%28software_development%29- https://www.scrum.org/- http://quickbooks.intuit.com/r/online-and-digital-products/terms-know-working-programmers- http://www.guessmate.me/blog/2012/10/10-commandments-for-attracting-and-keeping-great-developers/- http://www.agilemanifesto.org/iso/es/manifesto.html- http://www.agilemanifesto.org/iso/es/principles.html- https://blog.udemy.com/agile-vs-waterfall/- http://agilemethodology.org/- http://www.quora.com/How-do-I-choose-which-programming-languages-for-my-websites-startup