<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>FeedHenry</title>
	<atom:link href="http://www.feedhenry.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.feedhenry.com</link>
	<description>Mobile Application Platform</description>
	<lastBuildDate>Thu, 16 May 2013 14:28:27 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.2</generator>
		<item>
		<title>Writing a CV to get hired at a startup</title>
		<link>http://www.feedhenry.com/2013/05/3899/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=3899</link>
		<comments>http://www.feedhenry.com/2013/05/3899/#comments</comments>
		<pubDate>Thu, 16 May 2013 14:12:55 +0000</pubDate>
		<dc:creator>Cian Clarke</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Developer]]></category>
		<category><![CDATA[CVs]]></category>
		<category><![CDATA[hiring]]></category>
		<category><![CDATA[jobs]]></category>
		<category><![CDATA[recruitment]]></category>
		<category><![CDATA[startup]]></category>

		<guid isPermaLink="false">http://www.feedhenry.com/?p=3899</guid>
		<description><![CDATA[At this point, I&#8217;ve been reviewing CVs with FeedHenry for over a year, both for roles in Ireland and the US. I&#8217;ve seen hundreds &#8211; many fresh out of college, and some who&#8217;ve spent years in industry. I&#8217;m not a recruiter &#8211; I&#8217;m an engineer looking to grow the team, and find a bunch of people [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.feedhenry.com/wp-content/uploads/2013/05/startupcvs.jpg"><img class="alignright size-full wp-image-3908" title="startupcvs" src="http://www.feedhenry.com/wp-content/uploads/2013/05/startupcvs.jpg" alt="" width="156" height="117" /></a>At this point, I&#8217;ve been reviewing CVs with <a href="http://www.feedhenry.com">FeedHenry</a> for over a year, both for roles in Ireland and the US. I&#8217;ve seen hundreds &#8211; many fresh out of college, and some who&#8217;ve spent years in industry. I&#8217;m not a recruiter &#8211; I&#8217;m an engineer looking to grow the team, and find a bunch of people who I&#8217;d like to work with.</p>
<p>Unfortunately, a large portion of the CVs I see are pretty awful. Here&#8217;s some general advice that doesn&#8217;t apply specifically to FeedHenry &#8211; in fact, it should help in applying to any startup.</p>
<p>Your cover letter, to me at least, isn&#8217;t all that important. I&#8217;ll probably read two paragraphs worth, and I&#8217;m much more likely to read it if it&#8217;s in the body of the email rather than in a separate document. This may horrify your careers advisor, but end the email like you&#8217;d end any other  - skip the &#8220;Yours sincerely&#8221;!</p>
<p>Now for the important stuff &#8211; the CV. A PDF gets some bonus points &#8211; nobody likes having to open Microsoft Word, and there&#8217;s a chance some won&#8217;t have it installed at all. A typical CV gets about <strong>30 seconds </strong>attention. That&#8217;s 20 seconds on the first page, a further 10 on the next. This first pass is crucial &#8211; if I&#8217;m still interested, I&#8217;ll then start to read in more detail.<br />
Unless you&#8217;ve racked up a lot of industry experience, you shouldn&#8217;t have any more than <strong>two pages</strong>.</p>
<p>Not only is the content important, so is the order. I don&#8217;t always make it beyond the first page. Here&#8217;s a rough list of what I&#8217;m looking for, in order:</p>
<ul>
<li>Contact &amp; personal details<br />
<small>(Including a <strong>Github</strong> account &#8211; don&#8217;t have one? Get to work, this is the single greatest value you can add..)</small></li>
<li><strong>List your skills</strong> &#8211; those you know best go first. Feel free to categorise by proficiency, e.g. &#8220;Proficient in:&#8221;, &#8220;Knowledge of:&#8221;, or indeed category &#8211; e.g. &#8220;Programming languages&#8221;, &#8220;Frameworks&#8221;.</li>
<li>List your <strong>personal projects</strong>. These are projects you&#8217;ve done in your spare time, not as part of professional work or college coursework. <strong>Haven&#8217;t got any? I&#8217;ve probably stopped reading.</strong></li>
<li>List your relevant industry experience. This doesn&#8217;t include that job as a Service Station Attendant 6 years ago where you learnt about responsibility. Don&#8217;t care.</li>
<li><span style="line-height: 16px;">This post quickly reverted to bullets. Your CV should do the same. </span></li>
</ul>
<p>Following these steps won&#8217;t work for every company, but for any self-respecting startup, these steps should raise your chances of at least getting to the interview stage. Best of luck!</p>
<p><em><a href="http://www.twitter.com/cianclarke">@cianclarke</a> leads FeedHenry’s development of complex mobile apps build in web technologies. He assists with interview cycles when recruiting engineers to join the services team of the company. This is a cross-post which originally appeared on his <a href="http://cianclarke.com/blog/on-developer-cvs/">personal blog</a></em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.feedhenry.com/2013/05/3899/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IT’s Shifting Role in Enterprise Mobility: From Gatekeeper to Enabler</title>
		<link>http://www.feedhenry.com/2013/04/its-shifting-role-in-enterprise-mobility-from-gatekeeper-to-enabler/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=its-shifting-role-in-enterprise-mobility-from-gatekeeper-to-enabler</link>
		<comments>http://www.feedhenry.com/2013/04/its-shifting-role-in-enterprise-mobility-from-gatekeeper-to-enabler/#comments</comments>
		<pubDate>Mon, 29 Apr 2013 18:25:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Developer]]></category>
		<category><![CDATA[Enterprise]]></category>
		<category><![CDATA[Enablet]]></category>
		<category><![CDATA[Gatekeeper]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[Mobile Application Platform]]></category>

		<guid isPermaLink="false">http://www.feedhenry.com/?p=3834</guid>
		<description><![CDATA[We all know that smartphones, tablets, and mobile apps have transformed the way information is delivered and consumed. We also know that businesses are increasingly replacing on-premise IT infrastructure with cloud services and platforms that empower workers to use their mobile devices for work. This consumer demand for technology (CoIT, or Consumerization of IT) has [...]]]></description>
			<content:encoded><![CDATA[<p>We all know that smartphones, tablets, and mobile apps have transformed the way information is delivered and consumed. We also know that businesses are increasingly replacing on-premise IT infrastructure with cloud services and platforms that empower workers to use their mobile devices for work. This consumer demand for technology (CoIT, or Consumerization of IT) has presented a unique opportunity for enterprises to deploy features and services direct to end-users.</p>
<p>Traditional enterprise software is giving way to cloud-enabled enterprise apps—partly because enterprise app development and management can be done at a fraction of the cost of traditional enterprise software deployment.</p>
<p>Companies that create “mobile-first” strategies to leverage the new world of mobile apps need to develop, deploy, and manage their apps in a flexible and scalable way. And business units, anxious to develop and release apps that satisfy an end user need, can easily build an app completely independent of IT, pulling authority away from IT to control how business data is being consumed.</p>
<p>The shifting role of IT in this new, ultra-mobile, app-driven world is evident: rather than being the <em>gatekeeper</em> to data, IT is becoming a <em>business enabler</em>. IT plays a critical role in giving organizations the flexibility to create compelling and transformative apps—and also control the movement of business data, a core focus for IT.</p>
<p>Enter <a href="http://www.feedhenry.com">FeedHenry</a>. Our cloud-based mobile application development platform enables IT to regain control over mobile app initiatives so that access to critical business data is always secure. FeedHenry’s cloud-based platform allows developer to build the client-side code that goes on the device and, from the same platform, allow IT to build the cloud or server-side code that connects that app to the business data. With FeedHenry, businesses are empowered to create great apps while IT still gets to control all data security touch points—all from one central mobile application platform.</p>
<p>It’s clear that new mobile technologies have led to faster, more affordable, easier mobile app development. Gone are the large-scale enterprise software deployments. Gone is the traditional IT dictatorship. It’s time to embrace next generation software and the IT enablers that make it happen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.feedhenry.com/2013/04/its-shifting-role-in-enterprise-mobility-from-gatekeeper-to-enabler/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Boost Your FeedHenry App with SendGrid Email Deliverability</title>
		<link>http://www.feedhenry.com/2013/04/boost-your-feedhenry-app-with-sendgrid-email-deliverability/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=boost-your-feedhenry-app-with-sendgrid-email-deliverability</link>
		<comments>http://www.feedhenry.com/2013/04/boost-your-feedhenry-app-with-sendgrid-email-deliverability/#comments</comments>
		<pubDate>Mon, 29 Apr 2013 15:56:41 +0000</pubDate>
		<dc:creator>Javier Perez</dc:creator>
				<category><![CDATA[Developer]]></category>
		<category><![CDATA[Enterprise]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[Mobile Application Platform]]></category>
		<category><![CDATA[Partner]]></category>
		<category><![CDATA[SendGrid]]></category>

		<guid isPermaLink="false">http://www.feedhenry.com/?p=3811</guid>
		<description><![CDATA[FeedHenry’s cloud-based Mobile Application Platform includes key features for you to develop, integrate, deploy and manage mobile applications.  FeedHenry’s focus is to help enterprises create mobile apps that receive and send data to multiple enterprise backend systems, enabling the enterprise to offer secure mobile data access for their customers, partners and employees. That important part [...]]]></description>
			<content:encoded><![CDATA[<p>FeedHenry’s cloud-based Mobile Application Platform includes key features for you to develop, integrate, deploy and manage mobile applications.  FeedHenry’s focus is to help enterprises create mobile apps that receive and send data to multiple enterprise backend systems, enabling the enterprise to offer secure mobile data access for their customers, partners and employees.</p>
<p>That important part of our Mobile Application Platform is called mobile Backend-as-a-Service or mBaaS where, with our open architecture and a variety of APIs, we make it possible to have rapid integration, secure connections and management of the apps and endpoints.</p>
<p>Our open architecture based on Node.js, in the cloud-based mBaaS, allows the platform to easily integrate to third party web services. Developers can choose and quickly integrate the best software available to complement the functionality of their mobile app. <a href="http://sendgrid.com/">SendGrid</a>, for example is a cloud-based service that provides comprehensive email infrastructure capabilities to enable developers to add email delivery functionality to their mobile apps without the need to build and maintain an email infrastructure.</p>
<p>SendGrid is a cloud-based SMTP email provider that allows email capabilities without having to maintain email infrastructure (software and hardware). SendGrid relieves development teams of the cost and complexity of managing and monitoring their applications’ underlying transactional email management infrastructures, freeing them to build great applications without worrying about email delivery rates, spam folders, ISP blacklists or scaling to meet high user volume.</p>
<p>At FeedHenry, we constantly receive inquiries about email functionality for iOS and Android apps, and it is quite a task to develop the functionality from scratch, not to mention the infrastructure behind sending and receiving emails.  In many cases, developers settle with just adding a link to access text messaging or letting users leave the app to send or check emails on Gmail, Yahoo! Mail and others. Calling <a href="http://sendgrid.com/docs/API_Reference/index.html">SendGrid APIs</a> is easy, just change your email configuration to point to SendGrid servers and with your <a href="http://sendgrid.com/partners/feedhenry.html">SendGrid</a> account credentials you are ready to test and deliver a mobile app with email features.</p>
<p>FeedHenry’s cloud-based mBaaS integrated with <a href="http://www.sendgrid.com">SendGrid</a> enriches the possibilities for good, secure lightweight apps and superior email deliverability.</p>
<p>Sign up now for SendGrid on FeedHenry: <a href="http://www.feedhenry.com/partner/sendgrid/">http://www.feedhenry.com/partner/sendgrid/</a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.feedhenry.com/2013/04/boost-your-feedhenry-app-with-sendgrid-email-deliverability/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mobile and Cloud, FeedHenry’s Mobile Application Platform on Rackspace</title>
		<link>http://www.feedhenry.com/2013/04/mobile-and-cloud-feedhenrys-mobile-application-platform-on-rackspace/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mobile-and-cloud-feedhenrys-mobile-application-platform-on-rackspace</link>
		<comments>http://www.feedhenry.com/2013/04/mobile-and-cloud-feedhenrys-mobile-application-platform-on-rackspace/#comments</comments>
		<pubDate>Tue, 09 Apr 2013 18:23:00 +0000</pubDate>
		<dc:creator>Javier Perez</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Developer]]></category>
		<category><![CDATA[Enterprise]]></category>
		<category><![CDATA[enterprise apps]]></category>
		<category><![CDATA[Mobile Application Platform]]></category>
		<category><![CDATA[open cloud]]></category>
		<category><![CDATA[Rackspace]]></category>

		<guid isPermaLink="false">http://www.feedhenry.com/?p=3730</guid>
		<description><![CDATA[FeedHenry embraces the two single biggest world trends in Information Technology today;  mobile apps and the cloud      There’s no secret that we live in the mobile era, all over the world smartphone market penetration keeps growing and in some countries tablets are selling more than desktop computers and laptops.  Everything in the mobile industry [...]]]></description>
			<content:encoded><![CDATA[<h3></h3>
<p><strong>FeedHenry embraces the two single biggest world trends in Information Technology today;  mobile apps and the cloud     </strong></p>
<p>There’s no secret that we live in the mobile era, all over the world smartphone market penetration keeps growing and in some countries tablets are selling more than desktop computers and laptops.  Everything in the mobile industry is evolving, more than 100 mobile operators around the world are now offering 4G speeds, WiFi hotspots are everywhere and it is almost impossible to be at an airport, in a restaurant or any workplace without noticing smartphones and tablets in use.</p>
<p>Technology has made mobile devices smaller more powerful and with a variety of features, and users are consuming all those technology improvements through mobile apps. Yes, there are millions of apps now from gaming and social media to shopping and banking, and this explosion of data being consumed through mobile devices has had an impact on business. Not only from the commercial point of view, with companies offering products and services through their apps but also it has forced enterprises to look at the benefits of apps designed for employees to improve productivity and reduce costs. In many businesses this is now as important as is reaching customers via mobile devices.</p>
<p>In parallel to this new mobile reality, companies around the world have been embracing cloud computing and the adoption of cloud based applications continues to grow.  Rackspace as market leader in Infrastructure-as-a-Service has seen significant growth in the adoption of cloud computing thanks to the many benefits that cloud offers businesses &#8211; from having a pool of resources available on virtual servers and the cost savings these represent to the fact that the infrastructure is hosted and maintained without capital expenditures.</p>
<p>All of this brings us back to embracing the two single biggest world trends in Information Technology; mobile and cloud, especially for enterprise mobile apps.</p>
<p>Enterprises that are looking to provide mobile access to their employees and/or partners (B2E and B2B) require access to systems already in the cloud &#8211; access to a number of backend systems such as CRMs, ERPs and other internal systems. This of course is slightly different when we talk about consumer apps (B2C), where the mobile app may require information to and from a small number of backend systems, for example a product catalog database or a payment system.</p>
<p>Regardless of the goal to have B2E, B2B or B2C enterprise mobile apps, there are challenges with making critical business information available to mobile users.</p>
<p>Enterprise mobile app challenges:</p>
<h5>Integration</h5>
<ul>
<li>Multiple backend systems</li>
<li>Legacy systems</li>
<li>Cloud services</li>
</ul>
<h5>Security</h5>
<ul>
<li>VPNs</li>
<li>LDAP</li>
<li>Encryptions</li>
</ul>
<h5>Scalability</h5>
<ul>
<li>Going from a few users to thousands even millions for consumer apps</li>
<li>Integrating with more systems</li>
<li>Integrating with data warehouses</li>
<li>More app features</li>
</ul>
<h5> Multi-platform Devices</h5>
<ul>
<li>iOS, iPhones and iPads  versions</li>
<li>Android phones and tablets</li>
<li>Blackberries</li>
<li>Windows phones</li>
</ul>
<h5>Frequent updates</h5>
<ul>
<li>On backend systems</li>
<li>On app user interface</li>
<li>Push notifications</li>
<li>App content changes</li>
<li>Online – Offline synchronization</li>
</ul>
<h5> Monitoring and Analytics</h5>
<ul>
<li>APIs monitoring (endpoints)</li>
<li>Users downloads and access</li>
<li>Resources performance</li>
</ul>
<p>FeedHenry’s mobile application platform is an ideal solution to develop, integrate, deploy and manage enterprise apps, and offers organizations the ability to rapidly create complex enterprise apps that integrate with multiple backend systems and cloud services that covers all the challenges previously mentioned. Development teams must overcome all these challenges and deliver critical functionality quickly for multiple platforms and most importantly they have to connect in a secure way with all backend, third party and legacy systems.</p>
<p>FeedHenry’s Mobile Application Platform on Rackspace infrastructure provides a development and hosting platform that extends Rackspace to the mobile app space. Rackspace, the market leader in Infrastructure-as-a-Service, provides a secure and scalable infrastructure environment with industry leading technical support. Their service is built upon an open standards approach that makes it a perfect match to host FeedHenry’s platform on Public Managed clouds, Private clouds or Hybrid clouds</p>
<h4><strong>FeedHenry Mobile Application Platform Overview</strong></h4>
<p>FeedHenry’s Mobile Application Platform offers an open and flexible environment with the following features:</p>
<p><a href="http://www.feedhenry.com/wp-content/uploads/2013/04/platform_rackspace.png"><img class="wp-image-3731 alignleft" title="platform_rackspace" src="http://www.feedhenry.com/wp-content/uploads/2013/04/platform_rackspace.png" alt="" width="567" height="248" /></a></p>
<p>&nbsp;</p>
<p><strong>App Development &amp; Testing Studio</strong></p>
<p>Allow developers to quickly and easily develop HTML5 and Hybrid apps that can be deployed to multiple devices or create native iOS and Android apps. Developers can design templates and toolkits to speed up build time and use many of the available client side and server side APIs.</p>
<p><strong>Mobile Backend-as-a-Service</strong></p>
<p>Enables full access to cloud services such as storage, security, caching, server-side business logic, and data sync. Backend integration is made easier and more efficient with standards-based server-side code on FeedHenry’s cloud based platform. No more mobile devices connecting directly to Enterprise backend systems posing risks to sensitive business data or re-building apps every time there is a change in the backend system.</p>
<p><strong>Mobile App Management</strong></p>
<p>Provides the enterprise with the tools needed to manage all mobile enterprise apps in one place, for example, allows administrators to distribute apps via a private app store, manage users access by corporate Active Directory and/or LDAP access and allows external users access via OAuth access such as Google, Twitter, Linkedin and Yahoo. Other important feature includes remote data wipe to remove data in case of mobile device lost or employment termination.</p>
<p><strong>Analytics</strong></p>
<p>Reporting and Analytics provides key insights in two areas: a) cloud app statistics about consumed resources, CPU utilized, endpoints performances and other cloud infrastructure performance of the different mobile apps and b) reporting on app usage such as number of downloads, app traffic, per platform, per location, etc.</p>
<p><strong>Cloud Deployment</strong></p>
<p>Server-side code can be deployed to different RackSpace cloud environments, offering organizations the flexibility to deploy apps in their chosen cloud infrastructure (Public, Private, Hybrid) or choice of PaaS environment. If the Enterprise already uses a Platform-as-a-Service with Rackspace infrastructure, FeedHenry’s platform provides the ability to deploy the server-side code and associated cache to any Cloud Foundry based PaaS (whether on-premise or elsewhere), opening up an emerging ecosystem of PaaS partners such as AppFog, ActiveState’s Stackato, Tier3’s IronFoundry and VMware.</p>
<p><strong>Security</strong></p>
<p>Supports both on device and backend encryption, user authentication and authorization at device, app and cloud level.  FeedHenry&#8217;s platform allows you to open end-points securely to FeedHenry server-side requests with 128 or 256 bit encryption using AES or RSA algorithms as well as auditing capabilities.</p>
<p><strong>Scalable Architecture</strong></p>
<p>As the app features, number of integrations and user base grows FeedHenry’s platform is designed with the flexibility to scale up cloud resources without re-engineering the app or cloud integrations.  Our platform is based on node.js technology that uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.</p>
<p><strong>App Build Farm</strong></p>
<p>Deploy app-store ready apps using your own developer credential but without the need to maintain native development environment, for example, you can create iOS apps without a Mac because the FeedHenry platform has multiple build farms on the cloud for the different platforms (iOS, Android, Blackberry, etc.) and takes care of all the wrapping, creating the binaries that are then ready for each mobile device and version.</p>
<p>In summary enterprises can benefit from a mobile app platform that offers maximum flexibility and scalability, ease of integration with backend systems, rapid deployment, light-weight apps due useful functions on the server-side code and the ability to choose from a variety of cloud configurations for cost effective storage and security.</p>
<p align="left"><em>Request a demo through our Sales team at  </em><a href="mailto:sales@feedhenry.com">sales@feedhenry.com</a><em>  or  go to </em><a href="http://www.feedhenry.com">www.feedhenry.com</a><em> </em><em>for more information.</em><em></em></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.feedhenry.com/2013/04/mobile-and-cloud-feedhenrys-mobile-application-platform-on-rackspace/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mobile and Cloud : A Match Made In Heaven</title>
		<link>http://www.feedhenry.com/2013/01/mobile-and-cloud-a-match-made-in-heave/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mobile-and-cloud-a-match-made-in-heave</link>
		<comments>http://www.feedhenry.com/2013/01/mobile-and-cloud-a-match-made-in-heave/#comments</comments>
		<pubDate>Wed, 30 Jan 2013 00:34:31 +0000</pubDate>
		<dc:creator>Joe Drumgoole</dc:creator>
				<category><![CDATA[Developer]]></category>
		<category><![CDATA[Enterprise]]></category>
		<category><![CDATA[cloudfoundry]]></category>
		<category><![CDATA[HP]]></category>
		<category><![CDATA[MAP]]></category>
		<category><![CDATA[MEAP]]></category>
		<category><![CDATA[Node]]></category>
		<category><![CDATA[nodejs]]></category>

		<guid isPermaLink="false">http://www.feedhenry.com/?p=3548</guid>
		<description><![CDATA[Mobile Apps Dominate yet Challenge the Enterprise A well-executed mobile app strategy results in improved employee efficiency, reduction in costs and the potential to increase customer engagement and revenue generation.  However, it’s not as simple as it seems. Enterprises face serious challenges, not only in keeping up with the demands to develop new and more [...]]]></description>
			<content:encoded><![CDATA[<h4>Mobile Apps Dominate yet Challenge the Enterprise</h4>
<p>A well-executed mobile app strategy results in improved employee efficiency, reduction in costs and the potential to increase customer engagement and revenue generation.  However, it’s not as simple as it seems. Enterprises face serious challenges, not only in keeping up with the demands to develop new and more complex apps but also in ensuring the security, scaling and management of those apps. Enterprises have turned to Mobile Application Platforms (MAP) as an end to end  solution for the development, deployment, integration and management of these apps.</p>
<p>However to create truly effective apps, organizations need solutions that tie in to their cloud strategy, driving the need for a mobile app platform (MAP) that can deploy server-side code wherever the enterprise needs it, whether that’s a public or private cloud. A successful MAP needs to offer maximum flexibility and ease of deployment to different cloud and PaaS environments.  Then enterprise app developers can create, deploy and manage their apps on a secure and scalable platform without having to worry about cloud configuration, scaling, or lifetime management.</p>
<h4>Why do Enterprises favor a Mobile Application Platform approach?</h4>
<p>As enterprise mobility has matured, organizations are creating a growing number of apps that require integration with cloud, legacy and third party systems. Most importantly these disparate systems must be presented as a unified experience for the end user. Once the apps are shipped the organisation must then deal with  with app management, security and scaling over the lifetime of the app deployment. <strong>Mobile apps have now been elevated from being a tactical marketing tool to being a strategic business initiative that needs to align with the overall business strategy.</strong></p>
<p>FeedHenry addresses the need for a well integrated mobile and cloud strategy with their Mobile Application Platform. The FeedHenry platform supports an end to end lifecycle model that includes:</p>
<ul>
<li>app design and development</li>
<li>Secure connectivity via HTTPS and/or PKI infrastructure</li>
<li>Integration with back end systems via our proxy layer and Node.js business logic</li>
<li>Analytics insight on both client and server</li>
</ul>
<p>The platform is built on an Open Source stack that includes Phonegap, CloudFoundry, Mongo, Redis and MySQL. For client side development we support  HTML5, Native SDKs and hybrid app development for all major mobile devices and form factors.</p>
<p>Most importantly we believe in a philosophy of &#8220;any cloud&#8221;. So we can host FeedHenry anywhere you can supply a suite of Linux instances, whether private, public or hybrid.</p>
<p>In FeedHenry you actually can have it your way <img src='http://www.feedhenry.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p align="center"><strong>FeedHenry Mobile Application Platform Architecture</strong></p>
<p style="text-align: center;" align="center"><a href="http://www.feedhenry.com/wp-content/uploads/2013/01/platform_architect.png"><img class="aligncenter  wp-image-3549" title="platform_architect" src="http://www.feedhenry.com/wp-content/uploads/2013/01/platform_architect.png" alt="" width="508" height="223" /></a></p>
<p>&nbsp;</p>
<p>The hosted <strong>Mobile App Development and Testing</strong> environment allows enterprises develop HTML5 and hybrid apps that can be deployed to multiple devices (iOS, Android, Blackberry, and Windows Phone) and mobile web in a “build once, run everywhere” fashion. But  we don&#8217;t have HTML5 religion, Developers are  can use our native SDKs to build apps &#8220;the hard way&#8221; <img src='http://www.feedhenry.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> .</p>
<p>For Enterprises we offer a Mobile Application Management suite that allows them to distribute apps via a private app store, control access via logins control by corporate Active Directory and/or LDAP access and finally allows external users access via OAuth access such as that used by Google, Twitter, Linkedin and Yahoo. Once a user leaves the organisation we can wipe the data remotely for specific FeedHenry apps without interfering with the rest of the end-users data.</p>
<p>The platform’s <strong>Mobile Application Cloud</strong> meets the critical needs of enterprise mobility. The mobile Backend-as-a-Service (mBaaS) enables full access to cloud services such as storage, security, caching, server-side business logic, and data syncing. Rather than the app on-device connecting directly to backend systems and posing risks to sensitive business data, it does so via the cloud.</p>
<p>The<strong> Mobile Proxy Layer</strong> provides a hosted JavaScript Node.js layer with local caching.  At its simplest this secures internal enterprise end-points, via a mobile proxy layer, avoiding the enterprise end-points being open to the Internet, and improves performance, by caching the results.  However, the server-side can be much more complex if required, for example, transformation of XML into JSON, or other server-side business logic.</p>
<p>A key feature of the FeedHenry platform is the ability to deploy this server-side JavaScript and its associated cache to any Cloud Foundry (CF) PaaS (whether on-premise or elsewhere), opening up an emerging ecosystem of CF PaaS partners such as HP Cloud’s Application PaaS, AppFog, ActiveState’s Stackato, Tier3’s IronFoundry, DELL’s Fast PaaS and VMware, the creator of CF.</p>
<p>This means that any public or private IaaS provider can be used, including VMware’s vSphere, HP Cloud Services, Telefónica Instant Servers, Joyent Cloud, Rackspace Cloud Servers and Apache AWS.  Anywhere you can deploy a set of Cloud Foundry Virtual Machines (VMs) can become the staging target for your server-side code, managed by FeedHenry.</p>
<p>Currently, FeedHenry enables enterprise developers to deploy their server-side code to both public and private cloud and PaaS environments with a single click. The platform is also offered as a cloud service on HP Cloud at <a href="https://hpcs.feedhenry.com/">https://hpcs.feedhenry.com/</a> and on public Cloud Foundry at <a href="https://mobilecf.feedhenry.com/">https://mobilecf.feedhenry.com/</a>.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.feedhenry.com/2013/01/mobile-and-cloud-a-match-made-in-heave/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FeedHenry Workflow</title>
		<link>http://www.feedhenry.com/2012/09/feedhenry-workflow/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=feedhenry-workflow</link>
		<comments>http://www.feedhenry.com/2012/09/feedhenry-workflow/#comments</comments>
		<pubDate>Wed, 26 Sep 2012 14:58:26 +0000</pubDate>
		<dc:creator>Cian Clarke</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Developer]]></category>

		<guid isPermaLink="false">http://www.feedhenry.com/?p=3305</guid>
		<description><![CDATA[If you&#8217;ve used the FeedHenry platform to develop mobile apps, chances are you&#8217;ve gotten to grips with some of our power user features. This post attempts to bring together all these features and tweaks that the Apps team here at FeedHenry use on a daily basis to build apps like a power user. FHC The [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright  wp-image-3398" title="Workflow" src="http://www.feedhenry.com/wp-content/uploads/2012/09/work.png" alt="workflow" width="173" height="173" />If you&#8217;ve used the FeedHenry platform to develop mobile apps, chances are you&#8217;ve gotten to grips with some of our power user features. This post attempts to bring together all these features and tweaks that the Apps team here at FeedHenry use on a daily basis to build apps like a power user.</p>
<h2>FHC</h2>
<p>The first tool of choice is our Command Line Interface (CLI). FHC allows you to list, create, build and deploy applications in FeedHenry from the command line. Why is this a power user feature? Most power users prefer to be able to perform tasks through a few keystrokes on a command line, rather than through a visual UI. Here are a few popular use cases for FHC:</p>
<ul>
<li>A SCM system that doesn&#8217;t support post receive hooks to automatically pull code after a checkin?
<pre>fhc git pull someAppID</pre>
</li>
<li>Find yourself frequently creating a series of iPhone and Android builds for distribution Over The Air (OTA)? Build a shell script that kicks these builds off through FHC, come back once done</li>
<li>Want to search through log output of an app in a live environment?
<pre>fhc logs someAppID | grep -i 'ERROR: '</pre>
</li>
<li>Need to quickly apply a hotfix?
<pre>git push origin release
fhc git pull someAppID
fhc stage someAppID --live</pre>
</li>
</ul>
<h3>Aliases</h3>
<p>To make the use of FHC more useful, we make use of aliases. The ID assigned to an app is really long &#8211; and while we can copy and paste, it&#8217;s nice to be able to alias it to something else. Setting up an alias is simple:</p>
<pre>fhc alias myapp=sX7ITIjMxxLiZllZi0rRWHrM</pre>
<p>Now, we can run commands like</p>
<pre>fhc logs myapp</pre>
<p>&nbsp;</p>
<h3>Working Locally</h3>
<p>Another very useful power user feature of FHC is <em>fhc local</em>. Local allows developers to work on their app offline. To get set up for working locally, we first need to install dependencies, as you would with any Node.js application. To do this:</p>
<pre>cd cloud
npm install -d
cd ..</pre>
<p>Now, we&#8217;re good to go. We simply run</p>
<pre>fhc local</pre>
<p>and open http://127.0.0.1:8888 (localhost) in our web browser. What this does in the background is runs the <em>main.js </em>cloud code from your cloud directory locally as a Node.js process, and also runs a webserver serving up the files in client/default/index.html.</p>
<p>There&#8217;s many options available too, such as watching the local file system for changes, proxying requests through to the FeedHenry live environment rather than running the app locally and applying packages. To see all the options available, run</p>
<pre>fhc local --help</pre>
<p>&nbsp;</p>
<h3>Using Over The Air (OTA)</h3>
<p>OTA makes installing builds on device much quicker. This feature is available for all Android developers, but only those in possession of an iOS Enterprise Development account ($299/yr rather than $99/yr) can sign apps Over The Air. To do this, you need to use a Distribution Certificate &amp; Private Key, along with an In-House provisioning profile. Once these resources are uploaded to your account, you can use <em>fhc ota</em> to generate OTA builds, and builds in the studio will also show an OTA install URl.</p>
<h2>Using Git</h2>
<p>In a team-based environment, using some form of SCM is vital to the success of the project. We use git.</p>
<p>Usually, we&#8217;ll have sprint branches, where the user stories for that sprint are checked in. All developers work off this sprint. Developers will develop and test code locally using <em>fhc local</em> (described above), and once done commit it to the repository.<br />
To make sure we don&#8217;t need to <em>git pull</em> our app every time, we use a post receive hook &#8211; this tells FeedHenry to grab the latest code on every commit.</p>
<p>Releases are done off either <em>master</em> or, more than likely, a <em>release</em> branch. The reason for using a release branch rather than master is it&#8217;s too easy to accidentally check into <em>master</em>.<br />
We have a corresponding FeedHenry studio app for &#8216;dev&#8217; and &#8216;release&#8217; &#8211; one of which points to the latest sprint branch, the other the release branch. When we&#8217;re ready to ship new code, the sprint branch gets merged into release. We then stage the cloud code, and generate builds, both from the live project in FeedHenry.</p>
<div>
<div>
<h2>Screencast</h2>
<p>Some of these points are illustrated in our screencast.</p>
<p><a href="https://vimeo.com/48370607"><img class=" wp-image-3306 alignnone" title="Video on Vimeo" src="http://www.feedhenry.com/wp-content/uploads/2012/08/Screen-Shot-2012-08-31-at-00.22.07.png" alt="" width="469" height="262" /></a></p>
<p>&nbsp;</p>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.feedhenry.com/2012/09/feedhenry-workflow/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Set your Apps free in the secure Cloud</title>
		<link>http://www.feedhenry.com/2012/09/set-your-apps-free-in-the-secure-cloud/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=set-your-apps-free-in-the-secure-cloud</link>
		<comments>http://www.feedhenry.com/2012/09/set-your-apps-free-in-the-secure-cloud/#comments</comments>
		<pubDate>Fri, 14 Sep 2012 14:55:30 +0000</pubDate>
		<dc:creator>Mícheál Ó Foghlú</dc:creator>
				<category><![CDATA[Enterprise]]></category>
		<category><![CDATA[Apps]]></category>
		<category><![CDATA[BYOD]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[o2]]></category>
		<category><![CDATA[Telefonica]]></category>

		<guid isPermaLink="false">http://www.feedhenry.com/?p=3360</guid>
		<description><![CDATA[Business apps were a hot topic at the latest O2 Blue Door event. Debates centred on consumerisation and changes in the way people work. When people use their personal mobile devices at the office (Bring-your-own-Device or BYOD), companies face the challenge of developing, deploying and managing apps – not just for one company-approved device but [...]]]></description>
			<content:encoded><![CDATA[<p>Business apps were a hot topic at the latest O2 Blue Door event. Debates centred on consumerisation and changes in the way people work. When people use their personal mobile devices at the office (Bring-your-own-Device or BYOD), companies face the challenge of developing, deploying and managing apps – not just for one company-approved device but for many different mobiles, tablets and operating systems.</p>
<p>A new breed of Mobile Application Development Platforms enables companies to develop, test and deploy apps that are less tied-in to specific mobile operating systems. Often referred to as cross-platform or hybrid app development, these platforms allow apps to be built once, in a standard language, and then run on a range of devices. This cuts development time and costs while maintaining all the on-device functionality of an app created using a single, native development language.</p>
<p>But there&#8217;s more to the challenge of BYOD than compatibility issues.</p>
<p>For businesses there&#8217;s the additional problem of security. If people are using business apps on their own smartphones or tablets, what happens if a device gets lost or stolen? What happens if they leave the company? How can an organisation ensure that sensitive internal data is protected? How is it separated from personal data? And how can they be sure that the app integrates securely with internal business systems?</p>
<p>The answer lies in the cloud. Users can have a &#8220;thin client&#8221; – a lightweight app on their smartphone or tablet that pulls and ring-fences all of the complex functions and information they need from the secure cloud.</p>
<p>Using a cloud-based Mobile Application Platform to develop an app, there&#8217;s no need to store sensitive data on the device itself, so there&#8217;s much less risk if the device is lost or stolen. The cloud stores the data and delivers it to the device. Basically – it does all of the leg work.</p>
<p>Business apps often require higher degrees of integration with IT systems and third-party services than consumer and gaming apps. Traditional business applications (such as CRM, ERP and Supply Chain Management) are now being mobilised and take advantage of device features such as geolocation and cameras, as well as services like social media and payments processing. Developing an app that securely integrates with these systems requires a server-side infrastructure. The cloud is the perfect model to support this and handles all of the integration, storage, security, and data push and synchronisation.</p>
<p>Gone are the days of the large-scale, capital-intensive applications projects. Innovation in cloud technologies and the advent of mobile apps now give businesses immense opportunities to implement high-value – yet low-cost – mobile apps, often on a monthly software-as-a-service type model.</p>
<p>Apps can deliver great value to business – whether they are customer-facing or employee apps. Barriers such as security, integration and upgrading can be overcome with smart use of the cloud. We can look forward to a world where apps and mobile devices become the standard business tool and the cloud is the power behind them.</p>
<p>But how does a business go about kick-starting or pushing forward their mobile app strategies? One way to approach it is to look to an initiative such as O2 made-to-measure apps”. Through partnerships with leading service providers, we bring together all the skills and resources needed for your business to leverage the power of mobile apps.</p>
<p>To find out more about BYOD, mobile apps and Made-to-Measure apps from O2, see <a href="http://www.o2.co.uk/enterprise/products-and-services/applications/mobile-applications">more here</a></p>
<p>Find out more about FeedHenry&#8217;s <a href="http://www.feedhenry.com/enterprise/platform/">Mobile Application Platform</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.feedhenry.com/2012/09/set-your-apps-free-in-the-secure-cloud/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why IT Departments and CIO&#8217;s Love Private Clouds</title>
		<link>http://www.feedhenry.com/2012/09/why-it-and-cios-love-private-clouds/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=why-it-and-cios-love-private-clouds</link>
		<comments>http://www.feedhenry.com/2012/09/why-it-and-cios-love-private-clouds/#comments</comments>
		<pubDate>Tue, 04 Sep 2012 12:56:22 +0000</pubDate>
		<dc:creator>Joe Drumgoole</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Developer]]></category>
		<category><![CDATA[Enterprise]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[private cloud]]></category>
		<category><![CDATA[public cloud]]></category>

		<guid isPermaLink="false">http://www.feedhenry.com/?p=3308</guid>
		<description><![CDATA[We deploy lots of cloud infrastructure at FeedHenry in both public and private cloud environments. What gets confusing is when our customers use their private cloud to provide a public cloud service. When this happens my head hurts a little, so I thought I would put down some thoughts on this space to clear the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.feedhenry.com/wp-content/uploads/2012/08/3279949186_e95a9230f1.jpg"><img class="aligncenter  wp-image-3315" title="Keep Out" src="http://www.feedhenry.com/wp-content/uploads/2012/08/3279949186_e95a9230f1.jpg" alt="Keep Out" width="376" height="282" /></a></p>
<p>We <a href="http://apps.feedhenry.com/">deploy</a> <a href="http://mobilecf.feedhenry.com/">lots</a> <a href="http://hpcs.feedhenry.com/">of</a> cloud infrastructure at FeedHenry in both public and private cloud environments. What gets confusing is when our customers use their private cloud to provide a public cloud service. When this happens my head hurts a little, so I thought I would put down some thoughts on this space to clear the ideas in my own head and hopefully help our customers and partners to get a grip of this whole public/private cloud conundrum.<br />
First of all let&#8217;s stop using the term cloud as this confuses people with the fluffy white things that float above us. Let&#8217;s use the term cloud service in its place. A cloud service is something that provides utility to its users.</p>
<p>Here is a simple definition of a cloud service:<strong><strong><br />
</strong></strong></p>
<blockquote><p>A public cloud service is any utility service that is accessible via a public network address.</p></blockquote>
<p>We ignore protocol (HTTP, HTTPS, DNS, TCP/IP etc.) and naming conventions. This definition encompasses “cloud” services that predate the term cloud, specifically Time services, DNS, Internet routing services, FTP servers, Network News, WAIS, gopher, archie and a host of other “cloud” services that existed before the creation of the world wide web and the HTTP protocol.</p>
<p>This gives us a simple corollary definition for a private cloud service:</p>
<blockquote>
<p dir="ltr">A private cloud service is any utility service that is only accessible using only a private network address.</p>
</blockquote>
<p>Note that this private network may well be tunnelling over a public network using a VPN. However, most people feel uncomfortable with this definition. It seems to lack substance in some way. So lets put some meat on the bone.</p>
<p>Cloud Services fall into two camps: those with decentralized  administrative control (e.g. DNS, bit-torrent, Napster, NTP) and those with centralized administrative control (e.g. Facebook, Amazon AWS, Google).  It turns out decentralized administrative control also makes it easy to distribute the workload of those services so that many separate administrative domains contribute to the overall provision of service.</p>
<p>However, decentralized administrative control and Enterprise data management go together like ice-cream and ashes.</p>
<p>Enterprises need to know the who, what, when, where and how much of data. Who has access to what data, when and from where? How much data do they have access to? How much does it cost?</p>
<h6>Decentralised data leaks. Decentralised data accumulates. Decentralised data rots.<strong><strong></strong></strong><strong><strong></strong></strong></h6>
<p>Historically Enterprises used the “watch that basket” approach. Which is to say they put all their eggs in one basket (their own data centre) and kept a close eye on it via administrative controls, an IT department, Firewalls and VPNs.</p>
<p>Unfortunately, IT departments have two key drivers; cost management and SLA management.  Cost management is usually translated into “lets keep our costs flat/predictable for the budget period in question” and SLA management is translated into “lets provision for the maximum expected spike in the budget period in question”.</p>
<p>Business Units on the other hand are driven by innovation and change and want new IT systems to help drive that change.  So there is a dynamic tension been centralized service provision by the IT department vs innovation at the edges by the most aggressive business units. This typically leads to new technologies bleeding into the organization regardless of technology directives set by the over-arching organization. To wit the famous clarion call “We are an Oracle|Microsoft|IBM|HP|SAP house” while Macs, Linux, MySQL, Apache, PHP and others are being smuggled in the back door.</p>
<p>Well the latest innovation being smuggled in the back door is cloud computing. It turns out that convenience trumps security so sales directors have been injecting SalesForce.com into their organizations for over ten years now. <a href="http://workday.com">Workday</a> is targeting the whole tamale with a complete “in the cloud” HRM system. IaaS systems like AWS and RackSpace and PaaS systems like Google App Engine, Force.com and Azure offer unlimited storage and compute power at sub-dollar prices per hour.</p>
<p>The price is right for public clouds but the access controls and cost management freak out Enterprises. Particularly in the face of legal minefields like the Patriot Act.</p>
<p>Private Clouds offer the best of both worlds with the ability to leverage the scalable nature of clouds with the absolute control enabled by owning the physical hardware. The key properties of private clouds that make them attractive to Enterprises are:<strong><strong><br />
</strong></strong></p>
<ul>
<li>You can cut the hard-line</li>
<li>You can physically take it with you</li>
<li>You can audit all access</li>
</ul>
<p>With the best will in world you just can’t tell how many copies of your data exist within AWS or RackSpace or Azure and what happens to them and when after a delete operation has been processed. This is what drives CIO’s crazy about public clouds. The cost savings are wonderful and the absence of a mammoth capex bill is a joy, but the “who, what, when, where and how much” is a black hole that is difficult to audit in meaningful way.</p>
<p>I’ve talked about <a href="http://www.slideshare.net/jdrumgoole/cloud-computing-soup-to-nuts">public cloud problems</a> before (and before anyone gets the wrong idea I’m a huge fan of AWS) but to recap there are four areas that public clouds can get you into trouble around:<strong><strong><br />
</strong></strong></p>
<ul>
<li><strong>The Data Problem</strong> : What goes up must come down. Once you have over 1TB of data in the cloud getting it back all at once and deleting it so its definitely gone is a huge issue.</li>
<li><strong>The Britney Spears Problem</strong> : If you are a recognizable personality storing your stuff in the cloud them the likelihood is that you unsecured data is at risk from operations personnel on the inside.</li>
<li><strong>The Programmer Problem</strong>: Per transaction pricing is great until some programmer writes a program that generates a million transactions an hour. Programmers have to understand the implications of pay as you go.</li>
<li><strong>The Doctor Problem</strong> : HIPAA in the US and a range of other legal devices in Europe impose stringent data protection requirements on individuals and organizations that store medical data. The <a href="http://www.guardian.co.uk/uk/2006/nov/01/health.politics">privacy problems</a> associated with UK Summary Care Record scheme have been well documented. At the heart of the problem is the need for a large pool of people to have shared access to high confidential data.</li>
<li><strong>The End User Problem</strong>: End users consistently fail to realize that in a cloud environment their poor security practices can compromise other people’s data rights. Poor passwords, duplicate passwords and shared passwords are only the tip of the iceberg.</li>
<li><strong>The Failure Problem</strong>: Clouds go down. Your cloud is going to fail or you are going to fail to use the cloud correctly. For the end-user the end result is the same, interruptions in service and/or loss of data. Microsoft, Amazon, Google and Rackspace have all had major cloud outages in the past 12 months and will continue to do so.</li>
</ul>
<p>Private Clouds are not a panacea in all these situations but its a big step in the right direction and that gives CIO&#8217;s a few more minutes sleep at night.<strong id="internal-source-marker_0.5826911006588489"></strong></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.feedhenry.com/2012/09/why-it-and-cios-love-private-clouds/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Agile in a Services Based Team</title>
		<link>http://www.feedhenry.com/2012/09/agile-in-a-services-based-team/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=agile-in-a-services-based-team</link>
		<comments>http://www.feedhenry.com/2012/09/agile-in-a-services-based-team/#comments</comments>
		<pubDate>Mon, 03 Sep 2012 19:48:07 +0000</pubDate>
		<dc:creator>Cian Clarke</dc:creator>
				<category><![CDATA[Developer]]></category>

		<guid isPermaLink="false">http://www.feedhenry.com/?p=3136</guid>
		<description><![CDATA[Practicing agile on an engineering product is something which has been well documented and practiced worldwide &#8211; but introducing agile approaches to a services based team brings its own set of challenges. Here&#8217;s some of the challenges we&#8217;ve come across, and how we&#8217;ve dealt with them here at FeedHenry. Iteration velocity is not a constant [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.feedhenry.com/wp-content/uploads/2012/09/team.png"><img class="alignright  wp-image-3404" title="Team" src="http://www.feedhenry.com/wp-content/uploads/2012/09/team.png" alt="Team" width="131" height="131" /></a>Practicing agile on an engineering product is something which has been well documented and practiced worldwide &#8211; but introducing agile approaches to a services based team brings its own set of challenges. Here&#8217;s some of the challenges we&#8217;ve come across, and how we&#8217;ve dealt with them here at FeedHenry.</p>
<h2>Iteration velocity is not a constant</h2>
<p>When building a product, eventually the team will reach a plateau where iteration velocity can be accurately measured. It becomes easy to define just how much can be delivered in N number of weeks, before it&#8217;s time to sit back, review, and plan the next set of deliverables.</p>
<p>In a services based environment, this isn&#8217;t always the case. Iteration velocity varies from project to project, and depends on the duration, scale, and level of developer experience. Velocity can vary massively, from wildly productive to utterly blocked by an API that hasn&#8217;t become available. The team, and the agile process, needs to be able to adapt to this consideration.</p>
<h2>Team size varies</h2>
<p>Agile product development usually centers around a core team of developers, who may be working on separate features. In a services team, we&#8217;re still one team &#8211; but project assignment can change from week to week, depending on project workload. Ideally, a developer is assigned to one project throughout its course &#8211; but in the event of blockers the team needs to be pretty flexible.</p>
<h2>Scrum</h2>
<p>When it comes to scrum, the rules stay pretty much the same. It might seem that when different team members are working on different customer projects, what benefit could a group standup possibly bring &#8211; but in reality, we&#8217;re often solving similar problems in a slightly different shape or form. Scrum is hugely beneficial, just the same as it would be in a services environment.<br />
The logistics don&#8217;t differ either &#8211; updates are sub-30 seconds, scrum master is rotated &amp; is responsible for keeping on top of any blockers.</p>
<h2>The traditional rules still apply</h2>
<h3>1) Unit Tests</h3>
<p>Unit tests are still an essential part of the development cycle of a services team. In particular, unit testing the cloud side integrations of a project can be a huge lifesaver. In the event something goes wrong, the unit tests can often help quickly pinpoint the exact source of a problem. You can read more about how we <a href="http://www.feedhenry.com/2012/08/unit-testing-a-node-js-backend/">unit test cloud applications here</a>.</p>
<p>One of the things we&#8217;ve recently worked hard on improving is how we unit test client side JavaScript logic &#8211; the part of the app that sits on device. In particular, we&#8217;ve focused on testing any complicated pieces of business logic that exist on the client. The principles are similar to those of cloud unit tests &#8211; given a certain input X, we expect output Y  succeed and return these properties.</p>
<div>
<h3>2) Code Quality</h3>
<p>In a services based team, we occasionally find ourselves working with development partners for certain phases of a project. Developers often have different coding styles, and vary their strategy of indentation type and length &#8211; so we need to enforce a uniform code style across the team. In addition to this, we mandate an IDE which is capable of running JSHint code quality tests within the editor.</p>
</div>
<h3>3) Pulling it all together: Continuous Integration</h3>
<p>In a services environment, the list of projects to be added to the Continuous Integration box is ever growing. A project is developed for a period of N weeks, then released &amp; the codebase is static until some future phase of the project. This can be quite different to a product based team, and it means the setup cost of adding an app to a Continuous Integration server has to be incredibly low for the developer. To ensure this, our CI setup process simply involves the developer creating a simple shell script which can test various parts of the application. A typical build.sh script might look like this:</p>
<div>
<table cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="100%">
<div>
<div id="LC1">#! /bin/bash</div>
<div id="LC2"></div>
<div id="LC3">cd cloud</div>
<div id="LC4">echo &#8216;Installing dependencies&#8217;</div>
<div id="LC5">npm install -d</div>
<div id="LC6">export NODE_PATH=$PWD</div>
<div id="LC7">echo &#8216;Running npm test&#8217;</div>
<div id="LC8">npm test</div>
<div id="LC9">cd ..</div>
<div></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<p>Our continuous integration server (<a href="http://jenkins-ci.org/">Jenkins</a>) then runs this shell script, which sets the current execution environment of Node to the cloud directory (to ensure relative paths work as expected).<br />
Once it&#8217;s ready to run the node code, it pulls together 1) and 2) above &#8211; running the unit tests, and JSHint.</p>
<p>In the event the tests fail, a lead developer (or the whole team) get emailed a report and the build is marked unstable.</p>
<h3></h3>
<p>If you&#8217;re actively practicing agile in a services environment, we&#8217;d love to hear how you&#8217;ve managed this in your team! Any comments or suggestions, please reach out in the comments.</p>
<p><em>Cian leads FeedHenry’s development of complex mobile apps built in web technologies. He is the author of numerous Node.js modules, and is an active open source contributor. Find him on twitter <a href="http://www.twitter.com/cianclarke">@cianclarke</a>, or <a href="http://www.github.com/cianclarke">github</a></em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.feedhenry.com/2012/09/agile-in-a-services-based-team/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>So long jQuery-UI, hello Bootstrap</title>
		<link>http://www.feedhenry.com/2012/08/so-long-jquery-ui-hello-bootstrap/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=so-long-jquery-ui-hello-bootstrap</link>
		<comments>http://www.feedhenry.com/2012/08/so-long-jquery-ui-hello-bootstrap/#comments</comments>
		<pubDate>Fri, 24 Aug 2012 15:26:40 +0000</pubDate>
		<dc:creator>DaveMartin</dc:creator>
				<category><![CDATA[Developer]]></category>

		<guid isPermaLink="false">http://www.feedhenry.com/?p=3257</guid>
		<description><![CDATA[The way things were&#8230; The FeedHenry App Studio in its old form was built primarily on jQuery, jQuery-UI and numerous jQuery plugins. The main plugins used were Accordion, Tabs, Button, Dialog, jWizard, jqGrid and UI-Layout. On top of this, there was a tonne of custom CSS classes, id&#8217;s and styles. It was (and still is) [...]]]></description>
			<content:encoded><![CDATA[<h2>The way things were&#8230;</h2>
<p>The FeedHenry App Studio in its old form was built primarily on jQuery, jQuery-UI and numerous jQuery plugins. The main plugins used were Accordion, Tabs, Button, Dialog, jWizard, jqGrid and UI-Layout. On top of this, there was a tonne of custom CSS classes, id&#8217;s and styles. It was (and still is) a big project with a lot of files. Despite this, it did what it was required to do i.e. Provide a frontend to the FeedHenry Cloud platform.</p>
<h2>Why change? It works!</h2>
<p>Yes, it did work, but had some problems. It had problems from both the User&#8217;s (your) and Developer&#8217;s (our) point of view. The UI was dated looking and needed some love. We made a choice a few years back to create the studio as a single page application (jQuery UI-Layout). As it evolved, this choice proved troublesome as we added new elements like metrics and reporting. In fact, any new features that were added had to fit strict size constraints. It was a pain, but we did it nonetheless.</p>
<p>jQuery UI was great at the time, but didn&#8217;t do enough for the general look and feel of the Studio. We still ended up adding custom classes and styles for a lot of things. This led to confusion between class conventions and patterns, and ultimately led to multiple classes all doing similar things. The level of selector reuse was bad.</p>
<p>The javascript was a similar story. There was no strict pattern followed throughout the Studio code. Instead, there were small pockets of patterns as various features were added over the years. Some patterns matched, but in general the code was badly structured. We used John Resig&#8217;s javascript inheritance &#8216;Class.extend&#8217; <a href="http://ejohn.org/blog/simple-javascript-inheritance/" target="_blank">http://ejohn.org/blog/simple-<wbr>javascript-inheritance</wbr></a> in some parts, and functions with public &amp; private members in other parts (similar to how Douglas Crockford describes private members <a href="http://javascript.crockford.com/private.html" target="_blank">http://javascript.crockford.<wbr>com/private.html</wbr></a>). There were some nice sub-patterns in the code, particularly around the auto creation &amp; binding of the tabs (&#8216;north&#8217; layout), each with an accordion (in the &#8216;west&#8217; layout) that controlled the main content shown in the &#8216;center&#8217; layout. As it was a single page application, the footer sat in the &#8216;south&#8217; layout.<br />
<a href="http://www.feedhenry.com/wp-content/uploads/2012/08/apps_details_old.png"><img class=" wp-image-3258 aligncenter" title="apps_details_old" src="http://www.feedhenry.com/wp-content/uploads/2012/08/apps_details_old.png" alt="" width="100%" /></a></p>
<p>From a User&#8217;s point of view, the UI needed to be overhauled to give a nicer experience. From our point of view, the code needed restructuring and simplifying to make maintenance easier and more fun. A good knock-on-effect of this, as we discovered, would be speed improvements, particularly the initial load time of the Studio and the time it takes to switch tabs.</p>
<h2>Out with the old&#8230;</h2>
<p>We used Bootstrap <a href="http://twitter.github.com/bootstrap/" target="_blank">http://twitter.github.com/bootstrap/</a> before for the Docs site <a href="http://docs.feedhenry.com/" target="_blank">http://docs.feedhenry.com</a> and landing pages on <a href="https://hpcs.feedhenry.com/" target="_blank">https://hpcs.feedhenry.com</a> and <a href="https://mobilecf.feedhenry.com/" target="_blank">https://mobilecf.feedhenry.com</a>. It worked well and provided a nice UI   layout out of the box. It was a good fit for what we wanted to do with the Studio UI. So while we replaced the old jQuery UI components with the shiny new Bootstrap equivalent, we also untangled and rewired as much of the coding mess as possible. We made a big leap towards an MVC pattern everywhere.</p>
<p>For those who are interested in what we replaced the jQuery UI/plugin components with, here&#8217;s a table:</p>
<table style="width: 75%;" border="0" cellspacing="0" cellpadding="0">
<thead>
<tr>
<th style="text-align:left;">jQuery</th>
<th style="text-align:left;">Bootstrap</th>
</tr>
</thead>
<tbody>
<tr>
<td>UI-Layout</td>
<td>Fluid Grid System</td>
</tr>
<tr>
<td>UI-Tabs</td>
<td>Basic Tabs</td>
</tr>
<tr>
<td>UI-Accordion</td>
<td>Nav list</td>
</tr>
<tr>
<td>UI-Button</td>
<td>Buttons/Button Groups</td>
</tr>
<tr>
<td>qTip</td>
<td>Tooltip/Popover, Labels</td>
</tr>
<tr>
<td>jqGrid</td>
<td>dataTables</td>
</tr>
<tr>
<td>Dialog</td>
<td>Modals</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>Also, some other Bootstrap components we used in place of our old custom code/styles:</p>
<ul>
<li>Breadcrumbs (custom styles before)</li>
<li>Forms (custom form &amp; input styles before)</li>
<li>Font-Awesome icons in nav list (no icons before in accordions)</li>
<li>Transitions (no transition before, anywhere)</li>
</ul>
<p><a href="http://www.feedhenry.com/wp-content/uploads/2012/08/apps_quickstart_new.png"><img class=" wp-image-3259 aligncenter" title="apps_quickstart_new" src="http://www.feedhenry.com/wp-content/uploads/2012/08/apps_quickstart_new.png" alt="" width="100%" /></a></p>
<h2>Where did the magic go?</h2>
<p>Wizards haven&#8217;t changed at this time. There&#8217;s still one old plugin in use because the migration for it is a big task on its own. The jQuery jWizard plugin is heavily integrated into the UI. The plugin was also modified to allow showing and hiding buttons at different steps in the wizard. Before we make a decision on this, we need to ask ourselves if wizards are the most appropriate solution. Should we even use a modal dialog for them (we don&#8217;t in some places already)? Should all the wizard steps be presented on a single screen (currently only do this for &#8216;Generate App&#8217;)? Watch this space&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.feedhenry.com/2012/08/so-long-jquery-ui-hello-bootstrap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
