<?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>New Media Labs &#187; Agile Development</title>
	<atom:link href="http://www.newmedialabs.co.za/category/agile_development/feed" rel="self" type="application/rss+xml" />
	<link>http://www.newmedialabs.co.za</link>
	<description></description>
	<lastBuildDate>Thu, 19 Jan 2012 06:00:31 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>How using an Agile process combats the common project pitfalls</title>
		<link>http://www.newmedialabs.co.za/agile_development/how-using-an-agile-process-combats-the-common-project-pitfalls</link>
		<comments>http://www.newmedialabs.co.za/agile_development/how-using-an-agile-process-combats-the-common-project-pitfalls#comments</comments>
		<pubDate>Thu, 19 Jan 2012 06:00:31 +0000</pubDate>
		<dc:creator>WillemO</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.newmedialabs.co.za/?p=1590</guid>
		<description><![CDATA[Software projects are  packed chock-full of Risk. It's important to acknowledge the risks and to mitigate them. How you address the risks depends on which type of "project process" you are following. The two types of project processes that I have experienced are Agile-type and Waterfall-type projects. In this post I list some of the common ways to mitigate well-known risks for both these project types.]]></description>
			<content:encoded><![CDATA[<p>Software projects are  packed chock-full of Risk. It&#8217;s important to acknowledge the risks and to mitigate them. How you address the risks depends on which type of &#8220;project process&#8221; you are following. The two types of project processes that I have experienced are Agile-type and Waterfall-type projects. In this post I list some of the common ways to mitigate well-known risks for both these project types.</p>
<p>When given a choice we prefer to adopt an Agile approach. We believe that following an Agile approach leads to a far superior final product. We also believe that Agile is much less risky. So this post is unashamedly biased in favor of Agile.</p>
<p>First, a brief description of the two types of projects:</p>
<p>﻿</p>
<h2>Waterfall-type project:</h2>
<p><a href="http://www.newmedialabs.co.za/wp-content/uploads/2012/01/waterfall.png" rel="lightbox[1590]"></a></p>
<p><a href="http://www.newmedialabs.co.za/wp-content/uploads/2012/01/waterfall.png" rel="lightbox[1590]"></a><a href="http://www.newmedialabs.co.za/wp-content/uploads/2012/01/waterfall_600px.png" rel="lightbox[1590]"><img class="alignnone size-full wp-image-1597" title="waterfall" src="http://www.newmedialabs.co.za/wp-content/uploads/2012/01/waterfall_600px.png" alt="" width="600" height="319" /></a></p>
<p><a href="http://www.newmedialabs.co.za/wp-content/uploads/2012/01/waterfall_600px.png" rel="lightbox[1590]"></a>A waterfall project typically has a set deadline for set functionality.  Many businesses like this type of project because it seems predictable and makes it easy to get a budget approved for the project.</p>
<p>Process: Plan, Build, Test, Done.</p>
<p>Problems:</p>
<ul type="circle">
<li>Trying to predict accurately      while software development is very unpredictable.</li>
<li>User Requirements      Specifications are usually insufficient and open to interpretation, which      leads to errors.</li>
<li>Scope Creep is time-consuming      to manage and often &#8220;sneaks&#8221; in due to unclear specifications.      This puts pressure on the development team to deliver more functionality      in the same amount of time.</li>
</ul>
<h2></h2>
<h2>Agile-type project:</h2>
<p><a href="http://www.newmedialabs.co.za/wp-content/uploads/2012/01/agile_600px.png" rel="lightbox[1590]"><img class="alignnone size-full wp-image-1598" title="agile" src="http://www.newmedialabs.co.za/wp-content/uploads/2012/01/agile_600px.png" alt="" width="600" height="407" /></a></p>
<p><a href="http://www.newmedialabs.co.za/wp-content/uploads/2012/01/agile.png" rel="lightbox[1590]"></a>An agile project is typically seen as a recurring monthly expense instead of a big capital expense. Features are delivered frequently  (typically every two weeks) and the project carries on for as long as it is delivering useful functionality.</p>
<p>Process: Plan, Build, Test, *Repeat Repeat Repeat</p>
<p>Problems:</p>
<ul type="circle">
<li>Unable to promise specific      features at a specific deadline far in the future.</li>
<li>Difficult to work with      businesses with a &#8220;waterfall&#8221; mindset (most big old businesses).</li>
<li>Difficult to get project      approval when hard-and-fast promises can&#8217;t be made.</li>
</ul>
<p>Advantages:</p>
<ul type="circle">
<li>Deliver what&#8217;s useful, not      &#8220;what the spec said&#8221;.</li>
<li>Deliver useful features      early.</li>
<li>Detect problems early.</li>
<li>Embraces change.</li>
</ul>
<h1></h1>
<h1>Why Projects Fail</h1>
<p>Projects can be considered failures for many reasons. The most common reasons that I have observed are:</p>
<ol type="1">
<li>Budget Overruns and Late Delivery &#8211; these      two usually go hand-in-hand.</li>
<li>Incorrect      Functionality delivered &#8211; the client expected one thing and the      programmers built something else.</li>
<li>Technical      Problems &#8211; for example: the system is too slow to use, or it      doesn&#8217;t integrate with another critical system in the software ecosystem.</li>
</ol>
<p>Below is a list of ways to combat these three problems in either a Waterfall or Agile project.</p>
<h2></h2>
<h2>Problem 1: Budget Overrun/ Late Delivery</h2>
<p>Waterfall:</p>
<ul type="disc">
<li>Add extra time to mitigate      risk. For example: estimate 13 hours for a 10 hour task. Not optimal.      Expensive.</li>
</ul>
<ul type="disc">
<li>Track progress against      milestones to ensure the project is progressing on schedule. (The problem      with milestones is that they can give a false sense of security. When you      think something is &#8220;Done&#8221; it might not really be. &#8220;It&#8217;s      done! (except for the styling, or integration with external system      X)&#8221;)</li>
<li>Work overtime if needed to      catch-up.</li>
</ul>
<p>Agile:</p>
<ul type="disc">
<li>Frequent delivery means most      important features get delivered early.</li>
</ul>
<ul type="disc">
<li>If less important features      are late it is not such a big deal. The system is constantly improving and      maturing.</li>
</ul>
<h2></h2>
<h2>Problem 2: Technical Problems</h2>
<p>Waterfall:</p>
<ul type="disc">
<li>Do lots of prototyping in the      first stage of the project to try and spot technical challenges.</li>
</ul>
<ul type="disc">
<li><span style="color: #ff0000;">If caught late it      may be too late to do anything about it. Major losses.</span></li>
</ul>
<p>Agile:</p>
<ul type="disc">
<li>Will be picked up early due      to continuous early delivery. Project can then go a different direction,      or cancel project if absolutely necessary (at least it will be early).</li>
</ul>
<h2></h2>
<h2>Problem 3: Wrong Functionality (incorrect assumptions)</h2>
<p>Waterfall:</p>
<ul type="disc">
<li>Write very detailed user      requirements specification. (The problem with User Requirements      is that they give a false sense of security. Now matter how explicitly      they are written, they are still open to individual interpretation and      interpretation may not be what the author intended.)</li>
<li><span style="color: #ff0000;">If caught late it      may be too late to do anything about it. Major losses.</span></li>
</ul>
<p>Agile:</p>
<ul type="disc">
<li>Agile embraces change.      Frequent delivery ensures that the correct functionality is delivered and      any &#8220;mistakes&#8221; are detected early. The client is continually      evaluating the system and can change direction as required.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.newmedialabs.co.za/agile_development/how-using-an-agile-process-combats-the-common-project-pitfalls/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why We Do Unit Testing</title>
		<link>http://www.newmedialabs.co.za/agile_development/why-we-do-unit-testing</link>
		<comments>http://www.newmedialabs.co.za/agile_development/why-we-do-unit-testing#comments</comments>
		<pubDate>Thu, 06 Oct 2011 06:12:50 +0000</pubDate>
		<dc:creator>WillemO</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Test-driven development]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[Business logic layer]]></category>
		<category><![CDATA[Microsoft Visual Studio]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[Software testing]]></category>
		<category><![CDATA[Typemock]]></category>
		<category><![CDATA[Unit testing]]></category>

		<guid isPermaLink="false">http://www.newmedialabs.co.za/?p=1485</guid>
		<description><![CDATA[At New Media Labs we strive to be awesome. We want to deliver great solutions to our clients and have fun doing so. 
In the dynamic software development industry you need to experiment, adapt and find out how to be super-efficient without sacrificing quality. It&#8217;s a challenge.
In this series of blog posts I will describe [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-weight: normal;">At New Media Labs we strive to be awesome. We want to deliver great solutions to our clients and have fun doing so. </span></p>
<p>In the dynamic software development industry you need to experiment, adapt and find out how to be super-efficient without sacrificing quality. It&#8217;s a challenge.</p>
<p>In this series of blog posts I will describe in detail the things we do and why those things work so well.</p>
<h4><strong>Problem Nr1: Broken Code</strong></h4>
<p>Any reasonably sized software application (or website) is essentially a complicated machine composed of inter-related components. A large part of a software engineer&#8217;s job is to simplify that complexity by compartmentalizing  parts of the system and writing code that does what it&#8217;s supposed to but is also <strong>understandable</strong> . After all &#8211; how can someone maintain your code if they struggle to figure out what it does?</p>
<p>Yet, despite all our best efforts Errors still creep into the application. For example: I may innocently make a small change to how a financial calculation is done, and unwittingly break several other web pages that I did not realize would be influenced by my change. And the breakage may only be noticed several days later, making it very difficult to try and determine <strong>why</strong> the pages broke.</p>
<p>Unfortunately this is just the nature of software development: &#8220;Bugs Happen&#8221;.</p>
<p>Wouldn&#8217;t it be great if there was a way to protect against breaking code? And to detect bugs as soon as possible?</p>
<h4><strong>Problem Nr2: Being afraid to change code</strong></h4>
<p>The world is moving at a rapid pace. Businesses change and need to adapt to be able to take advantage of gaps in the market.</p>
<p>Nobody understands this better than a software developer who has had to <strong>change</strong> how a system worked even before they were done implementing it completely first time &#8217;round.</p>
<p style="text-align: center;"><a href="http://www.newmedialabs.co.za/wp-content/uploads/2011/10/why-we-unit-test1.jpg" rel="lightbox[1485]"><img class="aligncenter size-full wp-image-1486" title="why-we-unit-test1" src="http://www.newmedialabs.co.za/wp-content/uploads/2011/10/why-we-unit-test1.jpg" alt="Why we unit test" width="479" height="296" /></a></p>
<p>Unfortunately changing code can be scary, because your change may break existing features without you realizing it. So often developers try to make changes in a way that is unlikely to break something else by &#8220;sticking&#8221; the code on the side of the system where it interacts with as little other code as possible. This obviously results in a poorly integrated solution that is difficult to maintain. It results in bad code.</p>
<p>Wouldn&#8217;t it be great if existing code were easy to change? That developers could respond rapidly to business demands and fearlessly change the entire solution to better fit the business requirements?</p>
<h4><strong>The Solution: Unit Tests</strong></h4>
<p>We believe <strong>Automated Unit Tests</strong> help alleviate the problems mentioned above<strong>. </strong>Automated Unit Tests promote developer confidence and helps protect against bugs.</p>
<p>When we code a new feature, we write two types of code:</p>
<ol>
<li><strong>Feature Code</strong>: Code that is the feature requested by our customer.</li>
<li><strong>Automated Test Code</strong>: Code that tests the Feature code.</li>
</ol>
<p style="text-align: center;"><a href="http://www.newmedialabs.co.za/wp-content/uploads/2011/10/why-we-unit-test2.jpg" rel="lightbox[1485]"><img class="aligncenter size-full wp-image-1487" title="why-we-unit-test2" src="http://www.newmedialabs.co.za/wp-content/uploads/2011/10/why-we-unit-test2.jpg" alt="Why we unit test New Media Labs" width="432" height="199" /></a></p>
<p>A single website that we  build will be covered by hundreds of unit tests. We run these tests several times a day while we are busy extending or modifying the client&#8217;s code. We use a test runner developed by <a href="http://www.jetbrains.com/">JetBrains</a>. Its output looks as follows:</p>
<p style="text-align: center;"><a href="http://www.newmedialabs.co.za/wp-content/uploads/2011/10/why-we-unit-test31.jpg" rel="lightbox[1485]"><img class="aligncenter size-full wp-image-1489" title="why-we-unit-test3" src="http://www.newmedialabs.co.za/wp-content/uploads/2011/10/why-we-unit-test31.jpg" alt="unit testing test runner output" width="581" height="342" /></a></p>
<p>Have a look at the output of the test run above:</p>
<ul>
<li>For the client project we ran 534 tests. It took less than a minute to run all the tests.</li>
<li>Tests are nested underneath each other. Different sets of tests test different parts of the system.</li>
<li>1 test failed and the message at the bottom describes why. When a problem like this is detected it has to be fixed immediately.</li>
</ul>
<p>The important thing to note here is that we <strong>always</strong> run <strong>all</strong> the unit tests, as opposed to only testing the small part of the system that the programmer is busy changing. This means that the entire system is tested several times a day for defects.</p>
<h4><strong>What we test</strong></h4>
<p>A software solution is made up of layers where top layers depend on bottom layers. For example (this is simplified):</p>
<ul>
<li>The <strong>User Interface layer</strong> displays web pages to the user. It relies on&#8230;</li>
<li>The <strong>Business Logic layer</strong> that knows about business entities and how they behave. It relies on&#8230;</li>
<li>The <strong>Data Access</strong> <strong>layer</strong> that knows how to interact with a database to save and load data.</li>
</ul>
<p>One way to test would be to test the User Interface Layer and let it interact with the layers below it.</p>
<p style="text-align: center;"><a href="http://www.newmedialabs.co.za/wp-content/uploads/2011/10/why-we-unit-test4.jpg" rel="lightbox[1485]"><img class="aligncenter size-full wp-image-1491" title="why-we-unit-test4" src="http://www.newmedialabs.co.za/wp-content/uploads/2011/10/why-we-unit-test4.jpg" alt="New Media Labs Why We Unit Test" width="117" height="268" /></a></p>
<p style="text-align: center;">
<p>We do <strong>not</strong> test this way. Testing all the layers together leads to slow tests that are brittle and hard to configure. It also means that the causes of failures are difficult to track down because the bug could be anywhere in numerous layers.</p>
<p>We prefer to test layers and individual components <strong>in isolation</strong>. We do this by supplying fake implementations of the layers on which the code depends. For example:</p>
<p style="text-align: center;"><a href="http://www.newmedialabs.co.za/wp-content/uploads/2011/10/why-we-unit-test5.jpg" rel="lightbox[1485]"><img class="aligncenter size-full wp-image-1492" title="why-we-unit-test5" src="http://www.newmedialabs.co.za/wp-content/uploads/2011/10/why-we-unit-test5.jpg" alt="Unit testing New Media Labs" width="382" height="194" /></a></p>
<p>Testing layers individually means our tests execute quickly and errors are very easy to pinpoint. We prefer writing lots of little tests as opposed to a few big ones.</p>
<p>A single &#8220;Business Logic&#8221; test may do the following things:</p>
<ol>
<li>Configure &#8220;Fake Data Access&#8221; to return certain data when called &#8211; For example: return a fake Person when called.</li>
<li>Call a &#8220;Business Logic&#8221; operation &#8211; For example: calculate investment income for a Person.</li>
<li>Check result of the operation &#8211; was a calculation done correctly?<br />
3a.  Flag the test as &#8220;Failed&#8221; if the calculation did not yield the expected result.</li>
</ol>
<h4><strong>Conclusion</strong></h4>
<p>We believe in writing unit tests because:</p>
<ul>
<li>Unit tests are much faster than manual testing. The entire system can be tested several times a day.  (although we obviously still do lots of manual testing to pick up issues that unit tests can&#8217;t detect)</li>
<li>Unit tests give developers confidence to make changes and keep the system clean and easy to maintain.</li>
<li>Unit tests save time (it&#8217;s very time consuming to find and fix broken features once the code has gone &#8220;Live&#8221;).</li>
<li>Unit tests make everyone sleep better at night.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.newmedialabs.co.za/agile_development/why-we-do-unit-testing/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Creating the Adora CRM with Global Vision</title>
		<link>http://www.newmedialabs.co.za/silverlight/creating-the-adora-crm-with-global-vision</link>
		<comments>http://www.newmedialabs.co.za/silverlight/creating-the-adora-crm-with-global-vision#comments</comments>
		<pubDate>Tue, 01 Dec 2009 08:46:22 +0000</pubDate>
		<dc:creator>Richard Schroder</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Content Management Systems]]></category>
		<category><![CDATA[Custom Development]]></category>
		<category><![CDATA[New Media Labs]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://www.newmedialabs.co.za/?p=855</guid>
		<description><![CDATA[Adora is a marketing CMS platform that is currently being developed by Global Vision and is being built to replace their highly successful current offering, Eureka.  The driving force behind Adora is communication, not just marketing, through all effective communications channels.  Using Adora, marketers will be able to communicate effectively with consumers and be able [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Adora is a marketing CMS platform that is currently being developed by<a href="http://www.globalvision.co.za" class="broken_link"> Global Vision</a> and is being built to replace their highly successful current offering, Eureka.  The driving force behind Adora is <em>communication</em>, not just marketing, through all effective communications channels.  Using Adora, marketers will be able to communicate effectively with consumers and be able to maintain a complete picture of consumer relationships to their respective brands.</p>
<p class="MsoNormal" style="text-align: justify;">As <a href="http://www.globalvision.co.za" class="broken_link">Global Vision</a> made the decision to develop the Adora front-end using Microsoft Silverlight (at the time a very brave move – Silverlight 1.1 was VERY limited compared to Silverlight 3!), New Media Labs was asked to provide some assistance in the development process.  With full-time in-house User Experience (UX) designers and interface designers from Stonewall+, this project has really brought to light the power and flexibility of the Silverlight platform.</p>
<h2>Design of Adora</h2>
<p class="MsoNormal" style="text-align: justify;">The application is built along a classic Model-View-ViewModel (M-V-VM) architecture and utilises a custom-built framework for this that supports all the required elements.  We had a number of technical challenges to overcome along the way, mainly related to data storage and using the same Domain model on both the Client- and Server-side.  Most of these issues are posts in their own right and will be covered in the near future.</p>
<p class="MsoNormal" style="text-align: justify;">Adora consists of many layers, each with its own set of technologies.  Starting from the client and working our way to the backend:</p>
<ul style="text-align: justify;">
<li><strong>Client</strong><br />
Silverlight 3, utilising the Silverlight Toolkit and numerous custom-built controls.</li>
<li><strong>Services<br />
</strong>The<strong> </strong>application services are provided by WCF services that are hosted on the server.  These are communicated with using a custom-built data-contract serialiser.<strong> </strong></li>
<li><strong>Data storage<br />
</strong>Data storage is provided by SQL Server 2008 and data goes through many stages of filtering and matching to ensure maximum data integrity.</li>
<li><strong>Messaging<br />
</strong>A messaging and scheduling engine resides on the server side to handle all email and SMS communications with consumers.  Messages received are linked to the consumer’s profile.</li>
</ul>
<h2>The Development Process</h2>
<p class="MsoNormal" style="text-align: justify;">The goal is to deliver a product that is not only scalable, flexible and fast but is also pleasant to use with minimal or no user training.  With a team consisting of UX designers, developers, graphic designers and QA testers, we are continuously and iteratively tweaking the design.  Using an Agile approach has allowed us to make fast-paced design changes whilst ensuring that the end result not only looks good, feels good and performs well but also matches the expectations of the Product Owner.</p>
<p class="MsoNormal" style="text-align: justify;">We currently employ a mix of various established practices – test driven development, peer reviews, daily stand-ups and whiteboard sessions are some of the things that we do every day.</p>
<h3>Interface Design</h3>
<p class="MsoNormal" style="text-align: justify;">Adora’s interface borrows heavily from concepts used by Windows Explorer to allow users to work in a familiar environment.  For example, “folders” represent brands and “files” represent elements such as email lists, creatives or even communication schedules. </p>
<div id="attachment_854" class="wp-caption alignleft" style="width: 310px"><a href="http://www.newmedialabs.co.za/wp-content/uploads/2009/12/explorer.png" rel="lightbox[855]"><img class="size-medium wp-image-854 " title="Adora Explorer" src="http://www.newmedialabs.co.za/wp-content/uploads/2009/12/explorer-300x179.png" alt="Adora Explorer interface" width="300" height="179" /></a><p class="wp-caption-text">Adora Explorer interface</p></div>
<p style="text-align: justify;">Wireframe designs are created by our UX designers and the initial development work to implement functionality is done by the developers and testers.  Whilst this is taking place, the interface design is UAT-tested by the UX designers – the interface is then sent to Stonewall+ for “polishing” and styling.  Due to Silverlight’s dynamic binding model, it is simple for the developers to drop the finished interface on top of the functional elements built.</p>
<p class="MsoNormal" style="text-align: justify;">All work with consumer populations is graphical – that is, instead of reams of confusing numbers that may not appear to have any significant proportions or relationships, Adora presents interactive graphs.  A user with little or no SQL knowledge is able to build up complex queries very quickly with this system and it provides a “quick-glance” overview of the consumers that the user is currently communicating with. </p>
<div id="attachment_856" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.newmedialabs.co.za/wp-content/uploads/2009/12/list_builder_03_portlet_options.jpg" rel="lightbox[855]"><img class="size-medium wp-image-856" title="List Builder Interface" src="http://www.newmedialabs.co.za/wp-content/uploads/2009/12/list_builder_03_portlet_options-300x210.jpg" alt="list_builder_03_portlet_options" width="300" height="210" /></a><p class="wp-caption-text">Marketing List builder interface design</p></div>
<h3>Adora Query Language</h3>
<p class="MsoNormal" style="text-align: justify;">Central to Adora’s success is our own query language that we have developed: Adora Query Language, or AQL.  With a syntax that is similar to SQL, AQL allows developers to retrieve consumer related information using queries that are <em>business oriented</em>.  If that doesn’t excite you, how about this:</p>
<p class="MsoNormal" style="margin-left: 36pt;"><span style="font-family: &quot;Courier New&quot;;">SELECT firstname, lastname, age FROM brandname WHERE gender=’male’ AND age&gt;25</span></p>
<p class="MsoNormal" style="text-align: justify;">The result of this query is a list of consumers within the “brandhouse” brand that are male and over 25 years of age.  A complete subset of SQL is supported, including ORDER BY, GROUP BY, INTERSECT, UNION and many more.  On top of this, we have our own extensions to the language that allow us to apply pagination to data results or to even group data into ranges.  The result?  Our developers can focus on <em>working</em> with data, not on <em>retrieving</em> data.  It is envisioned that future versions of Adora will allow 3<sup>rd</sup> party vendors to create add-ins to the Adora system using AQL.</p>
<h3>What’s next?</h3>
<p class="MsoNormal" style="text-align: justify;">Still to come – details on the technical challenges faced and more screenshots!  Beta 1 is scheduled for release in January 2010. </p>
<div class="wp-caption aligncenter" style="width: 570px"><object width="560" height="340" data="http://www.youtube.com/v/1p4Tm25SmrY&amp;hl=en_GB&amp;fs=1&amp;" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/1p4Tm25SmrY&amp;hl=en_GB&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /></object><p class="wp-caption-text">An introduction to Adora</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.newmedialabs.co.za/silverlight/creating-the-adora-crm-with-global-vision/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Media Labs to build Online Auction System</title>
		<link>http://www.newmedialabs.co.za/software_architecture/online-auction-system</link>
		<comments>http://www.newmedialabs.co.za/software_architecture/online-auction-system#comments</comments>
		<pubDate>Tue, 24 Feb 2009 10:36:38 +0000</pubDate>
		<dc:creator>Paul Cartmel</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Custom Development]]></category>
		<category><![CDATA[New Media Labs]]></category>
		<category><![CDATA[SCRUM]]></category>
		<category><![CDATA[Software Architecture]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[auction]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[system]]></category>

		<guid isPermaLink="false">http://www.welove.co.za/?p=163</guid>
		<description><![CDATA[New Media Labs has commenced development of an Online Auction system for an existing client. Originally an eBay mashup was considered but the business case to build an in house auction system was stronger than the case for a mashup. The notification systems, rules engine and content management system to load the auction items is [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">New Media Labs has commenced development of an Online Auction system for an existing client. Originally an eBay mashup was considered but the business case to build an in house auction system was stronger than the case for a mashup. The notification systems, rules engine and content management system to load the auction items is going to make this a fun development exercise.</p>
<p style="text-align: justify;">Repeat orders from existing clients, proving once again that NML is more than a supplier they are a partner that delivers.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.newmedialabs.co.za/software_architecture/online-auction-system/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Signoff of the largest Silverlight implementation in Africa.</title>
		<link>http://www.newmedialabs.co.za/rich_internet_applications/signoff-of-the-largest-silverlight-implementation-in-africa</link>
		<comments>http://www.newmedialabs.co.za/rich_internet_applications/signoff-of-the-largest-silverlight-implementation-in-africa#comments</comments>
		<pubDate>Thu, 15 Jan 2009 11:09:40 +0000</pubDate>
		<dc:creator>Paul Cartmel</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Content Management Systems]]></category>
		<category><![CDATA[Custom Development]]></category>
		<category><![CDATA[New Media Labs]]></category>
		<category><![CDATA[Niche Social Networks]]></category>
		<category><![CDATA[Rich Internet Applications]]></category>

		<guid isPermaLink="false">http://www.welove.co.za/?p=107</guid>
		<description><![CDATA[New Media Labs has received signoff of development and testing of custom Niche Social Network for a leading international private bank. The development was completed in four, three week SCRUM sprints with a development team of four. Given the scale of this project, and the technical complexity of tieing into the banking backend this was [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">New Media Labs has received signoff of development and testing of custom Niche Social Network for a leading international private bank. The development was completed in four, three week SCRUM sprints with a development team of four. Given the scale of this project, and the technical complexity of tieing into the banking backend this was an amazing achievement.</p>
<p style="text-align: justify;">Microsoft is now working in collaboration with New Media Labs to generate a case study out of this project. The project makes a good case study for Microsoft’s new Rich Internet Application technology known as Silverlight. This project is being billed as the largest Silverlight implementation in Africa.</p>
<p style="text-align: justify;">Domain Driven Design was utilised extensively to model the specific banking domain. The Service Layer Data Contract and Service Contract models were modeled using the web service software factory.</p>
<p style="text-align: justify;">The site has now moved into user acceptance phase and should be launched shortly.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.newmedialabs.co.za/rich_internet_applications/signoff-of-the-largest-silverlight-implementation-in-africa/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Media Labs wins pitch to develop a new content management system for Nedgroup Investments</title>
		<link>http://www.newmedialabs.co.za/rich_internet_applications/new-media-labs-wins-pitch-to-develop-a-new-content-management-system-for-nedgroup-investments</link>
		<comments>http://www.newmedialabs.co.za/rich_internet_applications/new-media-labs-wins-pitch-to-develop-a-new-content-management-system-for-nedgroup-investments#comments</comments>
		<pubDate>Wed, 10 Dec 2008 11:14:23 +0000</pubDate>
		<dc:creator>Paul Cartmel</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Content Management Systems]]></category>
		<category><![CDATA[Custom Development]]></category>
		<category><![CDATA[New Media Labs]]></category>
		<category><![CDATA[Niche Social Networks]]></category>
		<category><![CDATA[Rich Internet Applications]]></category>
		<category><![CDATA[SCRUM]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.welove.co.za/?p=110</guid>
		<description><![CDATA[New Media Labs in collaboration with Global Vision and Stonewall+ won the bid to redevelop the Nedgroup Investments Content Management System. The creative pitch from Stonewall+ was excellent, this coupled with our technology pitch made the decision to go Stonewall+/NML/GV a no brainer. NML will be doing the dev, GV will be providing Business Analysis, [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">New Media Labs in collaboration with Global Vision and Stonewall+ won the bid to redevelop the Nedgroup Investments Content Management System. The creative pitch from Stonewall+ was excellent, this coupled with our technology pitch made the decision to go Stonewall+/NML/GV a no brainer. NML will be doing the dev, GV will be providing Business Analysis, Project Management and Testing services.</p>
<p style="text-align: justify;">Our base layer CMS was used for the development. Often when you tell clients you own a CMS they are skeptical – “why would you want to own or build a CMS when there are so many out there”. The reality is, a site like this is not only managing textual content it is managing the business content too. In other words you have to manage the data for each investment fund, the allocations of the fund and price performance over time. These are the kinds of systems NML has become experts in developing.</p>
<p style="text-align: justify;">NML do not claim to own a packaged CMS or CMS framework. Packaged and Framework are words we’ve become skeptical of. We have a base layer of CMS code , that has been designed with integration in mind, to tie the company’s business model into the content management system. Our CMS allows for the usual features such as adding pages, changing navigation and publishing workflow.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.newmedialabs.co.za/rich_internet_applications/new-media-labs-wins-pitch-to-develop-a-new-content-management-system-for-nedgroup-investments/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Media Labs win pitch to Develop the Niche Social Network for a South African Bank</title>
		<link>http://www.newmedialabs.co.za/silverlight/new-media-labs-in-pitch-to-develop-the-niche-social-network-for-a-south-african-bank</link>
		<comments>http://www.newmedialabs.co.za/silverlight/new-media-labs-in-pitch-to-develop-the-niche-social-network-for-a-south-african-bank#comments</comments>
		<pubDate>Thu, 14 Aug 2008 10:50:10 +0000</pubDate>
		<dc:creator>Paul Cartmel</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Content Management Systems]]></category>
		<category><![CDATA[New Media Labs]]></category>
		<category><![CDATA[Niche Social Networks]]></category>
		<category><![CDATA[Rich Internet Applications]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Software Architecture]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.welove.co.za/?p=101</guid>
		<description><![CDATA[New Media Labs has won a pitch to develop a large niche social network for a South African bank. The project will be developed in conjunction with Stonewall+. Stonewall+ will develop the front end flat designs and NML will convert these flats into Silverlight XAML. Silverlight Rich Internet Application presentation layer was a prerequisite of [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">New Media Labs has won a pitch to develop a large niche social network for a South African bank. The project will be developed in conjunction with <a href="http://www.stonewall.co.za/">Stonewall+</a>. <a href="http://www.stonewall.co.za">Stonewall+</a> will develop the front end flat designs and NML will convert these flats into Silverlight XAML. Silverlight Rich Internet Application presentation layer was a prerequisite of the bank.</p>
<p style="text-align: justify;">The social elements are tied into the business model of this division of the bank, making this a complex development and integration exercise.</p>
<p style="text-align: justify;">This will be NML’s second large Silverlight implementation and is being touted by Microsoft as the largest implementation in the EMEA region. Even thought this project is in the early stages it is being looked at closely as a case study by Microsoft.</p>
<p style="text-align: justify;">Given the number of databases and stored procedures the system has to tie into Microsoft Repository Factory was the natural choice for Middle Tier. The service layer was developed using the Web Service Software Factory and the WCF .NET3.5 implementation technology.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.newmedialabs.co.za/silverlight/new-media-labs-in-pitch-to-develop-the-niche-social-network-for-a-south-african-bank/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Brandhouse Mixology Silverlight Enterprise Web2.0 Portal</title>
		<link>http://www.newmedialabs.co.za/mapping/brandhouse-mixology-silverlight-enterprise-web20-portal</link>
		<comments>http://www.newmedialabs.co.za/mapping/brandhouse-mixology-silverlight-enterprise-web20-portal#comments</comments>
		<pubDate>Sun, 27 Jul 2008 13:12:14 +0000</pubDate>
		<dc:creator>Paul Cartmel</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Content Management Systems]]></category>
		<category><![CDATA[Mapping]]></category>
		<category><![CDATA[Mashups]]></category>
		<category><![CDATA[New Media Labs]]></category>
		<category><![CDATA[Niche Social Networks]]></category>
		<category><![CDATA[Rich Internet Applications]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Software Architecture]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[enterprise2.0]]></category>
		<category><![CDATA[mashup]]></category>
		<category><![CDATA[media uploader]]></category>
		<category><![CDATA[member comments]]></category>
		<category><![CDATA[member rating]]></category>
		<category><![CDATA[member voting]]></category>
		<category><![CDATA[members lists]]></category>
		<category><![CDATA[mixology]]></category>
		<category><![CDATA[niche social network]]></category>
		<category><![CDATA[tag media]]></category>
		<category><![CDATA[yahoo maps]]></category>

		<guid isPermaLink="false">http://www.welove.co.za/?p=48</guid>
		<description><![CDATA[New Media Labs develops the first silverlight Enterprise Web2.0 portal in South Africa for the brandhouse mixology program. Mixology will use this social networking website to link Mixology members together. And in doing so promote bar staffing as a respectable career. The mixologist will be able to take video footage of themselves &#8220;Flaring&#8221; or mixing [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">New Media Labs develops the first silverlight Enterprise Web2.0 portal in South Africa for the brandhouse mixology program. Mixology will use this social networking website to link Mixology members together. And in doing so promote bar staffing as a respectable career. The mixologist will be able to take video footage of themselves &#8220;Flaring&#8221; or mixing cocktails and upload them to a mixology silverlight video server. Maps will provide locations of each bar with a Mixologist bar staff member, along with links to their profiles or videos they have uploaded. Photographs taken at events will be uploaded to a photo profile for Mixology and only viewable by Mixology members.</p>
<p style="text-align: justify;">The video content was originally going to be provided by youtube. But due to the complex authorisation workflow process brandhouse required, we decided to build our own video encoding and streaming service. The videos were then encoded using the Silverlight2.0 Encoder (apparently the first production purchase of this software in South Africa).</p>
<p style="text-align: justify;">This was a very fun and exciting project. The application has come out of the testing phase so watch this space&#8230;</p>
<dl style="text-align: justify;"></dl>
<div style="text-align: justify;">

<a href='http://www.newmedialabs.co.za/mapping/brandhouse-mixology-silverlight-enterprise-web20-portal/attachment/e5li_media_manager' title='Media Manager'><img width="150" height="150" src="http://www.newmedialabs.co.za/wp-content/uploads/2009/07/e5li_media_manager-150x150.jpg" class="attachment-thumbnail" alt="upload and tag images and video" title="Media Manager" /></a>
<a href='http://www.newmedialabs.co.za/mapping/brandhouse-mixology-silverlight-enterprise-web20-portal/attachment/a1bars-mashup' title='All bars are geotagged on Yahoo Maps'><img width="150" height="150" src="http://www.newmedialabs.co.za/wp-content/uploads/2009/07/a1bars-mashup-150x150.png" class="attachment-thumbnail" alt="find your bar using the maps mashup" title="All bars are geotagged on Yahoo Maps" /></a>
<a href='http://www.newmedialabs.co.za/mapping/brandhouse-mixology-silverlight-enterprise-web20-portal/attachment/b2li_bars_step1' title='Drilling into bars in Cape Town'><img width="150" height="150" src="http://www.newmedialabs.co.za/wp-content/uploads/2009/07/b2li_bars_step1-150x150.jpg" class="attachment-thumbnail" alt="Popups show you the name of the bar and bar details." title="Drilling into bars in Cape Town" /></a>
<a href='http://www.newmedialabs.co.za/mapping/brandhouse-mixology-silverlight-enterprise-web20-portal/attachment/f6li_meetteam__industry_2' title='Meet the Team'><img width="150" height="150" src="http://www.newmedialabs.co.za/wp-content/uploads/2009/07/f6li_meetteam__industry_2-150x150.jpg" class="attachment-thumbnail" alt="Enumerate through the members of the team" title="Meet the Team" /></a>
<a href='http://www.newmedialabs.co.za/mapping/brandhouse-mixology-silverlight-enterprise-web20-portal/attachment/d4li_events' title='Events, with photos, videos and members who attended.'><img width="150" height="150" src="http://www.newmedialabs.co.za/wp-content/uploads/2009/07/d4li_events-150x150.jpg" class="attachment-thumbnail" alt="Events, with photos, videos and members who attended." title="Events, with photos, videos and members who attended." /></a>
<a href='http://www.newmedialabs.co.za/mapping/brandhouse-mixology-silverlight-enterprise-web20-portal/attachment/technologystack' title='Mixology Logical Architecture'><img width="150" height="150" src="http://www.newmedialabs.co.za/wp-content/uploads/2009/07/technologystack-150x150.png" class="attachment-thumbnail" alt="High level logical representation of the technology architecture." title="Mixology Logical Architecture" /></a>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.newmedialabs.co.za/mapping/brandhouse-mixology-silverlight-enterprise-web20-portal/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NML commences work on Adora &#8211; The Global Vision marketing automation CRM application.</title>
		<link>http://www.newmedialabs.co.za/silverlight/nml-commences-work-on-adora-the-global-vision-marketing-automation-crm-application</link>
		<comments>http://www.newmedialabs.co.za/silverlight/nml-commences-work-on-adora-the-global-vision-marketing-automation-crm-application#comments</comments>
		<pubDate>Fri, 01 Feb 2008 08:40:40 +0000</pubDate>
		<dc:creator>Paul Cartmel</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Custom Development]]></category>
		<category><![CDATA[New Media Labs]]></category>
		<category><![CDATA[Rich Internet Applications]]></category>
		<category><![CDATA[SCRUM]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Software Architecture]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.welove.co.za/?p=85</guid>
		<description><![CDATA[[Edit April 2009] The Adora product has recieved significant investment from Hasso Plattner Ventures Africa. The product is turning out to be the global enterprise CRM/Marketing Automation engine we set out to make it. [End Edit]
New Media Labs will provide architecture and development expertise on Global Vision’s Adora product. Adora is a marketing automation and [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">[Edit April 2009] The Adora product has recieved significant investment from Hasso Plattner Ventures Africa. The product is turning out to be the global enterprise CRM/Marketing Automation engine we set out to make it. [End Edit]</p>
<p style="text-align: justify;">New Media Labs will provide architecture and development expertise on Global Vision’s Adora product. Adora is a marketing automation and CRM tool that will supercede the product built for Diageo (the consumer goods companies with portfolio of world-famous drinks brands).</p>
<p style="text-align: justify;">The application will be built as a Rich Internet Application which will utilize the Silverlight presentation layer technology developed by Microsoft.</p>
<p style="text-align: justify;">Adora is a marketing automation software providing:<br />
1) Multichannel Campaign Management (Distribution)<br />
2) Enterprise Feedback Management (Collection)<br />
3) Business Intelligence (Analysis)</p>
<p style="text-align: justify;">Adora’s goals are:<br />
To become the leading marketing technology provider to CPG / FMCG businesses globally and to become a recognized leader in the marketing technology space as defined by number and caliber of customers, global footprint, industry awards, and industry analyst opinion.</p>
<p style="text-align: justify;">1) Short term: make ADORA one of the top 5 Marketing software products in the Business-to-Consumer space worldwide within the next 3 years.</p>
<p style="text-align: justify;">2) Medium term: make ADORA the accepted leading software product for businesses wishing to extend the marketing capabilities of MS CRM within the next 5 years.</p>
<p style="text-align: justify;">3) Long term: make ADORA one of the top 5 marketing software products in the market worldwide in the next 8 years.
<a href='http://www.newmedialabs.co.za/silverlight/nml-commences-work-on-adora-the-global-vision-marketing-automation-crm-application/attachment/adora360vieofcontact' title='Adora will show a 360 degree view of the Contact'><img width="150" height="150" src="http://www.newmedialabs.co.za/wp-content/uploads/2009/07/adora360vieofcontact-150x150.png" class="attachment-thumbnail" alt="Adora will show a 360 degree view of the Contact" title="Adora will show a 360 degree view of the Contact" /></a>
<a href='http://www.newmedialabs.co.za/silverlight/nml-commences-work-on-adora-the-global-vision-marketing-automation-crm-application/attachment/adora360effective' title='Adora will illustrate a 360 degree view of effectiveness'><img width="150" height="150" src="http://www.newmedialabs.co.za/wp-content/uploads/2009/07/adora360effective-150x150.png" class="attachment-thumbnail" alt="Adora will illustrate a 360 degree view of effectiveness" title="Adora will illustrate a 360 degree view of effectiveness" /></a>
<a href='http://www.newmedialabs.co.za/silverlight/nml-commences-work-on-adora-the-global-vision-marketing-automation-crm-application/attachment/adora360singlecommunicationplatform' title='Adora will be a single communication platform'><img width="150" height="150" src="http://www.newmedialabs.co.za/wp-content/uploads/2009/07/adora360singlecommunicationplatform-150x150.png" class="attachment-thumbnail" alt="Adora will be a single communication platform" title="Adora will be a single communication platform" /></a>
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.newmedialabs.co.za/silverlight/nml-commences-work-on-adora-the-global-vision-marketing-automation-crm-application/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

