<?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>Jens-Fabian Goetzmann</title>
	<atom:link href="http://www.jefago.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jefago.com</link>
	<description>Thoughts on IT in the Enterprise, Software Development, and Other Stuff</description>
	<lastBuildDate>Thu, 19 Jan 2012 08:00:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Five Things I Didn&#8217;t Learn at University</title>
		<link>http://www.jefago.com/2012/01/five-things-i-did-not-learn-at-university/</link>
		<comments>http://www.jefago.com/2012/01/five-things-i-did-not-learn-at-university/#comments</comments>
		<pubDate>Thu, 19 Jan 2012 08:00:26 +0000</pubDate>
		<dc:creator>Jens-Fabian Goetzmann</dc:creator>
				<category><![CDATA[Academia]]></category>
		<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Data Quality]]></category>
		<category><![CDATA[Enterprise Architecture]]></category>
		<category><![CDATA[Enterprise IT]]></category>
		<category><![CDATA[IT Landscape]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Strategy]]></category>
		<category><![CDATA[University]]></category>

		<guid isPermaLink="false">http://www.jefago.com/?p=89</guid>
		<description><![CDATA[As a computer-scientist-gone-business-consultant I have had many opportunities to witness how IT is used in the enterprise context. Time and time again, I have found it baffling how the way that IT is really used in companies differs from what I have learnt at the three German universities I have attended over the course of [...]]]></description>
			<content:encoded><![CDATA[<p>As a computer-scientist-gone-business-consultant I have had many opportunities to witness how IT is used in the enterprise context. Time and time again, I have found it baffling how the way that IT is really used in companies differs from what I have learnt at the three German universities I have attended over the course of my studies, or &#8211; even more important &#8211; what I did not learn at university. Here are five notable examples that I will elaborate on in this article:</p>
<ol>
<li>The relevance of enterprise architecture</li>
<li>The legacy of enterprise IT landscapes</li>
<li>The importance of data quality</li>
<li>The challenge of defining and aligning on the right requirements</li>
<li>The Embedding of IT in the enterprise and IT Strategy <span id="more-89"></span></li>
</ol>
<p>&nbsp;</p>
<h5>1. The Relevance of Enterprise Architecture</h5>
<p>Enterprise architecture, as in: the interaction between various systems, their interfaces and the definition and management of an overarching structure encompassing all systems of an enterprise, has not been covered in my studies. Architecture has been a topic of my studies only in the very concrete sense of individual systems, and in an abstract sense in terms of patterns to define various components and their connections to solve an overarching task. This did not, however, cover some of the challenges imminent to enterprise architecture, such as maintaining interoperability between various systems, standardization across the landscape, processes and tools to define an overarching enterprise application landscape, or the definition of the right interface types and technologies (think batch vs. realtime vs. neartime, pull vs. push, point-to-point vs. publish/subscribe, etc.). Since the enterprise architecture is at the very heart of all enterprise IT operations, I feel that this should be given a higher degree of attention also in university curricula.</p>
<h5>2. The Legacy of Enterprise IT Landscapes</h5>
<p>Universities very often use the newest technologies and concepts in their teaching: Especially in the area of software development, languages like Java and C# or even more modern ones like Ruby or Scala are used along with concepts such as object-oriented programming, aspect-oriented programming or modern functional programming. Legacy technologies like COBOL or mainframe computers are subject only to the obligatory history lesson in the first semester. This does not, however, reflect their enormous significance in businesses across different industries: in many large companies, mission-critical systems still use these legacy technologies, and they still need to be maintained, enhanced, and have to interact and interface with new pieces of technology. Students of IT-related disciplines should be made aware of these facts, since they pose challenges that are not covered by modern software development.</p>
<h5>3. The Importance of Data Quality</h5>
<p>Granted, I did learn how to properly validate input data and everything. That alone is probably one of the most important ingredients to ensuring data quality. Almost equally important, however, are the aspects of ensuring consistency across different systems and interfaces and the ever-present issue of how to keep persistent data that is stored over a longer period up to date. Related are the organizational challenges such as data ownership and processes to for change requests to data models. All of these are essential for maintaining and handling the data managed in large organizations. Even the notion how important these issues are, however, was barely ever touched upon during my studies. Since the quality of data is at the heart of all decision-making processes in companies, I think that this topic should be covered more deeply in university studies.</p>
<h5>4. The Challenge of Defining and Aligning on the Right Requirements</h5>
<p>This is actually one area in which I did learn something in university, thanks to the excellent <a title="Prof. Dr. Andreas Winter at University of Oldenburg" href="http://www.jefago.com/2010/07/smartphone-apps-curse-and-blessing/">Andreas Winter</a> (the relevance of whose classes I only came to fully understand once I started working). The class, however, was optional, and given the enormous challenges that I have witnessed in this area in various companies across different industries, I feel that this topic deserves more attention. The issues that I have faced include:</p>
<ul>
<li>Requirements are not defined clearly and unambiguously (leading to inevitable trouble during implementation)</li>
<li>Stakeholders are not properly and comprehensively identified and involved in the definition of requirements</li>
<li>Different stakeholders have conflicting requirements, and there is nobody with authority and willingness to resolve these conflicts, nor do any processes for conflict-resolution exist</li>
<li>There is no willingness or process to prioritize requirements, and senior management lacks the commitment to drive a (necessary) prioritization</li>
<li>There is a general mistrust between business units and IT function, leading them to work against each other instead of collaborating to produce the best solution for the business</li>
</ul>
<p>None of these issues can be solved by the IT function alone, in fact, some are more business issues with an impact on IT. However, since they are all issues that can in the end cause an IT project to fail, it is in fact IT’s responsibility to highlight the issues and propose solutions. Students should therefore be made aware of the challenges and potential ways to address them.</p>
<h5>5.  The Embedding of IT in the enterprise and IT Strategy</h5>
<p>As <a title="IT and strategy" href="http://www.jefago.com/2010/08/it-and-strategy/">I have written before</a>, the IT function needs to be aware of its role in the enterprise both as a service provider and an enabler of business activities, and form its own strategy in close alignment with the business strategy. Students of Computer Science and related disciplines should be made aware of these strong interdependencies between business strategy and operations and IT strategy and operations. Very often, IT people tend to have a narrow focus on their own domain (in which they are experts) and neglect the impact that their decisions can have on their environments and vice versa. IT experts make decisions that they regard as technologically superior (which they might well be), but that become obsolete in the light of changing business circumstances. Nobody in the business or the IT can predict the future, but they can at least cooperate and align to make sure they are heading in the same direction. Since this foundational interdependency is so strong and can wreak so much havoc if it is neglected, I think it should be highlighted and explained to students.</p>
<h5>Summary</h5>
<p>Many of the challenges I have described in this article are highly relevant and I have encountered them in companies across different industries. I thus think that students of IT-related disciplines should be made aware of the challenges and potential solutions. Of course, enterprise IT is not the only potential occupation for CS graduates: they might work on standard software, on hardware, on embedded systems, or found their own Internet start-up. Enterprise IT should therefore not be given too much weight in CS curricula. A basic introduction to the challenges specific to enterprise IT, however, should in my opinion be mandatory for every CS student.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jefago.com/2012/01/five-things-i-did-not-learn-at-university/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Top Privacy Plugins for Mozilla Firefox</title>
		<link>http://www.jefago.com/2012/01/top-privacy-plugins-for-mozilla-firefox/</link>
		<comments>http://www.jefago.com/2012/01/top-privacy-plugins-for-mozilla-firefox/#comments</comments>
		<pubDate>Thu, 12 Jan 2012 08:00:47 +0000</pubDate>
		<dc:creator>Jens-Fabian Goetzmann</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[Mozilla Firefox]]></category>
		<category><![CDATA[Privacy]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.jefago.com/?p=92</guid>
		<description><![CDATA[As a privacy concious user (maybe a bit paranoid at times&#8230; but then again, I am a German, so that comes naturally), I have been thinking a lot lately about how to maintain control about which web company gets which information about me. After all, through the proliferation of facebook&#8217;s like-button an its relatives (Google+, [...]]]></description>
			<content:encoded><![CDATA[<p>As a privacy concious user (maybe a bit paranoid at times&#8230; but then again, I am a German, so that comes naturally), I have been thinking a lot lately about how to maintain control about which web company gets which information about me. After all, through the proliferation of facebook&#8217;s like-button an its relatives (Google+, Twitter et al.) and the advent of behavioral advertising, companies have the means to create browsing profiles and, in the case of those companies that offer social networks and advertising services, even tie it to my person and use it to serve advertisements to me even in totally different contexts.  This is even more relevant since that tracking can even occur when I am not logged in to the social network in question, since e.g. facebook uses identifying cookies even in that case (see <a href="http://www.heise.de/security/artikel/Das-verraet-Facebooks-Like-Button-1230906.html">heise for more information</a>, albeit in German).</p>
<p>In this article, I am going to evaluate a few add-ons for Mozilla Firefox that help maintain control over the data that is being shared, and discuss some of their pros and cons. Similar or the same add-ons might exist for Google Chrome or other browsers as well. The plugins I am going to discuss are the following:</p>
<ol>
<li>Ghostery</li>
<li>BetterPrivacy</li>
<li>NoScript</li>
<li>Beef Taco</li>
<li>AdBlock Plus<span id="more-92"></span></li>
</ol>
<h5>1. Ghostery</h5>
<p><a href="http://www.ghostery.com/">Ghostery</a> is specifically designed to identify and notify the user about hidden or unhidden elements that might be able to track you and send information to third parties. It also allows blocking these elements altogether or selectively. It is by far the most useful privacy add-on available, since it generally works non-intrusively, has a comprehensive list of sites that track users, and it blocks the tracking by removing / not loading the questionable elements in web sites in the first place. In order to constantly improve and keep up-to-date with an ever-growing number of potentially tracking web companies, it features the so-called GhostRank, which allows users to voluntarily participate in collection of data to identify previously unknown tracking code.</p>
<p>For any privacy-concious user, Ghostery is definitely a must-have add-on. It is available for all major desktop browsers (although Chrome support is marked as experimental as of now) as well as for iOS mobile devices.</p>
<p>Pros:</p>
<ul>
<li>Non-intrusive</li>
<li>Comprehensive and thorough blocking of tracking elements</li>
<li>Automatic update of tracking blacklist</li>
</ul>
<p>Cons:</p>
<ul>
<li>Blacklist functionality means that new companies not yet on the list might go unnoticed</li>
</ul>
<h5>2. BetterPrivacy</h5>
<p><a href="https://addons.mozilla.org/en-US/firefox/addon/betterprivacy/">BetterPrivacy</a> has a single purpose: Keeping track of, managing and deleting so-called super-cookies. Super-cookies are cookies (little pieces of information stored by websites on the user&#8217;s computer) that are stored in other places than the usual Web browser&#8217;s cookie storage &#8211; most notably using Flash or the newly established DOM storage. Needless to say, any cookie can be used to identify the user and thus pose a potential privacy risk. This potential risk is increased by the fact that these super-cookies may currently not be removed when using browser features such as &#8220;delete private data&#8221; or &#8220;private browsing&#8221;. BetterPrivacy allows viewing these super-cookies and deleting them manually or automatically when the browser is closed.</p>
<p>Since the automatic deletion of super-cookies removes a potential privacy risk and does not seem to have any negative effect on major websites (the BetterPrivacy website warns that some games might be an exception), I would definitely recommend using this add-on. It does not, however, offer comprehensive privacy protection. Tracking and collection of information can still be conducted when BetterPrivacy is used in isolation, especially when the same browser is used for e.g. browsing facebook and other pages at the same time.</p>
<p>Pros:</p>
<ul>
<li>Single point of management for super-cookies</li>
<li>Automatic deletion of super-cookies does not seem affect any major web sites negatively</li>
</ul>
<p>Cons:</p>
<ul>
<li>Single-purpose add-on &#8211; no comprehensive privacy protection</li>
</ul>
<h5>3. NoScript</h5>
<p><a href="http://noscript.net/">NoScript</a> is the weapon of mass destruction among the plugins discussed here. In the recommended mode of operation, it prevents all JavaScript from being executed unless explicitly allowed for a web site. On a typical web site that includes JavaScript code for that site as well as potentially tracking JavaScript from third parties such as Google or facebook, the user can selectively set for which of the originating sites JavaScript code execution should be allowed. This means that all active tracking functionality is sustainably halted.</p>
<p>There are, however, significant drawbacks to this method. Much of today&#8217;s web uses JavaScript for totally legitimate purposes, and it can take quite long to allow these script sources for a fresh install of JavaScript (I have dozens of web sites that I visit frequently or less frequently, and I need to allow JavaScript for most of them, and this more often than not involves multiple clicks since they do not only use JavaScript originating from the web site itself, but also third-party JavaScript that is required for them to work properly). Also, some sites provide both tracking and non-tracking utility scripts: a notable example is google.com.  In addition, if you for the first time use a new sites, especially in order to order goods or make other financial transactions (such as for services), these transactions will often require JavaScript to be activated for a number of sites, including the web site itself, the bank involved and so on. This might require several clicks to allow scripts for each individual site, each of them requiring a reload of the current page, potentially breaking the booking process, or, even worse, causing several bookings to go off. Alternatively, the user might temporarily turn off the protection altogether (and maybe forget to turn it on later again).</p>
<p>These drawbacks make NoScript hard to use for the non-expert user. I would thus not recommend using NoScript unless you know what you are doing.</p>
<p>Pros:</p>
<ul>
<li>Whitelisting functionality (i.e., execute JavaScript only when explicitly allowed) protects also against new tracking elements</li>
<li>Blocking of JavaScript</li>
</ul>
<p>Cons:</p>
<ul>
<li>No blocking of non-active tracking functionality, such as one-pixel images etc.</li>
<li>Blocking of JavaScript impedes/breaks legitimate functionality of web sites as well</li>
</ul>
<h5>4. BeefTaco</h5>
<p><a href="http://jmhobbs.github.com/beef-taco/">BeefTaco</a> might be considered the light, non-invasive method of privacy protction. What it does is send opt-out requests to advertising companies in order to stop them from serving behavior-based adverts. As such, it does not in any way affect the way that websites work and are displayed, but only affects the content of the adverts. Neither, however, does it prevent in a technical way an advertising company from collecting data about you. All it does is ask the companies to refrain.</p>
<p>In summary, the strength of BeefTaco is that it interferes neither with the fuctionality and rendering of a site nor with the legitimate concern of web site operators to make money by showing advertisements. However, if you don&#8217;t trust the advertising companies, BeefTaco is nothing for you.</p>
<p>Pros:</p>
<ul>
<li>Does not interfere with the web sites&#8217; content</li>
</ul>
<p>Cons:</p>
<ul>
<li>No technical prevention of information collection</li>
</ul>
<h5>5. AdBlock Plus</h5>
<p><a href="http://adblockplus.org/en/">AdBlock Plus</a> is, as the name suggests, above all, an ad-blocking add-on. It can, however, also block tracking code that is not advertisement-related. Since its most recent version, it also has an option to allow &#8220;acceptable&#8221;, non-annoying ads, though that behavior is currently limited to a very short list of ads since they have to be manually verified.</p>
<p>Since AdBlock Plus is not primarily a privacy tool, but an ad-blocking tool, I would not recommend it to users that are concerned only about their privacy. Personally, I consider advertising by itself not a bad thing: Apart from its obvious marketing purpose (which is a legitimate purpose in itself), it also serves as a means for web sites to make money (which is also a legitimate purpose). Especially for smaller web sites, which often barely earn enough money to finance their own expenses, let alone contribute to covering to the owner&#8217;s cost of living, the availability is often crucial.</p>
<p>Pros:</p>
<ul>
<li>Comprehensive ad-blocking functionality</li>
<li>Recent addition of allowing non-annoying ads</li>
</ul>
<p>Cons:</p>
<ul>
<li>Blocks legitimate, non-privacy critical ads as well</li>
</ul>
<h5>Summary</h5>
<p>Some privacy-related measures should be taken by any user that is concerned about their privacy. For non-expert users or those that do not want to spend too much time configuring, Ghostery is definitely the best choice. Experts might be better suited with NoScript. Those who trust the advertising companies but simply do not want behavioral advertising should stick to Beef Taco, while those that want to get rid of ads altogether should go for AdBlock Plus. The super-cookie safeguard BetterPrivacy complements any of the other four options and is worth checking out in any case.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jefago.com/2012/01/top-privacy-plugins-for-mozilla-firefox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;Always online&#8221; is not reality for groupware yet</title>
		<link>http://www.jefago.com/2012/01/always-online-is-not-reality-for-groupware-yet/</link>
		<comments>http://www.jefago.com/2012/01/always-online-is-not-reality-for-groupware-yet/#comments</comments>
		<pubDate>Thu, 05 Jan 2012 07:00:04 +0000</pubDate>
		<dc:creator>Jens-Fabian Goetzmann</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[Groupware]]></category>
		<category><![CDATA[Online]]></category>
		<category><![CDATA[Web Applications]]></category>

		<guid isPermaLink="false">http://www.jefago.com/?p=85</guid>
		<description><![CDATA[When looking for alternatives to the dominating groupware suites Microsoft Outlook/Exchange and IBM Lotus Notes/Domino, one comes across multiple Web-based groupware solutions such as Zimbra. Since groupware is first and foremost about group collaboration—including messaging, calendar sharing and appointment scheduling, and managing of contact information—it seems like a good idea to implement it as a [...]]]></description>
			<content:encoded><![CDATA[<p>When looking for alternatives to the dominating groupware suites Microsoft Outlook/Exchange and IBM Lotus Notes/Domino, one comes across multiple Web-based groupware solutions such as Zimbra. Since groupware is first and foremost about group collaboration—including messaging, calendar sharing and appointment scheduling, and managing of contact information—it seems like a good idea to implement it as a Web application, removing some of the hassles and inefficiencies of conventional client/server applications and allowing access to the software from a broad range of devices, including mobile phones or tablets.</p>
<p>There is, however, one significant drawback to Web-based groupware: It requires the user to have Web access in order to use the software. While offices in most parts of the world today have fast Internet connectivity, there are—even without thinking of less developed parts of the world—situations in which online connectivity is not given. A few examples follow.<span id="more-85"></span></p>
<p>Many manufacturing or service companies have sales personnel that visit customers in order to present their companies’ products. Even though their laptops might be equipped with 3G connectivity, their coverage is still not satisfactory even in developed countries, and large amounts of steel-reinforced concrete, as is used in most large buildings, might kill the signal altogether. A similar argument holds for external personnel and consultants that work at a client company’s site: very often, they have no or severely limited access over the client company’s network, and 3G connectivity might be patchy as well.</p>
<p>Another situation in which connectivity is non-present, but people tend to be working is all work-related travel. While getting Internet connectivity on a train might already be difficult, on most airplanes it is still downright impossible. While first airlines are introducing Internet connectivity for intercontinental flights, short-haul flights still remain an Internet-free area.</p>
<p>What is common to all of these situations is that people will want to use groupware: personnel at a customer site will want to access and update contact information as well as have access to their calendars to schedule new appointments, and people travelling will want to plan their days as well as read emails or write them for later sending. As a result, groupware will be useful in these situations only if it allows offline access with later synchronization of changes to a central server—just like the basic mode of operation for Outlook and Lotus Notes provides. Web-based solutions are of little help under these circumstances, since they generally do not allow offline operation.</p>
<p>Given that groupware is only really useful if all employees of a company can use it, in essence any company that has some employees regularly in situations like the ones described above, will want to stick to a groupware suite with the possibility of offline operation. Particularly for larger companies, that is most likely the case, since they will have multiple sites in different cities or even countries, that some staff regularly have to travel between. In turn, wide acceptance of Web-based groupware suites is not likely to happen before these “dead spots” in online connectivity will have been eradicated.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jefago.com/2012/01/always-online-is-not-reality-for-groupware-yet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>An Efficient Graph Model for News Feeds in Social Networks</title>
		<link>http://www.jefago.com/2011/12/an-efficient-graph-model-for-news-feeds-in-social-networks/</link>
		<comments>http://www.jefago.com/2011/12/an-efficient-graph-model-for-news-feeds-in-social-networks/#comments</comments>
		<pubDate>Thu, 29 Dec 2011 14:09:58 +0000</pubDate>
		<dc:creator>Jens-Fabian Goetzmann</dc:creator>
				<category><![CDATA[Academia]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[neo4j]]></category>
		<category><![CDATA[NOSQL]]></category>
		<category><![CDATA[Social Networks]]></category>

		<guid isPermaLink="false">http://www.jefago.com/?p=94</guid>
		<description><![CDATA[Recently René, a friend of mine (and co-founder of the social networking website Metalcon), who is now researching in the context of Web technologies, has come up with a new concept how to efficiently retrieve Twitter-like newsfeeds in social networks, using graph databases such as Neo4j. If you are interested in Web technology in general [...]]]></description>
			<content:encoded><![CDATA[<p>Recently René, a friend of mine (and co-founder of the social networking website <a title="Metalcon - Social network for metal fans (German)" href="http://www.metalcon.de">Metalcon</a>), who is now researching in the context of Web technologies, has come up with <a title="René Pickhardt: An efficient Graph Model for Retrieving the Top-k News Feeds for users in social networks" href="http://www.rene-pickhardt.de/graphity-an-efficient-graph-model-for-retrieving-the-top-k-news-feeds-for-users-in-social-networks/">a new concept how to efficiently retrieve Twitter-like newsfeeds in social networks</a>, using graph databases such as <a title="neo4j graph database" href="http://neo4j.org/">Neo4j</a>. If you are interested in Web technology in general or social networks in particular, I suggest you check out his article and the enclosed video, since it highlights how database technologies that deviate from the ubiquitious relational databases can be used and leveraged to produce a level of efficiency that is really stunning. To illustrate this, René highlights that with this technology, as much as 10&#8217;000 news streams can be retrieved per second for a network that generates 100 new content items (e.g., tweets) per second on a single machine &#8211; in comparison, Twitter reported that 600 tweets per second as of last year. This alone should be enough to emphasize the enormous potential of this new technology.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jefago.com/2011/12/an-efficient-graph-model-for-news-feeds-in-social-networks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IT and strategy</title>
		<link>http://www.jefago.com/2010/08/it-and-strategy/</link>
		<comments>http://www.jefago.com/2010/08/it-and-strategy/#comments</comments>
		<pubDate>Sun, 01 Aug 2010 21:00:41 +0000</pubDate>
		<dc:creator>Jens-Fabian Goetzmann</dc:creator>
				<category><![CDATA[Strategy]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[IT function]]></category>

		<guid isPermaLink="false">http://www.jefago.com/?p=79</guid>
		<description><![CDATA[I&#8217;ve come across two quite interesting recently, both dealing with whether IT and IT projects are strategic or tactical: Martin Fowler argues that around 95% of IT projects are utility projects, and only 5% are to be considered strategic Neal Ford states that what is strategic to the business always is tactical to IT Both [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve come across two quite interesting recently, both dealing with whether IT and IT projects are strategic or tactical:</p>
<ul>
<li>Martin Fowler <a href="http://martinfowler.com/bliki/UtilityVsStrategicDichotomy.html" target="_blank">argues that around 95% of IT projects are <em>utility</em> projects, and only 5% are to be considered strategic</a></li>
<li>Neal Ford <a href="http://memeagora.blogspot.com/2009/01/tactics-vs-strategy-soa-tarpit-of.html" target="_blank">states that what is strategic to the business always is tactical to IT</a></li>
</ul>
<p>Both articles provide valuable insights on what to consider <em>strategic </em>in IT &#8211; yet in a totally different way.</p>
<p><span id="more-79"></span></p>
<h5>Martin Fowler&#8217;s &#8220;Utility vs. Strategic Dichotomy&#8221;</h5>
<p>The first, and more recent, article by Martin Fowler is one that IT staff, especially developers, should really have a look at, since it is spot on: Written by a person with enough techie credibility, it points out exactly how IT is supposed to work: most of the time, in most situations, IT has to<em> just work</em>.  This &#8220;utility&#8221; IT needs to first and foremost <em>not get in the way</em> of its users. This lesson is quite hard to learn for IT staff: they know that without their services, their business would essentially stop working, and still all their users want is essentially not know they are there. This seems like injustice &#8211; but only on first thought: The same holds true for other business support functions such as finance or HR, and even for really basic infrastructure such as electricity, water or logistics.</p>
<p>In contrast, only very few projects are actually strategic in nature, and can really make a difference in the way the business is run. A highly interesting conclusion from that separation is that the two types of projects should be run differently to account for the differences in where their opportunities and risks are.</p>
<h5>Neal Ford&#8217;s &#8220;Tactics vs. Strategy&#8221;</h5>
<p>Neal Ford&#8217;s article, which I found because it is linked from the previously discussed one, is also interesting &#8211; but from a totally different perspective, namely because it is a vivid example of the misunderstandings between business and IT. The article centers around the notion that what is strategic to the business, is tactical to IT, because the business can change its direction in a two hour meeting, while IT can&#8217;t adapt that fast. This statement, however,  is wrong on multiple levels, which I will discuss in the following.</p>
<p><em>1. No business can change in a two hour meeting.</em> This is not because strategic business decisions require preparation of more than two hours (which they do, by the way), but because that change has to be implemented throughout the company, with IT being  a part of it. Let&#8217;s for example consider the strategic decision to start servicing customers in more than one country: granted, this decision might have a strong impact on the IT landscape because so far customer data was stored without a country. However, it impacts the rest of the company as well: staff in the other country needs to be hired, offices rented, managers installed etc. All of these activities together form the implementation of the strategy.</p>
<p><em>2. The IT function can (and should) have a strategy too.</em> IT managers too can take two hour long meetings. And not only that, they (hopefully) also can decide on the long term direction of their function. They should of course link their strategy as tightly to the business strategy as possbile, but developing a vision of a future state of the IT landscape and a plan to get there is essential to prevent the IT function from acting <em>just tactically</em>, which will only ensure that the whole IT landscape will get ever messier.</p>
<p><em>3. Business strategy changes don&#8217;t come out of thin air, they are elaborated over a long time.</em> The last point is the most important one, actually, since it highlights the gap between &#8220;business&#8221; and &#8220;IT&#8221;. Neal Ford writes:</p>
<blockquote><p>No matter how much effort you put into a comprehensive, beautiful,  well-designed enterprise architecture, it&#8217;ll be blown out of the water  the first time the business makes a decision unlike the ones that came  before.</p></blockquote>
<p>While this is certainly true, it shows that any strategic decision, be it on the business or on the IT side, should closely involve stakeholders from the respective &#8220;other&#8221; side. This will make sure that implications of decisions are considered as early in the process as possible. Of course, the fact that the current IT architecture doesn&#8217;t fit with a proposed business change probably won&#8217;t keep the business from changing (since the world is, anyway!) &#8211; but considering potential options and their impact before taking a strategic decisions will make a difference and ensure that IT and business are equally well prepared for their strategic challenge.</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 43px; width: 1px; height: 1px; overflow: hidden;">
<h3 class="post-title entry-title"><a href="http://memeagora.blogspot.com/2009/01/tactics-vs-strategy-soa-tarpit-of.html">Tactics vs. Strategy (SOA &amp; The Tarpit of Irrelevancy)</a></h3>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.jefago.com/2010/08/it-and-strategy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Smartphone Apps &#8211; Curse and Blessing</title>
		<link>http://www.jefago.com/2010/07/smartphone-apps-curse-and-blessing/</link>
		<comments>http://www.jefago.com/2010/07/smartphone-apps-curse-and-blessing/#comments</comments>
		<pubDate>Fri, 30 Jul 2010 21:00:35 +0000</pubDate>
		<dc:creator>Jens-Fabian Goetzmann</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[App]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Smartphone]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.jefago.com/?p=70</guid>
		<description><![CDATA[Before owning an app-centric smartphone such as the Apple iPhone myself, my thinking has been that apps serve no real purpose &#8211; 90% of the purposes fulfilled by these apps exist as free Web applications and services, and app-centric smartphones usually come with capable Web browsers and data flat rate plans. My thinking has changed, [...]]]></description>
			<content:encoded><![CDATA[<p>Before owning an app-centric smartphone such as the Apple iPhone myself, my thinking has been that apps serve no real purpose &#8211; 90% of the purposes fulfilled by these apps exist as free Web applications and services, and app-centric smartphones usually come with capable Web browsers and data flat rate plans. My thinking has changed, however, since using an iPhone: apps have real (or at least, perceived) advantages when compared to Web applications accessed from a smartphone browser:</p>
<ul>
<li>User experience perfectly adapted to the phone (e.g. touchscreen interaction)</li>
<li>Direct access to device &#8220;periphery&#8221;, e.g. gyroscopic sensor</li>
<li>Integration with other software, e.g. messaging, contacts</li>
<li>Own, colorful app icon</li>
</ul>
<p><span id="more-70"></span></p>
<p>Naturally, most apps do not in fact replace Web applications, they rather augment them with another means of interaction (e.g. think of all the social network apps, news and information apps, etc., that contact their respective &#8220;mother sites&#8221; using dedicated APIs). Nevertheless, the increasing proliferation of app-enabled smartphones means that apps will increasingly be considered a required means of interaction for Web applications. This will naturally have quite an impact on the mid-term development of the software and software development landscape, particularly with respect to those services that are currently being offered primarily as free (and most probably ad-financed) Web applications. In the remainder of this article, I will discuss some aspects of these changes, and highlight their positive as well as negative potential consequences.</p>
<h5>Service monetization</h5>
<p>First and foremost, I will discuss one of the most important and positive aspects of apps: Due to the ease of use of the respective app stores, apps have made it easy to monetize services. Most classic Web applications are offered free of charge, and monetize primarily using advertising. This, however, has many drawbacks: Users develop advertisement blindness, block advertising completely, and more often than not advertising also impedes the user experience of Web applications &#8211; be it in terms of the visual appereance, or even getting in the way of the user wanting to use the application (think layer apps, or Flash ads with sound effects).</p>
<p>In contrast, lots of apps are offered for a relatively little charge around 1$, which is easily payable by the user through the app store, and because all applications carry a price tag (even if it sometimes says &#8220;free&#8221;), it makes it more acceptable for the user to pay for receiving a service. Even though today there are means to charge small amounts to users also in more classic Web applications (think premium SMS messages, PayPal, etc.), it simply doesn&#8217;t feel natural to pay for something on the Web without getting physical goods in return (of course, I am exaggerating here, and there are numerous examples of virtual services and goods being sold for real money, but they mostly fall outside the basic service category I am looking at here).</p>
<h5>Additional effort with limited differentation opportunities</h5>
<p>Apps as one means of interaction with Internet based services are going to be increasingly considered a necessary part of the service itself. The more this is the case, the less will the existence of an app to access the service alone be a unique selling proposition (USP) for that service. Of course, an app with a well designed, intuitive interface can be a USP, but the same holds true for a well designed Web interface, so this argument is not app specific.</p>
<p>On the other hand, designing and developing apps to interface with an Internet based service requires additional effort, especially if the apps are to actually take into account the specialties of the device they are targeting (and a good Web developer/designer doesn&#8217;t necessarily make for a good app developer/designer). This is especially true if the competition offers their apps free of charge (as it is the case now e.g. for social networks), since then there is no way to generate additional revenue to cover the efforts involved in the app development &#8211; except ads, again.</p>
<h5>Multitude of platforms</h5>
<p>Another challenge that is developing is the increasing number of platforms for which an app concept exists. Apple&#8217;s iOS &#8211; powering iPhone, iPad and iPod touch &#8211; is still the most popular and relevant one, but other smartphone (OS) vendors have adopted their app platforms and stores as well: Google&#8217;s Android, Microsoft&#8217;s Windows Phone 7, RIM&#8217;s BlackBerry platform, Palm&#8217;s Web OS, Nokia&#8217;s OVI are only the most relevant, and this means a stunning number of six platforms with incompitable programming environments. Some progress has been made in this direction recently, e.g. Palm focusing on making it easy for developers to port their apps to Web OS. On the other hand, there is Apple as the most important player, whose app store terms effectively prohibit any software not originally developed in Apple&#8217;s C dialect <em>Objective C</em>, making it virtually impossible to easily port any app to iOS.</p>
<p>A way out of this dilemma would be to increase standardisation of smartphone app development platforms. There are multiple possibilities for developing that kind of platform: One would be Java, which has a track record in both platform interoperability and mobile devices, or web technologies such as XML, HTML, and JavaScript, which are quite well known to a lot of developers and can already be used for app development on a number of platforms. Naturally, a standard smartphone app development platform would still have to be able to adapt to specialties of the device, but abstraction layers to accomplish this could probably be conceived relatively easily.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jefago.com/2010/07/smartphone-apps-curse-and-blessing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Spammers in the cloud</title>
		<link>http://www.jefago.com/2010/04/spammers-in-the-cloud/</link>
		<comments>http://www.jefago.com/2010/04/spammers-in-the-cloud/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 21:00:33 +0000</pubDate>
		<dc:creator>Jens-Fabian Goetzmann</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[Cloud computing]]></category>
		<category><![CDATA[Internet]]></category>

		<guid isPermaLink="false">http://www.jefago.com/?p=51</guid>
		<description><![CDATA[Apparently, spammers are following the current megatrend and moving to the cloud. I am used to getting tons of spam comments on this blog — but one of them catched my eye: Author : ctgPi (IP: 79.125.XXX.XXX , ec2-79-125-XXX-XXX.eu-west-1.compute.amazonaws.com) The IP address belongs to Amazon&#8217;s EC2 (elastic compute cloud) service &#8211; the textbook example of a cloud [...]]]></description>
			<content:encoded><![CDATA[<p>Apparently, spammers are following the current megatrend and moving to the cloud. I am used to getting tons of spam comments on this blog — but one of them catched my eye:</p>
<p><code>Author : ctgPi (IP: 79.125.XXX.XXX , ec2-79-125-XXX-XXX.eu-west-1.compute.amazonaws.com)</code></p>
<p>The IP address belongs to Amazon&#8217;s <a title="Amazon EC2" href="http://aws.amazon.com/ec2/" target="_blank">EC2</a> (elastic compute cloud) service &#8211; <em>the</em> textbook example of a cloud service (more specifically, a <a href="http://en.wikipedia.org/wiki/Platform_as_a_service" target="_blank"><em>PaaS</em> or <em>Platform as a Service</em></a>) — so it seems that the spammer uses Amazon&#8217;s cloud to send out spam comments to blogs.<span id="more-51"></span></p>
<p>There are &#8220;positive&#8221; and &#8220;negative&#8221; sides to this (from the perspective of a spam target, not from the spammer&#8217;s perspective):</p>
<h5>Positive:</h5>
<ul>
<li>The spammer is probably identifiable since he/she needs to have an Amazon account and a credit card registered with that account for payment.</li>
<li>&#8220;No computers were harmed in the making of this spam comment&#8221; — the spammer is not using a botnet of hacked machines</li>
</ul>
<h5>Negative:</h5>
<ul>
<li>The advantages of the cloud that apply to anyone using cloud services also apply to the spammer — most notably the ability to scale up and down quickly. In essence this means that a spammer can in a matter of seconds enlarge the fleet of computers (all with different IPs) he/she controls to send out a whole bunch of spam mails/comments/whatever at once.</li>
</ul>
<p>Those that will probably suffer most from this trend are legitimate users of cloud services such as Amazon&#8217;s EC2: They risk getting banned by server operators since the IP space provided by the service also hosts severe spammers. In the long run, this is probably a problem that cloud providers such as Amazon have to tackle in general — which is going to be a challenge, especially doing so without negatively affecting legitimate users.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jefago.com/2010/04/spammers-in-the-cloud/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flourish Player v0.02 Released</title>
		<link>http://www.jefago.com/2009/11/flourish-player-v0-02-released/</link>
		<comments>http://www.jefago.com/2009/11/flourish-player-v0-02-released/#comments</comments>
		<pubDate>Sun, 01 Nov 2009 12:15:30 +0000</pubDate>
		<dc:creator>Jens-Fabian Goetzmann</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Audio]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://www.jefago.com/?p=42</guid>
		<description><![CDATA[Early last year, I created a web site for my Mainz-based rock band. I was looking for a Flash (SWF) audio player to use on the page, but I could find no player that was fully customizable without using the commercial Adobe Flash IDE. Thus, I wrote a new Flash audio player that is fully [...]]]></description>
			<content:encoded><![CDATA[<p>Early last year, I created a web site for my Mainz-based rock band. I was looking for a Flash (SWF) audio player to use on the page, but I could find no player that was fully customizable without using the commercial Adobe Flash IDE. Thus, I wrote a new Flash audio player that is fully customizable using open source tools (<a href="http://www.swfmill.org" target="_blank">swfmill</a> for creating the SWF file, <a href="http://www.mtasc.org/" target="_blank">MTASC</a> for compiling ActionScript code and <a href="http://inkscape.org/" target="_blank">Inkscape</a> for creating the SVG control graphics) and called it <em>Flourish Player</em>. Yesterday, I released a new version that makes use of new features of the recent swfmill version so that customization of the player is now even easier. The individual button graphics are stored as SVG files and after they are edited using Inkscape or another SVG editor, they are incorporated in the player by recompilation. Plans for future versions include full customizability without the need to recompile the player.</p>
<p>The new release is available in source or binary form from the <a href="http://flourishplayer.sourceforge.net/" target="_blank">Flourish Player project web site</a> or directly from <a href="http://sourceforge.net/projects/flourishplayer/" target="_blank">SourceForge</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jefago.com/2009/11/flourish-player-v0-02-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Distributed Architecture for the MediaSearch Framework</title>
		<link>http://www.jefago.com/2009/09/a-distributed-architecture-for-the-mediasearch-framework/</link>
		<comments>http://www.jefago.com/2009/09/a-distributed-architecture-for-the-mediasearch-framework/#comments</comments>
		<pubDate>Tue, 01 Sep 2009 11:27:53 +0000</pubDate>
		<dc:creator>Jens-Fabian Goetzmann</dc:creator>
				<category><![CDATA[Academia]]></category>
		<category><![CDATA[Fraunhofer SIT]]></category>
		<category><![CDATA[Master's Thesis]]></category>
		<category><![CDATA[MediaSearch Framework]]></category>
		<category><![CDATA[Watermarking]]></category>

		<guid isPermaLink="false">http://www.jefago.com/?p=38</guid>
		<description><![CDATA[A few weeks ago, I handed in my master&#8217;s thesis with the title &#8220;A Distributed Architecture for the MediaSearch Framework&#8221; after almost six months of work. Here is an abstract of the thesis: The Fraunhofer SIT MediaSearch Framework is a loosely coupled, event based software system that searches internet platforms such as BitTorrent, Rapidshare or [...]]]></description>
			<content:encoded><![CDATA[<p>A few weeks ago, I handed in my master&#8217;s thesis with the title &#8220;A Distributed Architecture for the MediaSearch Framework&#8221; after almost six months of work. Here is an abstract of the thesis:</p>
<blockquote><p>The <em>Fraunhofer <abbr title="Secure Information Technology">SIT</abbr> MediaSearch Framework</em> is a loosely coupled, event based software system that searches internet platforms such as BitTorrent, Rapidshare or YouTube for media that match specified search criteria, downloads them and examines them for the presence of digital watermarks. Since the amount of media available on the internet is huge, the system is required to be scalable so that large amounts of data can be processed simultaneously.<span id="more-38"></span></p>
<p>The scalability of the MediaSearch Framework faces several possible impediments that we will examine in this thesis. Especially noteworthy are the requirements of high network bandwidth for downloads and large computing resources for the retrieval of watermarks. The required scalability might be achieved by distributing the execution of the system to multiple machines to utilize their aggregate bandwidth and computing power.</p>
<p>In this thesis, we examine possible distributed architectures and their implications on the Framework and its scalability. We also discuss impacts on the reliability of the system as a whole and countermeasures against failures of parts of the system. Finally, we propose an implementation of a distributed architecture for the MediaSearch Framework, evaluate its benefits and shortcomings, and show that it is a feasible operation platform for complementing passive copyright protection using digital watermarks with an active search component.</p></blockquote>
<p>If you wish to receive a full electronic copy of my master&#8217;s thesis, please feel free to <a href="http://www.jefago.com/impress-contact/" target="_self">contact me</a> via e-mail.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jefago.com/2009/09/a-distributed-architecture-for-the-mediasearch-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Auto-Starting EJBs</title>
		<link>http://www.jefago.com/2009/06/auto-starting-ejbs/</link>
		<comments>http://www.jefago.com/2009/06/auto-starting-ejbs/#comments</comments>
		<pubDate>Sat, 13 Jun 2009 11:30:41 +0000</pubDate>
		<dc:creator>Jens-Fabian Goetzmann</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[EJB]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Java EE]]></category>

		<guid isPermaLink="false">http://www.jefago.com/?p=30</guid>
		<description><![CDATA[An issue that recently gave me something to gnaw on was that of auto-starting an EJB: I wanted to achieve the effect that an EJB within a Java enterprise application would become active (and in that special case, connect to another component on another machine) as soon as it was deployed (or the container was [...]]]></description>
			<content:encoded><![CDATA[<p>An issue that recently gave me something to gnaw on was that of auto-starting an EJB: I wanted to achieve the effect that an EJB within a Java enterprise application would become active (and in that special case, connect to another component on another machine) as soon as it was deployed (or the container was started). If possible, I wanted the solution to be container independent. After a lot of googling and trying, I found a solution that works, but it is probably one of the most awkward hacks to solve a problem that sounds as simple as this.</p>
<p><span id="more-30"></span>First and foremost: What I tried first was using the <a title="Reference documentation for @PostConstruct annotation" href="http://java.sun.com/javaee/5/docs/api/javax/annotation/PostConstruct.html" target="_blank"><code>@PostConstruct</code> annotation</a> on a method that should be called after deployment – but that doesn&#8217;t work, because the EJB is not guaranteed to be instantiated directly after deployment. As a matter of fact, at least the JBoss I was using lazily instantiates the EJB the moment it is first invoked.</p>
<p>After a while, I came across <a href="http://forums.sun.com/thread.jspa?threadID=5172902" target="_blank">this thread in Sun&#8217;s forum</a>, in which a Sun developer states that better support for this use case is planned for a future EJB version, and currently the only way to achieve the desired effect is to rely on a <a href="http://java.sun.com/javaee/5/docs/api/javax/servlet/ServletContextListener.html" target="_blank"><code>ServletContextListener</code></a>, which provides a <code>contextInitialized()</code> method that is called as soon as a servlet context is initialized. However, like the &#8220;servlet&#8221; implies, there needs to be a web application to use this listener – so I ended up adding a web application to my enterprise application with no content besides that context listener that would poke the EJB in order to get started. Now although this method is far from elegant, at least it works reliably and most possibly independent of the container used; at least I can verify its functionality on the JBoss 5 used in my test system.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jefago.com/2009/06/auto-starting-ejbs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

