6.1: Consideraciones de desarrollo
- Page ID
- 154283
\( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)
\( \newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\)
( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\)
\( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)
\( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\)
\( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)
\( \newcommand{\Span}{\mathrm{span}}\)
\( \newcommand{\id}{\mathrm{id}}\)
\( \newcommand{\Span}{\mathrm{span}}\)
\( \newcommand{\kernel}{\mathrm{null}\,}\)
\( \newcommand{\range}{\mathrm{range}\,}\)
\( \newcommand{\RealPart}{\mathrm{Re}}\)
\( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)
\( \newcommand{\Argument}{\mathrm{Arg}}\)
\( \newcommand{\norm}[1]{\| #1 \|}\)
\( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)
\( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\AA}{\unicode[.8,0]{x212B}}\)
\( \newcommand{\vectorA}[1]{\vec{#1}} % arrow\)
\( \newcommand{\vectorAt}[1]{\vec{\text{#1}}} % arrow\)
\( \newcommand{\vectorB}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vectorC}[1]{\textbf{#1}} \)
\( \newcommand{\vectorD}[1]{\overrightarrow{#1}} \)
\( \newcommand{\vectorDt}[1]{\overrightarrow{\text{#1}}} \)
\( \newcommand{\vectE}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash{\mathbf {#1}}}} \)
\( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)
\(\newcommand{\avec}{\mathbf a}\) \(\newcommand{\bvec}{\mathbf b}\) \(\newcommand{\cvec}{\mathbf c}\) \(\newcommand{\dvec}{\mathbf d}\) \(\newcommand{\dtil}{\widetilde{\mathbf d}}\) \(\newcommand{\evec}{\mathbf e}\) \(\newcommand{\fvec}{\mathbf f}\) \(\newcommand{\nvec}{\mathbf n}\) \(\newcommand{\pvec}{\mathbf p}\) \(\newcommand{\qvec}{\mathbf q}\) \(\newcommand{\svec}{\mathbf s}\) \(\newcommand{\tvec}{\mathbf t}\) \(\newcommand{\uvec}{\mathbf u}\) \(\newcommand{\vvec}{\mathbf v}\) \(\newcommand{\wvec}{\mathbf w}\) \(\newcommand{\xvec}{\mathbf x}\) \(\newcommand{\yvec}{\mathbf y}\) \(\newcommand{\zvec}{\mathbf z}\) \(\newcommand{\rvec}{\mathbf r}\) \(\newcommand{\mvec}{\mathbf m}\) \(\newcommand{\zerovec}{\mathbf 0}\) \(\newcommand{\onevec}{\mathbf 1}\) \(\newcommand{\real}{\mathbb R}\) \(\newcommand{\twovec}[2]{\left[\begin{array}{r}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\ctwovec}[2]{\left[\begin{array}{c}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\threevec}[3]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\cthreevec}[3]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\fourvec}[4]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\cfourvec}[4]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\fivevec}[5]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\cfivevec}[5]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\mattwo}[4]{\left[\begin{array}{rr}#1 \amp #2 \\ #3 \amp #4 \\ \end{array}\right]}\) \(\newcommand{\laspan}[1]{\text{Span}\{#1\}}\) \(\newcommand{\bcal}{\cal B}\) \(\newcommand{\ccal}{\cal C}\) \(\newcommand{\scal}{\cal S}\) \(\newcommand{\wcal}{\cal W}\) \(\newcommand{\ecal}{\cal E}\) \(\newcommand{\coords}[2]{\left\{#1\right\}_{#2}}\) \(\newcommand{\gray}[1]{\color{gray}{#1}}\) \(\newcommand{\lgray}[1]{\color{lightgray}{#1}}\) \(\newcommand{\rank}{\operatorname{rank}}\) \(\newcommand{\row}{\text{Row}}\) \(\newcommand{\col}{\text{Col}}\) \(\renewcommand{\row}{\text{Row}}\) \(\newcommand{\nul}{\text{Nul}}\) \(\newcommand{\var}{\text{Var}}\) \(\newcommand{\corr}{\text{corr}}\) \(\newcommand{\len}[1]{\left|#1\right|}\) \(\newcommand{\bbar}{\overline{\bvec}}\) \(\newcommand{\bhat}{\widehat{\bvec}}\) \(\newcommand{\bperp}{\bvec^\perp}\) \(\newcommand{\xhat}{\widehat{\xvec}}\) \(\newcommand{\vhat}{\widehat{\vvec}}\) \(\newcommand{\uhat}{\widehat{\uvec}}\) \(\newcommand{\what}{\widehat{\wvec}}\) \(\newcommand{\Sighat}{\widehat{\Sigma}}\) \(\newcommand{\lt}{<}\) \(\newcommand{\gt}{>}\) \(\newcommand{\amp}{&}\) \(\definecolor{fillinmathshade}{gray}{0.9}\)Objetivos de aprendizaje
- Determinar cuándo construir vs. comprar una solución de sitio web
- Comparar y contrastar los beneficios de la creación en la nube frente a la de una estación de trabajo
- Incorporar estándares corporativos al proceso de toma de decisiones al elegir opciones de desarrollo
Introducción
En este capítulo crearás un prototipo de sitio web para ayudar a comercializar tu aplicación para iPhone. Tu prototipo pasará a formar parte de la tienda Class App. Otros alumnos podrán revisar y comprar tu app en línea. Vamos a construir una tienda juntos, ¡así que comencemos!
Al igual que la tienda iTunes, nuestra tienda de clase tendrá páginas separadas que describen cada aplicación que se ofrece a la venta. Esas páginas incluirán capturas de pantalla de las aplicaciones, las mismas capturas de pantalla que produjo con MockApp. Cada estudiante desarrollador hará su propia página y luego enlazará esa página a la tienda.
Una vez que todas las páginas estén enlazadas tendremos un periodo de compras durante el cual “compraremos” las apps de cada uno. Capturaremos los datos de ventas para ver qué aplicaciones son las más vendidas y las mejor calificadas.
¿Dónde Estamos en el Ciclo de Vida?
Muchos proyectos de sistemas de información se conciben en un ciclo de vida que avanza por etapas desde el análisis hasta la implementación. El siguiente diagrama muestra las etapas que tocamos en el capítulo actual:
Compatibilidad con los estándares corporativos
En el capítulo de diseño hablamos de lo importante que es para nosotros estandarizar la apariencia de cada página de nuestra tienda para que de hecho se vea como una tienda y no una colección de páginas poco afiliada y algo extraña. Sin embargo, también es importante que estandarizemos la plataforma de desarrollo para que nuestra tienda funcione sin problemas.
El mundo corporativo tiende a ser conservador en la elección de soluciones de sistemas de información. De hecho, a las corporaciones generalmente les gusta estandarizar para preservar la imagen de marca y garantizar la confiabilidad y facilidad de mantenimiento.
Nuestra corporación en el aula no es diferente. Dado que estaremos desarrollando juntos en la tienda en línea, tiene sentido para nosotros acordar una apariencia común para cada página del sitio así como una plataforma común para el desarrollo. Nuestra plataforma común es Google Sites y tu profesor también puede requerir que uses una familia de temas específicos en Google Sites para preservar una apariencia común.
Las corporaciones como Amazon.com tienen una identidad corporativa claramente establecida, que aparece en cada página. Utilizan un esquema de color naranja y azul y colocan consistentemente elementos de navegación. Amazon utiliza una herramienta de desarrollo patentada ya que son líderes en la industria.
¿Por qué es tan importante la estandarización? Considera que si creas algo maravilloso en una herramienta de autoría de vanguardia y luego te vas, nadie más podrá actualizar el sitio que creaste. La mayoría de las veces esto es exactamente lo que sucede cuando los estudiantes crean sitios web para pequeñas empresas. El negocio no tiene forma de actualizar y mantener el sitio en respuesta a las necesidades del negocio. La preocupación por el mantenimiento del sitio es una de las razones por las que las empresas dudan en involucrar a los estudiantes para crear sus sitios web como un proyecto de clase incluso de forma gratuita.
Si se les da la opción entre características y estandarización, las corporaciones casi siempre elegirán la estandarización. Esto lo vemos también en otros ámbitos como las herramientas de productividad de oficina. ¡Las corporaciones a menudo exigen que todos usen el mismo procesador de textos e incluso la misma versión! Los estudiantes a menudo se sorprenden cuando llegan al lugar de trabajo para descubrir que las corporaciones viven una o dos versiones atrás en el software de procesamiento de textos. Cada actualización representa costos potenciales en software, hardware, capacitación y pérdida de productividad durante la capacitación. A menos que haya un beneficio primordial que realizar, las corporaciones a menudo optarán por evitar el costo. En suma, las corporaciones tienden a ser muy conservadoras cuando se trata de elección de software.
El mundo corporativo también es más feliz cuando hay claros líderes del mercado para elegir. Lo último que necesita una corporación es invertir en software de una empresa que luego sale del negocio.
Construir vs. Comprar
Bien podría preguntarse por qué estamos construyendo una tienda en lugar de usar software listo para usar que realice la administración de la tienda. La conclusión es que queremos que te pongas bajo el capó para ver cómo funciona un sistema de información, particularmente cómo interactúa con una base de datos.
Sin embargo, la primera decisión que un desarrollador necesita tomar es si construir o comprar una solución para el problema del negocio. Construir significa crear una solución personalizada; comprar significa comprar una solución lista para usar. La regla general aquí es que si tu negocio es de naturaleza similar a miles de otros negocios, entonces deberías comprar una solución preconstruida. No tiene sentido reinventar la rueda.
Las soluciones listas para usar tienden a tener una serie de ventajas. Anticipan la funcionalidad que su negocio requiere y se prueban a fondo. La mayoría de los sistemas se pueden personalizar aún más para satisfacer las necesidades de su negocio. Desde una perspectiva de soporte, no solo tienes servicio al cliente de la compañía que desarrolló la solución, sino que también tienes una comunidad de usuarios que comparte consejos y trucos. Además, a medida que se lanzan nuevas versiones, puede mejorar la funcionalidad y adquirir correcciones de errores para su sitio web con un costo adicional relativamente pequeño.
Hay soluciones listas para usar para casi cualquier industria que pueda imaginarse, desde consultorios médicos hasta empresas constructoras. Y el mercado es competitivo, lo que ayuda a bajar los precios. En lugar de contratar a un programador, muchas empresas optan por adoptar soluciones listas para usar. Muchas de estas soluciones listas para usar viven en la nube para que la empresa ni siquiera necesite tener un servidor en su oficina, solo estaciones de trabajo para acceder a los datos en la nube. Por ejemplo www.curvedental.com es una solución en la nube para un consultorio dental.
La principal desventaja de las soluciones listas para usar es que están limitadas en cuanto a la medida en que pueden personalizarse.
Si elige crear una solución personalizada desde cero, aún debe elegir una herramienta de creación. Idealmente, quieres una herramienta que tenga algunas características preconstruidas que se junten de manera muy parecida a Legos. Emplearemos una herramienta fácil de usar proporcionada por Google llamada Google Sites.
Vista de diseño vs. vista de código
Debido a que este es un curso introductorio queremos evitar escribir código de programación. Afortunadamente Google Sites es lo suficientemente sofisticado como para permitirnos evitar la visualización del código. Sin embargo, debemos entender la relación entre lo que vemos en la pantalla —la vista de diseño— y el código subyacente.
Cada página web está construida a partir de código HTML. Los profesionales hacen todo lo posible para refinar ese código para un aspecto y un rendimiento óptimos. La mayoría de los sitios profesionales utilizan un conjunto de productos para preparar imágenes para el sitio, administrar el código en el sitio, mantener las páginas organizadas e integrarse con la base de datos backend.
Adobe es probablemente el proveedor líder de herramientas profesionales de creación de sitios web. Muchas soluciones de sitios web personalizadas se crean al menos en parte con las herramientas de Adobe. La siguiente página muestra solo algunas de las muchas herramientas disponibles de Adobe en su Creative Suite. El hecho mismo de que Adobe empaqueta las herramientas en una suite es un indicio de la complejidad que implica crear un sitio profesional.
Las herramientas de autoría profesionales suelen tener una vista de diseño y una vista de código que permiten al desarrollador cambiar de un lado a otro entre los dos. La vista de diseño es muy parecida a trabajar con PowerPoint. Arrastras texto y gráficos donde pertenecen en la página. La vista de código permite al desarrollador editar código HTML para un control aún más preciso o el aspecto, la sensación o el funcionamiento del sitio.
Sin embargo, pocos principiantes quieren ver el código del sitio web ni pagar por las sofisticadas funciones de edición de código. Afortunadamente, no tienen que hacerlo. A lo largo de los años se han desarrollado una serie de herramientas de creación de sitios web para automatizar el proceso de generación de código y proteger a los usuarios de la vista de código. Uno de ellos, Google Sites, se muestra en la siguiente página.
Pero, ¿y si realmente necesitas un trozo de código para lograr una tarea específica? Google Sites creó una plataforma abierta para que los desarrolladores puedan crear y publicar “gadgets”, que se pueden colocar en su sitio web. Los gadgets son como las asambleas preconstruidas de Lego mencionadas anteriormente. Se encajan en un sitio existente. De hecho los gadgets son para Google Sites qué aplicaciones son para la plataforma iPhone. De la misma manera que Apple promociona, “Hay una aplicación para eso”, para casi todas las necesidades de iPhone, solo para que Google pueda presumir, “Hay un gadget para eso”, para muchas necesidades de desarrollo de sitios web. Y al igual que las aplicaciones para iPhone, algunos gadgets proporcionan una funcionalidad muy sofisticada.
Adobe Creative Suite (arriba) y Google Sites (abajo) son herramientas de creación de sitios web. Creative Suite se ejecuta en estaciones de trabajo de alta potencia y es utilizado por profesionales que necesitan un control preciso sobre la apariencia de su sitio. Creative Suite es realmente una familia de herramientas que incluyen Photoshop, Flash y otras que funcionan bien juntas. Google Sites es una solución de desarrollo rápido que vive en la nube. El control se limita más a las soluciones basadas en plantillas. El tiempo de desarrollo es mucho más corto con Google Sites que con Creative Suite. Captura de pantalla del producto de Adobe reimpresa con permiso de Adobe Systems Incorporated.
Lado del cliente vs. desarrollo en la nube
Nuestra herramienta de creación, Google Sites, vive en la nube. Los sitios de aficionados y algunas pequeñas empresas tienden a preferir las herramientas basadas en la nube por su bajo costo y facilidad de uso.
Los kits de herramientas del lado del cliente, como Adobe Creative Suite, permiten que todo el desarrollo y las pruebas se realicen sin conexión antes de subirlos al servidor web en la nube. Por el contrario, las herramientas basadas en la nube como Google Sites requieren que el desarrollo se lleve a cabo en la nube. Las herramientas basadas en la nube tienden a funcionar un poco más despacio debido a los tiempos de respuesta de Internet, pero los resultados se publican instantáneamente.
El problema del lado del cliente frente al desarrollo de la nube es donde se encuentra el software de creación. El desarrollo del lado del cliente se lleva a cabo en una computadora local. Solo después de que el sitio web se haya probado a fondo se carga a la nube para su alojamiento. Casi todos los sistemas profesionales se desarrollan de esta manera.
Existen numerosas ventajas en el desarrollo del lado del cliente, especialmente para sitios grandes. El desarrollador tiende a tener un mayor control sobre el aspecto y la sensación del sitio web. El tiempo de respuesta de la computadora durante el desarrollo es muy rápido ya que no hay demora esperando que un servicio en la nube vuelva a dibujar la pantalla. Además, el sitio es portátil. El desarrollador puede optar por alojarlo en cualquier computadora en la nube.
Las herramientas de autoría del lado del cliente van en precio desde paquetes gratuitos como Pages, que forma parte del sistema operativo de Apple, hasta paquetes muy caros como Adobe Creative Suite, que cuesta cientos de dólares.
El desarrollo en la nube tiende a tener una apariencia más basada en plantillas. Google Sites es un ejemplo de una herramienta de desarrollo en la nube. El desarrollador tiene un control de grano menos fino sobre el aspecto y la sensación del sitio web. Sin embargo, con el desarrollo en la nube es potencialmente más fácil colaborar e integrar contenido.
Las herramientas de desarrollo en la nube suelen ser gratuitas o de muy bajo costo. El proveedor de herramientas de desarrollo en la nube recupera sus costos publicando anuncios junto a, o incluso dentro de, su sitio. En otras palabras, no tienes más remedio que alojar tu sitio con el proveedor de la nube. A medida que las páginas vistas o las características comerciales del sitio comiencen a aumentar, el proveedor de la nube comenzará a cobrar tarifas más altas.
Claves para llevar
- Por lo general, es mejor comprar en lugar de construir una solución de sistema de información. Y normalmente se prefiere una solución en la nube. Las soluciones en la nube compradas tienden a ser más rentables, mejor probadas y confiables.
- Seguir los estándares corporativos para la selección de software tiende a conducir a mejores soluciones integradas.
- Un prototipo es un paso adelante de una maqueta. Es una versión de trabajo del sitio web aunque incompleta.
- Si decides construir entonces necesitarás una herramienta de autoría para simplificar el proceso de construcción de sitios web. Las herramientas de creación pueden vivir en su computadora o puede usar una herramienta de creación basada en la nube como Google Sites.
Preguntas y ejercicios
- A medida que aumenta la velocidad y la seguridad de Internet, ¿esperaría ver más o menos negocios recurriendo a soluciones en la nube? Explique.
- ¿Es mejor externalizar a nivel nacional o internacional? Explique los factores sobre los que descansa su decisión.