{"id":803,"date":"2006-12-01T16:58:22","date_gmt":"2006-12-01T23:58:22","guid":{"rendered":"http:\/\/www.redmonk.com\/jgovernor\/wp\/?p=803"},"modified":"2006-12-01T16:58:22","modified_gmt":"2006-12-01T23:58:22","slug":"case-study-t-mobile-and-adobe-flex-extending-sap-with-agile-methods","status":"publish","type":"post","link":"https:\/\/redmonk.com\/jgovernor\/case-study-t-mobile-and-adobe-flex-extending-sap-with-agile-methods\/","title":{"rendered":"Case Study: T-Mobile and Adobe Flex, Extending SAP with Agile methods"},"content":{"rendered":"<p>At Adobe MAX the most interesting session I&nbsp;attended was&nbsp;a&nbsp;presentation by T-Mobile. The&nbsp;wireless provider&nbsp;is using Adobe&nbsp;technology to extend SAP and rapidly bring new applications to users, without any Big Middleware&nbsp;SOA&nbsp;blather. The development&nbsp;team might as well have walked around with Neon Tangerine Flake&nbsp;&#8220;<strong>We Get It&#8221;<\/strong> signs above their heads (well this was Las Vegas, after all). It was, as I say, good stuff.<\/p>\n<p>The application in question&nbsp;is&nbsp;an employee-facing application, used&nbsp;for scheduling&nbsp;staff training sessions, including ongoing mail reminders and automated customised PDF documents&nbsp;for participants.&nbsp;It accesses SAP back end systems&nbsp;with a rich user interface. If you want to download&nbsp;the application&nbsp;it is open source and available on Flexcoders.<\/p>\n<p>The application uses:<\/p>\n<ul>\n<li>ActionScript (Adobe&#8217;s implementation of the ECMAscript standard, used throughout its tools)\n<li>Adobe Captivate (for online help, showing not telling, using screencasts)\n<li>Adobe Coldfusion (needs no introduction. T-Mobile was able to reuse existing code components)\n<li>Adobe Flex 1.5 (Son of Coldfusion, Flex is Adobe&#8217;s XML and data handling runtime and toolset).&nbsp;\n<li>LDAP for SMTP services&#8230;\n<li>Microsoft ActiveDirectory (for authentication)\n<li>Microsoft SQLServer (a T-Mobile mandated platform)\n<li>MXML\n<li>SAP HR module<\/li>\n<\/ul>\n<p>From an enterprise perspective Flex is Adob&#8217;s new route in. Quoting from development team lead Andrew Spencer: <\/p>\n<blockquote>\n<p>&#8220;I can do Flash stuff but&nbsp;I cant see myself creating an application in Flash.&nbsp;I dig Flex though-&nbsp;I can get down with Flex&#8221;. <\/p>\n<\/blockquote>\n<p>Flash is a design tool while Flex is very much about application development. Flex Data Services allows the user to&nbsp;pull down data relatively easily from back end systems into data grids which can then be&nbsp;accessed by forms-based applications. Why Flex?&nbsp;The answer became clear when&nbsp;an audience member asked about gathering requirements for the application, and suddenly we were in agile heaven. <\/p>\n<blockquote>\n<p>&#8220;Requirements? You mean the analyst? Oh no I just worked it out. We just went ahead and built the application. I was a little worried it looked too much like a web app at first. Anyway &#8211; we make each component as reusable as possible.&nbsp;For example, the&nbsp;project tracking system. You can just grab a component and snap it in. if you think it could be a custom Flex component then turn it into one.&#8221;<\/p>\n<\/blockquote>\n<p>Ah yes- the smell of agile. What about supporting user populations without a&nbsp;big staff once the apps are built?&nbsp;<\/p>\n<blockquote>\n<p>&#8220;Every app must be as easy to use as possible. You don&#8217;t want end users calling the helpdesk. So put contextual help in the application.&#8221;<\/p>\n<\/blockquote>\n<p>T-Mobile did so using Adobe Captivate&nbsp;as a screen casting app for help (hey, it sure beats a paper clip&#8230;)&nbsp;Another attendee asked about&nbsp;scalability issues, given the team just built the app and rolled it out, without&nbsp;a lot of upfront performance modeling\/capacity planning.&nbsp;  <\/p>\n<blockquote>\n<p>&#8220;We didn&#8217;t run into any issues. Its an intranet app; the total initial&nbsp;user pool is 4,000 users, but concurrent- the number is very small. There are some large lists, they were managed [by Flex].<\/p>\n<\/blockquote>\n<p>How often do you hear a <em>developer<\/em> say&#8230;  <\/p>\n<blockquote>\n<p><strong>&#8220;I wish we had done more testing<\/strong>, and established&nbsp;a complete procedure list&#8230; &#8220;?<\/p>\n<\/blockquote>\n<p>More&nbsp;often&nbsp;with agilists, that&#8217;s for sure. Agile development teams do a lot of unit testing, notably. Small pieces, loosely joined.  <\/p>\n<p>Talking of agile &#8211; one approach to easier code maintainability is <a href=\"http:\/\/www.redmonk.com\/wiki\/index.php?title=Lessconfig\">lessconfig<\/a> &#8211;&nbsp;the less needless customization in an application the easier is is to maintain. With that in mind, some of Andrew&#8217;s decisions about the UI for are salutary here, getting to the heart of the &#8220;forget flashy, make it work&#8221; theme. One of the thing that struck me about the scheduling app when&nbsp;I saw it was it was literally out of the box Chrome. No changes.  <\/p>\n<blockquote>\n<p>&#8220;You could skin it, but it&nbsp;was good out of the box&#8230; which means easier maintenance.&#8221;<\/p>\n<\/blockquote>\n<p>That&#8217;s lessconfig&#8230;  <\/p>\n<p>Richness has a role though, when it enables more effective collaboration. T-Mobile is considering making the scheduling app richer &#8211; by using the Flex Media Services APIs to allow screen sharing between different users.  <\/p>\n<p>I thought&nbsp;Andrew got agile, but then his boss,&nbsp;Thelbert &#8220;Mack&#8221; McNeely, stepped up&nbsp;and it became clear this was a culture of agility rather than an isolated&nbsp;developer.&nbsp;  <\/p>\n<blockquote>\n<p>&#8220;I&nbsp;have a small high impact team. The&nbsp;VP puts requirements down and says i need this on this date, you need to do it.&#8221;<\/p>\n<\/blockquote>\n<p>You can&#8217;t have agile without trust and accountability.  <\/p>\n<p>What can we learn from T-Mobile? A couple of things.  <\/p>\n<p>1. Agile delivers real business value, and its a cultural as much as technical phenomenon.  <\/p>\n<p>2. Start small, and keep the componentry isolated.  <\/p>\n<p>3. The more upfront function testing for the components the better.  <\/p>\n<p>2. <strong>You don&#8217;t need SAP NetWeaver to usefully extend your SAP business applications<\/strong>. This is both good and bad for SAP. I know someone at SAP that lives this tension every day, and is going to love this case study. I must apologise to both Andrew and <a href=\"http:\/\/cmehil.com\/craig\/\">Craig Cmehil<\/a> for not getting this online earlier. So much for agile&#8230; Craig let me know and I will pass on Andrew&#8217;s deets. This is a great example for you guys. I&nbsp;would certainly recommend that you ask Andrew&nbsp;to present at SAP TechEd or other events.&nbsp;  <\/p>\n<p>And finally a question for Andrew- what do you think of Adobe&#8217;s Apollo strategy?  <\/p>\n<p>&nbsp;  <\/p>\n<p>disclaimers: Adobe is currently not a subscription client, neither is SAP.&nbsp;Contrary to the claims of some people that should know better, we do write plenty about firms that aren&#8217;t clients. You can&#8217;t track the grassroots and practitioners otherwise.&nbsp;&nbsp;  <\/p>\n<p><strong>Technorati Tags:<\/strong> <a href=\"http:\/\/technorati.com\/tag\/Adobe\" rel=\"tag\">Adobe<\/a> &#8211; <a href=\"http:\/\/technorati.com\/tag\/ColdFusion\" rel=\"tag\">Coldfusion<\/a> &#8211; <a href=\"http:\/\/technorati.com\/tag\/Flex\" rel=\"tag\">Flex<\/a> &#8211; <a href=\"http:\/\/technorati.com\/tag\/SAP\" rel=\"tag\">SAP<\/a> &#8211; <a href=\"http:\/\/technorati.com\/tag\/T-Mobile\" rel=\"tag\">T-Mobile<\/a> &#8211; <a href=\"http:\/\/technorati.com\/tag\/agile\" rel=\"tag\">agile<\/a> &#8211; <a href=\"http:\/\/technorati.com\/tag\/lessconfig\" rel=\"tag\">lessconfig<\/a> &#8211; <a href=\"http:\/\/technorati.com\/tag\/MAX\" rel=\"tag\">MAX<\/a> &#8211; <a href=\"http:\/\/technorati.com\/tag\/ActiveDirectory\" rel=\"tag\">ActiveDirectory<\/a> &#8211; <a href=\"http:\/\/technorati.com\/tag\/LDAP\" rel=\"tag\">LDAP<\/a> &#8211; <a href=\"http:\/\/technorati.com\/tag\/HR\" rel=\"tag\">HR<\/a> &#8211; <a href=\"http:\/\/technorati.com\/tag\/MXML\" rel=\"tag\">MXML<\/a>&nbsp;&#8211;&nbsp;<a href=\"http:\/\/technorati.com\/tag\/ActionScript\" rel=\"tag\">ActionScript<\/a> &#8211;&nbsp;&nbsp;<a href=\"http:\/\/technorati.com\/tag\/Captivate\" rel=\"tag\">Captivate<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>At Adobe MAX the most interesting session I&nbsp;attended was&nbsp;a&nbsp;presentation by T-Mobile. The&nbsp;wireless provider&nbsp;is using Adobe&nbsp;technology to extend SAP and rapidly bring new applications to users, without any Big Middleware&nbsp;SOA&nbsp;blather. The development&nbsp;team might as well have walked around with Neon Tangerine Flake&nbsp;&#8220;We Get It&#8221; signs above their heads (well this was Las Vegas, after all). It<\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"spay_email":"","footnotes":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false},"categories":[1],"tags":[],"class_list":["post-803","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"jetpack_featured_media_url":"","jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p9wfjh-cX","_links":{"self":[{"href":"https:\/\/redmonk.com\/jgovernor\/wp-json\/wp\/v2\/posts\/803","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/redmonk.com\/jgovernor\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/redmonk.com\/jgovernor\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/redmonk.com\/jgovernor\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/redmonk.com\/jgovernor\/wp-json\/wp\/v2\/comments?post=803"}],"version-history":[{"count":0,"href":"https:\/\/redmonk.com\/jgovernor\/wp-json\/wp\/v2\/posts\/803\/revisions"}],"wp:attachment":[{"href":"https:\/\/redmonk.com\/jgovernor\/wp-json\/wp\/v2\/media?parent=803"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/redmonk.com\/jgovernor\/wp-json\/wp\/v2\/categories?post=803"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/redmonk.com\/jgovernor\/wp-json\/wp\/v2\/tags?post=803"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}