martes, 27 de noviembre de 2012
¿Que es Desarrollo Ágil de Software?
lunes, 26 de noviembre de 2012
¿Qué es SCRUM?
domingo, 18 de noviembre de 2012
Dos formas de protección del software
La protección del software se puede dividir en dos partes:
- Protección del software desde la misma programación, desde el mismo código fuente.
- Protección del software utilizando Ingeniería Inversa. Esto se suele hacer con programas denominados packers.
- La protección desde el mismo código fuente la realiza el programador. El programador según su propia experiencia, conocimiento de Ingeniería Inversa, imaginación será el que ponga las dificultades al cracking de su software. Crear licencias, programa DEMO y protección puede ser una labor muy costosa en tiempo y pruebas, pero también existe muchísima información en la red.
- La protección utilizando Ingeniería Inversa es a partir de tu programa ya compilado, crear impedimentos al cracking. Esto se hace normalmente con programas protectores denominados: packers, empacadores. La utilización de estos programas son una gran ventaja ya que permiten crear licencias, crear programas DEMO o con restricciones, crear protección contra debuggers y/o desensambladores, comprimir tu aplicación, crear un sólo ejecutable sin tener dependencias y unas cuantas opciones que dependen del packer que estemos utilizando.
Programador vs Webmaster
Se encarga de la implementación de prototipos mediante un lenguaje de programación que pueda entender la computadora. Inicialmente, la profesión se formalizó desde el enfoque Tayloriano de la especialización de funciones en la empresa. Así, el proceso de producción de software se concibe como un conjunto de tareas altamente especializadas donde está claramente definido el papel de cada categoría profesional.
La profesión de analista también ha evolucionado, surgiendo el concepto diseñador (de software). Esto se debe a los avances de la ingeniería del software donde se reconoce que el análisis es una actividad distinta del diseño. El análisis describe el problema (el qué hacer) mientras que el diseño describe la solución (el cómo hacerlo). En la mayoría de países industrializados esto ha dado lugar a la categoría profesional del diseñador o arquitecto del software.
Webmaster:
La labor de un Webmaster es multidisciplinar debido a la gran cantidad de tareas que realiza y a la complejidad de las habilidades para ejecutarlas, por lo que es muy importante una capacitación constante.
Sin embargo hay algunos puntos básicos que debería conocer para realizar mejor su trabajo. Es común que un Webmaster sea alguien con formación técnica, de perfil tecnológico, como ingenieros o licenciados en computación, ciencias informáticas, cibernética, telecomunicaciones, mecatrónica o mecánica, y sin embargo no es un requisito.
Un Webmaster debe tener habilidades de análisis de problemas, capacidad para razonamiento abstracto, proyección a futuro y resolución de problemas. No es necesaria una gran habilidad matemática pero es muy útil tener cierta habilidad para el análisis de procesos.
Código de Etica del Webmaster:
- Respetar los sitios web ajenos y nunca intentar crackear o estropear la web de otro webmaster.
- Mostrar respeto a la profesión como industria con honestidad y cortesía.
- Incrementar la base de conocimiento de la profesión a través del estudio constante y de compartir este conocimiento con otros colegas.
- Construir una relación constante de confianza y buena voluntad con el público usuario.
- Llevar una conducta laboral de la manera más ética y competente posible cuando se solicite un servicio profesional o busque empleo, en honor a su conocimiento e integridad.
- Aceptar nuestra parte de responsabilidad en un servicio constructivo a la comunidad.
- Proteger la propiedad intelectual de otros.
- Esforzarse en lograr y expresar un carácter sincero que enriquecerá sus contactos humanos.
- Trabajar siempre con su grupo de desarrollo.
jueves, 1 de noviembre de 2012
Técnicas de Depuración de Programas
- Ejecutar paso a paso un programa (stepping).
- Establecer puntos de detención (breakpoints).
- Examinar el contenido de las variables y objetos.
- Conocer el encadenamiento de llamadas de procedimientos.
- Retomar la ejecución hasta un nuevo punto de detención.
- Dentro de un while, siempre coloque algún println que permita detectar cuando cayó en un ciclo infinito su programa (un loop). Despliegue el valor de contadores, datos leídos de un archivo, acumuladores, etc.
- Al inicio de una función o procedimiento, despliegue el valor de los parámetros recibidos y al retornar despliegue el valor retornado (mediante return).
- En un if, despliegue cuál de las ramas se tomó: la que corresponde a la condición verdadera o el else.
java Run -l MiPrograma
Fuente: http://users.dcc.uchile.cl/~lmateu/CC10A/Apuntes/debug/index.html
¿Qué es Auditoría de Software?
- Establecer y acordar una serie clara de objetivos y comunicarla a todos los empleados asociados con la auditoría.
- Focalizarse en los resultados que se requieran de la auditoría y discutir las áreas donde se crea pueda haber problemas.
- Identificar las áreas simples pero muchas veces olvidadas que necesitan ser consideradas, tales como:
- Acceso a sitios y creación de mapas de esas locaciones
- Conocer con anticipación los log-on scripts de seguridad o claves.
- Horario de la auditoría (durante el día, noche o fin de semana).
- Diseñar el plan y el cronograma de la auditoría, así como también las herramientas de auditoría que serán usadas.
- Asignar recursos para cada elemento específico de la auditoría.
Procedimientos Recomendados para la Confiabilidad del Software
Fuente: http://carolina.terna.net/ingsw3/datos/Pruebas_de_Confiabilidad.pdf
¿Qué es Calidad de Software?
- Los requerimientos del software son los fundamentos desde los que se mide la calidad.
- Los estándares específicos definen un conjunto de criterios de desarrollo que guían la forma de aplicación de la ingeniería de software existen requerimientos implícitos que no se mencionan.
- Un producto de alta calidad requiere menos mantenimiento y facilita tanto el desarrollo como el mantenimiento de la productividad. Con la medición de la calidad se pueden lograr estos objetivos. En lo que se refiere al mantenimiento, la medición de la calidad del software ayuda a identificar problemas de confiabilidad y a mejorar las técnicas para identificar las necesidades de mantenimiento.
- modelos que predicen la confiabilidad como una función cronológica del tiempo
- modelos que predicen la confiabilidad como una función del tiempo de procesamiento transcurrido
- Métodos y herramientas de análisis, diseño, codificación y prueba
- Revisiones y técnicas formales que se aplican en cada fase de la ingeniería de software
- Una estrategia de prueba multiescalada
- El control de la documentación del software y de los cambios efectuados
- Un procedimiento que asegure un ajuste a los estándares de desarrollo
- Mecanismos a medida y de información
Fuente: http://www.ub.edu.ar/catedras/ingenieria/ing_software/ubftecwwwdfd/calidadsw/calidad.htm
¿Qué es Confiabilidad de Software?
martes, 30 de octubre de 2012
Afirmaciones erróneas acerca de la Seguridad Informática
- Mi sistema no es importante para un cracker
- Estoy protegido pues no abro archivos que no conozco
- Como tengo antivirus estoy protegido
- Como dispongo de un firewall no me contagio
- Tengo un servidor web cuyo sistema operativo es un Unix actualizado a la fecha
Fuente: http://es.wikipedia.org/wiki/Seguridad_inform%C3%A1tica
domingo, 28 de octubre de 2012
Lenguaje Python
Python es un lenguaje de programación de alto nivel que se utiliza para desarrollar aplicaciones de todo tipo. A diferencia de otros lenguajes como Java o .NET, se trata de un lenguaje interpretado, es decir, que no es necesario compilarlo para ejecutar las aplicaciones escritas en Python, sino que se ejecutan directamente por el ordenador utilizando un programa denominado interpretador, por lo que no es necesario “traducirlo” a lenguaje máquina.
Python es un lenguaje sencillo de leer y escribir debido a su alta similitud con el lenguaje humano. Además, se trata de un lenguaje multiplataforma de código abierto y, por lo tanto, gratuito, lo que permite desarrollar software sin límites. Con el paso del tiempo, Python ha ido ganando adeptos gracias a su sencillez y a sus amplias posibilidades, sobre todo en los últimos años, ya que facilita trabajar con inteligencia artificial, big data, machine learning y data science, entre muchos otros campos en auge.
Python remonta su origen a principios de los años 90, cuando Guido Van Rossum, un trabajador del Centrum Wiskunde & Informatica (CWI), un centro de investigación holandés, tuvo la idea de desarrollar un nuevo lenguaje basándose en un proyecto anterior, el lenguaje de programación “ABC”, que él mismo había desarrollado junto a sus compañeros.
Su filosofía fue la misma desde el primer momento: crear un lenguaje de programación que fuera muy fácil de aprender, escribir y entender, sin que esto frenara su potencial para crear cualquier tipo de aplicación. En aquellos años, el hardware que había no permitía tal cosa, y es por eso por lo que Python ha resurgido durante los últimos años, porque el avance de la tecnología ha permitido alcanzar el objetivo inicial de este lenguaje de programación adelantado a su tiempo.
Python es un lenguaje de programación multiplataforma, algo que permite desarrollar aplicaciones en cualquier sistema operativo con una facilidad asombrosa. Una gran cantidad de tecnologías se llevan muy bien con Python debido a su sencillez y a su gran potencia para el tratamiento de datos, algo que sin duda ha hecho resurgir este lenguaje a nivel laboral, donde cada vez son más las empresas que solicitan expertos en Python.
Usos:
- Data analytics y big data: El uso de Python está muy extendido en dos áreas que han estado, y estarán, en boca de todos: el análisis de datos y el big data. Su simplicidad y su gran número de bibliotecas de procesamiento de datos hacen que Python sea ideal a la hora de analizar y gestionar una gran cantidad de datos en tiempo real. Python está siendo utilizado en la actualidad por muchísimas empresas, tanto de forma directa, como indirecta. Analizar una gran cantidad de datos para transformarlos en información útil para el big data es una de las especialidades de Python.
- Data mining: La minería de datos o data mining es un proceso que permite analizar grandes bases de datos con el objetivo de predecir futuras tendencias. Se trata de un proceso complejo al que Python puede arrojar luz a través de la limpieza y organización de datos y del uso de algoritmos de aprendizaje automático que simplifica el análisis de datos.
- Data science: Tras la creación de los motores numéricos como “Pandas” o “NumPy”, Python está desbancando MATLAB, un lenguaje utilizado por científicos a la hora de trabajar con un gran número de datos. La razón es la misma que en los anteriores apartados; la sencillez y la potencia para trabajar con un gran número de datos, unidos al gran número de bibliotecas existentes, hacen que Python sea ideal para este tipo de tareas.
- Inteligencia artificial: Seguro que durante los últimos años has oído hablar muchísimo de la inteligencia artificial (IA). Gran parte de su avance se debe a Python. Su facilidad de escritura y su robustez han convertido a Python en el aliado perfecto de la IA. Su capacidad de plasmar ideas complejas en pocas líneas, unidas al gran número de frameworks existentes, han hecho que Python sea uno de los lenguajes de programación que están impulsando a la IA.
- Blockchain: La base de datos distribuida Blockchain, conocida mundialmente por ser la base sobre la que se sustentan las criptomonedas, también funciona muy bien junto a Python. Como lenguaje versátil, seguro y rápido, es muy útil para formar cadenas de bloques, e incluso permite a los desarrolladores crear una cadena de bloques sencilla en menos de 50 líneas de código, haciendo sencillo algo muy complejo.
- Machine learning: El machine learning o aprendizaje automático es otra de las tecnologías que está cambiando el mundo tal y como lo conocemos. La robótica y la IA son ahora capaces de aprender por sí mismas a medida que van procesando más y más datos. De esta forma, obtienen información cada vez más relevante que les permite tomar las decisiones adecuadas. Por supuesto, Python es también muy eficaz en este campo, en el tratamiento de datos eficaz es esencial.
- Desarrollo web: Python también permite desarrollar webs complejas en menos líneas de código, lo que permite que estas sean más ligeras y optimizadas. Django es uno de los frameworks de Python más populares de la actualidad, que puede ser utilizado para crear webs dinámicas y muy seguras. Python es también muy utilizado para hacer scraping, es decir, para obtener información de todo tipo de webs, tal y como lo hacen Netflix, Instagram o Pinterest.
- Juegos y gráficos 3D: Python también posee una gran capacidad para manejar gráficos 3D gracias la gran cantidad de marcos de trabajo y herramientas existentes. PyGame, Blender o Arcade son algunos de los más conocidos. Uno de los juegos más populares desarrollado con Python es Battlefield 2, un juego de acción bélica lanzado en 2005 en el que el motor gráfico, las animaciones y sus distintas funcionalidades fueron desarrolladas con Python.
sábado, 27 de octubre de 2012
¿Qué es Crystall Ball?
- Hojas de cálculo: Permite elaborar modelos de prevención, simulación y optimización de riesgos.
- Análisis de riesgo: Brinda una perspectiva extensiva y completa de los factores críticos que afectan las variables probabilísticas del modelo.
- Suite de aplicaciones: Facilita un análisis exhaustivo que permita calcular los posibles resultados y determinar los factores que ayudarán a la evaluación del modelo a corto y largo plazo.
- Decisiones acertadas: Ayuda en la toma de decisiones correctas y que se adapten a las condiciones actuales del mercado.
- Software adaptable: Permite utilizar datos guardados y actuales de las hojas de cálculo, para la búsqueda de soluciones adaptadas a las restricciones y actualizaciones del mercado.
martes, 4 de septiembre de 2012
sábado, 25 de agosto de 2012
lunes, 30 de julio de 2012
Android
Fuente: http://www.configurarequipos.com/actualidad-informatica/5701/motorola-xoom-se-actualiza-a-android-jelly-bean
jueves, 5 de julio de 2012
¿Que es VMware?
VMware es el nombre de una de las herramientas de virtualización más usadas a nivel mundial.
Es la mejor solución para cambiar a un equipo Mac y ejecutar Windows sin tener que reiniciar.
Es compatible con los principales sistemas operativos y aunque la versión de escritorio recibe el nombre VMware Workstation, existe una opción para servidores conocida como VMware ESXi.
Los usuarios tienen la oportunidad de configurar máquinas virtuales en su equipo y hacer uso de ellas de una manera paralela sin necesidad de tener acceso a las propias máquinas. El uso de Vmware se encuentra muy optimizado, permitiendo que en cada máquina virtual tengamos nuestro propio sistema operativo, lo que proporciona una gran serie de posibilidades. Si no utilizamos sistemas operativos propietarios, podemos sacar partido a este entorno de forma gratuita gracias a la versión de Vmware de libre acceso. Pero en el caso de querer usarlo con Windows sí que deberemos disponer de las licencias correspondientes.
Una vez el sistema se está ejecutando todo es como si estuviéramos usando ese equipo de manera física ante nosotros. No hay diferencia ninguna y podemos, si así lo necesitáramos, ejecutar distintas virtualizaciones desde un mismo ordenador. Esto nos permitiría tener diferentes sistemas operativos virtualizados para llevar a cabo pruebas de software con plataformas a las que de una manera habitual no tenemos acceso. Este es solo un ejemplo, dado que la virtualización se tiende a usar de manera más común en tareas enfocadas al ahorro de recursos y optimización de los equipos.
Para realizar todo tipo de procesos complejos y exigentes la virtualización se convierte en la mejor opción, de la cual hacen uso empresas y profesionales por igual. Cada vez más virtualizar se posiciona como la respuesta a fin de poder exprimir los recursos de manera absoluta siempre con buenos resultados y sin las limitaciones que supone operar con un solo sistema operativo.
Mountain Lion
Fuente: http://www.apple.com/es/pr/library/2012/06/11Mountain-Lion-Available-in-July-From-Mac-App-Store.html
miércoles, 9 de mayo de 2012
¿Qué es Teamviewer?
- Compartir escritorio con otros usuarios.
- Dar asesoría remota y asistencia técnica.
- Hacer conferencias o demostraciones de productos.
- Ayudar a un amigo a hacer alguna operación frente al PC.
- Compartir archivos entre ambos usuarios.
- Estar al pendiente de nuestro PC remotamente.
domingo, 22 de abril de 2012
Tips
http://developer.android.com/index.html
jueves, 15 de marzo de 2012
Tips
viernes, 2 de marzo de 2012
Tips
Tips
jueves, 23 de febrero de 2012
Programación en VBA para Excel
Anexo algunos links de páginas con ejemplos de Programación en VBA para Excel:
http://www.lawebdelprogramador.com/codigo/
http://www.devdos.com/vb/lesson4.shtml
http://www.ozgrid.com/VBA/
http://www.anthony-vba.kefra.com/
http://msdn.microsoft.com/en-us/library/aa203726(office.11).aspx
http://www.bygsoftware.com/examples/examples.htm
http://www.angelfire.com/biz7/julian_s/julian/julians_macros.htm
http://www.contextures.com/excelfiles.html
http://www.xldatasoft.com/exceldb.htm
http://www.fontstuff.com/downloads/index.htm
Tips
lunes, 20 de febrero de 2012
Fases de la Programación Extrema (eXtreme Programming - XP)
2ª Fase: Diseño.
3ª Fase: Codificación ó Programación.
4ª Fase: Pruebas.
Fuente: http://programacionextrema.tripod.com/fases.htm
Tips
Tips
domingo, 19 de febrero de 2012
Tips
viernes, 17 de febrero de 2012
Tips
http://netbeans.org/downloads/
http://www.eclipse.org/downloads/
jueves, 16 de febrero de 2012
Tips
Tips
Método de solución de problemas
- Definir el problema (efecto)
- Identificar las causas probables
- Identificar las causas reales mediante: mediciones, hechos, análisis, opiniones de expertos, etc.
- Registrar las causas reales
- Desarrollar propuestas de solución
- Priorizar y seleccionar las soluciones
- Obtener autorización
- Implantar soluciones
- Evaluar resultados
- Actualizar procesos, procedimientos, métricas, indicadores, capacitación, políticas, reglamentos, etc.
- Preguntarse ¿en dónde más se me puede presentar este problema o uno similar?
- Seguir con la mejora continua
miércoles, 15 de febrero de 2012
¿Qué es la programación extrema (XP)?
¿Qué es Design Thinking?
lunes, 13 de febrero de 2012
¿Qué es DevOps?
- Scrum. Scrum define la forma en la que los miembros de un equipo deben colaborar para conseguir entre todos acelerar los proyectos de desarrollo y control de calidad. Las prácticas de Scrum incluyen flujos de trabajo principales y terminología específica (sprints, bloques de tiempo, scrum diario [reunión]), y roles designados (Scrum Master, propietario del producto [product owner]).
- Kanban. Kanban se originó a partir de las eficiencias que se alcanzaron en la fábrica de Toyota. Kanban prescribe que el estado «en curso» (WIP, del inglés «work in progress») de un proyecto de software debe controlarse en un tablero Kanban.
- Agile. Los anteriores métodos de desarrollo de software Agile siguen teniendo una gran influencia en las herramientas y las prácticas de DevOps. Muchos de estos métodos, incluidos Scrum y Kanban, han incorporado elementos de la programación Agile. Algunas de estas prácticas están asociadas a una mayor capacidad de respuesta a los continuos cambios en requisitos y necesidades, los requisitos de documentación en forma de casos prácticos, la realización de reuniones diarias para ponerse al día y la incorporación de comunicación continua con los clientes para conocer sus opiniones. En Agile también se estipulan ciclos de desarrollo de software más cortos en lugar de los tradicionales métodos de desarrollo «en cascada» que se prolongaban en el tiempo.
¿Qué es VBA?
¿Qué es .NET y cómo funciona?
¿Qué es Java y para qué sirve?
¿Qué es C++: Características y aplicaciones
- Alto rendimiento: Es una de sus principales características, el alto rendimiento que ofrece. Esto es debido a que puede hacer llamadas directas al sistema operativo, es un lenguaje compilado para cada plataforma, posee gran variedad de parámetros de optimización y se integra de forma directa con el lenguaje ensamblador.
- Lenguaje actualizado: A pesar de que ya tiene muchos años, el lenguaje se ha ido actualizando, permitiendo crear, relacionar y operar con datos complejos y ha implementado múltiples patrones de diseño.
- Multiplataforma
- Extendido: C y C++ están muy extendidos. Casi cualquier programa o sistema están escritos o tienen alguna parte escrita en estos lenguajes (desde un navegador web hasta el propio sistema operativo).
Tips de Programación
A continuación les dejo un compendio de Tips de programación que me han servido mucho a lo largo de mi carrera profesional:
- Aprender a programar es aprender a resolver problemas, no a usar un lenguaje de programación.
- Antes de programar desde cero, primero busca en internet si ya existe una función o módulo que haga lo que necesitas, te permitirá ahorrar tiempo. Hay mucho código fuente gratis.
- Por lo general podemos encontrar muchas funciones listas para utilizar, pero lo interesante es estudiarlas, ver cómo funcionan, de ahí aprendemos. Si solo copiamos y pegamos, vamos mal.
- Deja que alguien pruebe tu programa. Incluso si no es un programador, podrá detectar problemas de interfaz, de desempeño o de diseño que como autor obviaste o pensaste que estaban bien.
- La mejor técnica de diseño consiste en seleccionar las estructuras de datos más naturales para el problema y los algoritmos más sencillos que las administren mejor.
- Debemos tener claro el objetivo de nuestro programa, sus datos de entrada, procesos y resultados esperados. Comenzar con un prototipo que en conjunto con el cliente se irá transformando en un producto terminado. Las pruebas son muy importantes. Pruebas funcionales y modulares. El análisis de los resultados obtenidos nos dará confianza del funcionamiento del mismo.
- Una de las mejores formas de elevar tu nivel de programación es leyendo y modificando los programas ejemplo de los libros.
- Cuando programes observa siempre la Regla No. 1 de la Informática: Haz copias de respaldo. La práctica de esta simple norma puede salvarte de un virus, un fallo de hardware, un dispositivo de almacenamiento defectuoso y hasta de ti mismo cuando hagas una mala modificación al código o una acción con la que elimines información.
- Es importante buscar el momento adecuado para programar, se requiere de mucha concentración. Es preferible terminar lo que estas haciendo, antes de programar algo mal y después tener que arreglarlo.
- Nunca te rindas ante un error. Utiliza el método científico para detectarlo y cuando lo encuentres, corrígelo usando la misma sistematicidad que usaste para hallarlo de forma que su corrección sea efectiva y sin efectos colaterales.
- Comentar el código fuente es muy importante, nos ahorrará tiempo a la hora de hacer modificaciones a nuestro programa. Comentar módulos, funciones y estructuras de datos. Si son modificaciones, colocar la fecha y hora del cambio.
- Entre más programas ejemplo leas y más problemas propuestos resuelvas, más experiencia en programación tendrás. La experiencia no la podrás adquirir de otra manera, ni siquiera estudiando una docena de lenguajes de programación.
- Organiza tu código, de manera que puedas reutilizarlo. Por ejemplo: VBA - Función para ordenar celdas de excel, VBA - Función para buscar archivos en carpetas, etc. Te ahorrará tiempo de programación en los nuevos proyectos.
- Solicita siempre una opinión a tus colegas sobre tus problemas de depuración. Una perspectiva ajena, externa, y fresca, es mucho mejor que la propia, por cuanto está menos involucrada con el código.
- La retroalimentación cliente-programador durante la etapa de programación-prueba del sistema en desarrollo, reduce significativamente el re-trabajo.
- No te desvíes durante la codificación del diseño original. Si se te ocurre una forma alternativa de realizar una tarea, anótala para analizarla e incluirla en la siguiente versión del programa.
- Tómate un break cuando sientas que estás en un callejón sin salida. Un paseo, un café, una plática y hasta un videojuego puede ser el relax que necesitas mientras tu subconsciente busca la solución a tu problema.
domingo, 12 de febrero de 2012
12 puntos que llevaron a Steve Jobs (1955-2011) al éxito
2. Sé diferente. Piensa diferente.
3. Esfuerzate al máximo. Haz tu mejor esfuerzo en cualquier trabajo. No te duermas! El éxito genera más éxito. Así que mantente hambriento de éxito. Contrata a gente con pasión por la excelencia.
4. Haz un análisis FODA.. Tan pronto como inicies/crees una empresa haz una lista escrita de fortalezas y debilidades de ti y tu empresa. No dudes en eliminar las manzanas podridas.
5. Sé emprendedor. Busca lo próximo que viene. Encuentra un grupo de ideas sobre las que hay que actuar rápida y decididamente y métete en eso. A veces el primer paso es el más difícil. Solo hazlo! Ten el coraje de seguir a tu corazón y tu intuición.
6. Comienza en pequeño, piensa en grande. No te preocupes de demasiadas cosas a la vez. Toma un puñado de cosas simples para comenzar, y entonces ve progresando hacia cosas más complejas. No pienses solo en el mañana, sino también en el futuro distante.
7. Aspira a ser líder. Posee y controla la tecnología primaria en todo lo que haces. Si hay una mejor tecnología disponible, úsala, no importa si no hay nadie más usándola. Sé el primero, y conviértelo en un estándar de la industria.
8. Enfócate en el resultado. La gente te juzga por el resultado, así que enfócate en el resultado. Sé un patrón de calidad. Algunas personas no están acostumbradas a un ambiente donde se espera la excelencia. Promociona. Si no saben de ti, no te van a comprar. Pon atención en el diseño. "El diseño no es solo como se ve o qué parece, es como funciona."
9. Pide la opinión. Pide la opinión de personas con distintos trasfondos. Cada uno de ellos te dirá algo útil. Enfócate en aquellos que van a usar tu producto. Escucha a tus clientes.
10. Innova. La innovación distingue a un líder de los seguidores. Delega, deja que otros hagan el 50% del trabajo administrativo para poder pasar el 50% de tu tiempo en cosas nuevas. Concéntrate en las creaciones importantes y en la innovación radical. Contrata a personas que quieran hacer las mejores cosas del mundo. Necesitas una cultura orientada al producto, incluso en una empresa de tecnología.
11. Aprende del fracaso. Algunas veces, cuando innovas cometes errores. Es bueno admitirlos rápidamente y seguir mejorando tus otras innovaciones.
12. Aprende continuamente. Siempre hay "algo mas" para aprender! Haz polinización cruzada de ideas tanto dentro como fuera de la empresa. Aprende de clientes, competidores y socios. Y eres socio de alguien que no te gusta, aprende a quererlo, halágalo y aprende a beneficiarte de él. Aprende a criticar a tus enemigos abierta y honestamente.