<?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>Welcome to Manjits Blog</title>
	<atom:link href="http://www.msjtech.net/feed" rel="self" type="application/rss+xml" />
	<link>http://www.msjtech.net</link>
	<description>Manjit&#039;s Musings On Business and Technology</description>
	<lastBuildDate>Tue, 31 Jan 2012 14:45:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>My thoughts on Grails and Groovy</title>
		<link>http://www.msjtech.net/groovy-and-grail/129/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=groovy-and-grail</link>
		<comments>http://www.msjtech.net/groovy-and-grail/129/#comments</comments>
		<pubDate>Tue, 31 Jan 2012 14:45:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[grails]]></category>
		<category><![CDATA[groovy]]></category>
		<category><![CDATA[Hibernate]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[Spring]]></category>
		<category><![CDATA[weblow]]></category>

		<guid isPermaLink="false">http://www.msjtech.net/?p=129</guid>
		<description><![CDATA[Getting Started with Grails I’ve been using Grails for developing web applications for a while and in this post I’m going to give an overview of Grails and provide some of the benefits and disadvantages of I&#8217;ve come across when using it. Grails overview Grails is a web framework based on Groovy and Java which [...]]]></description>
			<content:encoded><![CDATA[<div class="mceTemp">
<dl id="attachment_132" class="wp-caption alignright" style="width: 279px;">
<dt class="wp-caption-dt"><a href="http://www.msjtech.net/wp-content/uploads/2012/01/grails.png"><img class=" wp-image-132" title="Grails Tutorial" src="http://www.msjtech.net/wp-content/uploads/2012/01/grails-300x90.png" alt="Grails Logo" width="269" height="88" /></a></dt>
<dd class="wp-caption-dd"></dd>
</dl>
</div>
<h2>Getting Started with Grails</h2>
<p>I’ve been using Grails for developing web applications for a while and in this post I’m going to give an overview of Grails and provide some of the benefits and disadvantages of I&#8217;ve come across when using it.</p>
<h2>Grails overview</h2>
<p>Grails is a web framework based on Groovy and Java which can be deployed onto web servers such as Tomcat or Jetty.</p>
<p>Grails follows the convention over configuration concept that Ruby on Rails has made famous. It provides a command line interface and code scaffolding that allows you to create a full application quickly.</p>
<h3>Groovy</h3>
<p>If you haven’t used Groovy before the best way to describe it as being a superset of Java; most valid Java constructs are also valid Groovy constructs. Groovy has a number advanced features that complement the capabilities of Java, the syntax is more concise, you can use closures, and there is native support for lists and maps</p>
<h2>Grails benefits</h2>
<ul>
<li>The primary benefit is that Grails is a highly productive framework; the emphasis is on being able to automatically create artefacts quickly from the command prompt.</li>
</ul>
<p style="padding-left: 30px;">For example <em>grails create-controller</em> creates a new controller and automatically does all of the plumbing related to that controller. Even more powerful is the grails generate-all, which creates all the artefacts and interfaces for performing CRUD (Create/Read/Update/Delete) for the domain specified.</p>
<ul>
<li>Grails also underpinned by solid frameworks – it uses frameworks such as Spring, Hibernate (uses GORM which is based on Hibernate) and Sitemesh which are very mature and established frameworks.</li>
</ul>
<ul>
<li>Another important benefit is that Spring Webflow is also built in to the framework – which helps make complex workflows a lot easier to handle.</li>
</ul>
<ul>
<li>Validation is straightforward in Grails; the rules are defined within a static code block within the domain class.</li>
</ul>
<ul>
<li>There is also a very rich plugin ecosystem with Grails – it was built with plug-ability in mind and there is a large set of useful plugins that have been created by the grails community. It is also very easy to use these plugins within your own application using the<em> install-plugin</em> command.</li>
</ul>
<h2>Grails Disadvantages</h2>
<ul>
<li>There are not many real issues with using Grails, however one of the main things to bear in mind is that there is a learning curve associated with using Groovy, so that may make it more difficult to recommend to your colleagues.</li>
</ul>
<ul>
<li>There is also slightly less IDE support for groovy &#8211; especially in comparison with developing a vanilla Java application using them.</li>
</ul>
<ul>
<li>A grails application can also be a bit of a resource hog &#8211; which can probably be attributed to all of the heavyweight frameworks that Grails is made up of.</li>
</ul>
<ul>
<li>One of the problems using a dynamic language such as Groovy is that some errors that are normally caught at compile time with normal java will be not be caught until run time.</li>
</ul>
<h2>Grails in Action</h2>
<p>My favourite book on grails is <a title="Grails in Action" href="http://amzn.to/yx7bMF">Grails in action</a>. It is very well written and the authors seem to have a genuine interest in development.</p>
<h2>Final thoughts on Grails</h2>
<p>I have enjoyed using grails on my last few projects – there was a learning curve at the beginning but the rewards more than make up for that. I will be looking to using it on future projects and would definitely recommend it to other developers.</p>
<p><strong> </strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.msjtech.net/groovy-and-grail/129//feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gaining a Competitive Advantage in Business</title>
		<link>http://www.msjtech.net/gain-competitive-advantage/45/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=gain-competitive-advantage</link>
		<comments>http://www.msjtech.net/gain-competitive-advantage/45/#comments</comments>
		<pubDate>Sun, 25 Sep 2011 22:03:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[competition]]></category>
		<category><![CDATA[porter]]></category>
		<category><![CDATA[strategy]]></category>

		<guid isPermaLink="false">http://www.msjtech.net/?p=45</guid>
		<description><![CDATA[If you have a business you probably spend a lot of time thinking about how to gain an edge over your competitors. Gaining a competitive advantage over your rivals can be highly lucrative and help secure the future of your business. In this post I will discuss some useful concepts around competitive advantage that have [...]]]></description>
			<content:encoded><![CDATA[<p>If you have a business you probably spend a lot of time thinking about how to gain an edge over your competitors. Gaining a competitive advantage over your rivals can be highly lucrative and help secure the future of your business.</p>
<p>In this post I will discuss some useful concepts around competitive advantage that have helped me find kick start new ideas in the past.</p>
<h2>What is Competitive Advantage</h2>
<p>As outlined in the diagram below, Michael Porter has a very popular theory in which he outlines three different approaches that can be used to gain competitive advantage.</p>
<h3><a href="http://www.msjtech.net/wp-content/uploads/2011/09/competitive-advantage.gif"><img class="size-full wp-image-50 aligncenter" title="competitive-advantage" src="http://www.msjtech.net/wp-content/uploads/2011/09/competitive-advantage.gif" alt="Competitive Advantage Diagram" width="300" height="300" /></a></h3>
<h3>Cost Leadership</h3>
<p>The primary focus is to create the product at a lower cost than the competitors. This can be achieved through methods such as increasing efficiency or negotiating better contracts with your suppliers.</p>
<p>This advantage would allow you sell the product at a lower price, in the way that budget airlines do, or you could simply retain the original price and make a better margin.</p>
<h3>Differentiation</h3>
<p>Using differentiation you develop a product that offers the customer something that they value which unique or different that they can’t get from anywhere else. You need to have access to a lot of Innovation and Creativity within your business if you are to succeed with this approach.</p>
<p>The rewards are high as you are able to charge a higher price for your product. Apple and Dyson are good examples of companies that have used differentiation.</p>
<h3> Focus Or Niche</h3>
<p>With Focus you design your product in such a way that it appeals to a smaller, more focussed niche than you otherwise would. Within that segment you would either proceed with a differentiation strategy or a cost leadership strategy. This approach is favoured by smaller companies that cannot afford to compete against larger ones for a broader market.</p>
<p>An example would be a company such as Waitrose who target a wealthier demographic of shopper in comparison with someone like Tesco.</p>
<p>The diagram below helps to illustrate the different strategies available, and the way the Focus strategy can be used with Cost Leadership and Differentiation.</p>
<h3> Final Thoughts on Competitive Advantage</h3>
<p>While porter’s strategies have been very popular it is worth pointing out that there are a few shortcomings. Porter says that you need to pick either a cost based or differentiation strategy and not be stuck in the middle. However I think that that a lot of businesses are both different and low cost, it seems counterintuitive to just focus on one of these things and ignore the other.</p>
<p>I believe these strategies are a good starting point when looking for ways to improve your business, or are considering the launch of a new product.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.msjtech.net/gain-competitive-advantage/45//feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>What is Continuous Improvement and How can it Help your Business</title>
		<link>http://www.msjtech.net/what-is-continuous-improvement/35/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=what-is-continuous-improvement</link>
		<comments>http://www.msjtech.net/what-is-continuous-improvement/35/#comments</comments>
		<pubDate>Sat, 24 Sep 2011 15:46:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[employees]]></category>
		<category><![CDATA[Improvement]]></category>
		<category><![CDATA[Kaizen]]></category>
		<category><![CDATA[Process]]></category>

		<guid isPermaLink="false">http://www.msjtech.net/?p=35</guid>
		<description><![CDATA[Imagine if you had a silver bullet that helped you improve your business and keep one step ahead of your competition without spending a lot of money? All it takes is a simple process known as Continuous Improvement. What is Continuous Improvement? Continuous Improvement is the process of looking at all aspects of your business [...]]]></description>
			<content:encoded><![CDATA[<p>Imagine if you had a silver bullet that helped you improve your business and keep one step ahead of your competition without spending a lot of money? All it takes is a simple process known as Continuous Improvement.</p>
<h2><strong>What is Continuous Improvement?</strong></h2>
<p>Continuous Improvement is the process of looking at all aspects of your business and looking for ways to make it better and making small changes on the basis of these reviews to improve it incrementally.</p>
<h2><strong>How to implement Continuous Improvement</strong><strong><a href="http://www.msjtech.net/wp-content/uploads/2011/09/continuous-improvement.jpg"><img class="size-full wp-image-36 alignright" title="continuous improvement" src="http://www.msjtech.net/wp-content/uploads/2011/09/continuous-improvement.jpg" alt="Continuour Improvement Cycle" width="196" height="196" /></a></strong></h2>
<ul>
<li>You need a clear way of measuring your curre<strong></strong>nt performance. Without a clear idea of it there will be no way of knowing whether the changes you make are having any effect. From my experience measuring performance also as the the knock on benefit of focus<strong></strong>sing employees on how to improve performance.</li>
</ul>
<ul>
<li>Listen to your customers, your customers can often be your harshest critic but also one of your greatest assets. They will often provide helpful (and sometimes unhelpful) suggestions on what you could do to make their lives a little bit easier or provide them with a better service.</li>
</ul>
<ul>
<li>Designate a time on a weekly or monthly basis for a retrospective when the improvements and measurements can be discussed, this will help keep the process moving forward.</li>
</ul>
<ul>
<li>Reward success; the process has to be encouraged from ground up from the shop floor to the directors so that the whole business is moving together as a whole and people are not just focussed on improving one small thing.</li>
</ul>
<h2><strong>Benefits</strong></h2>
<ul>
<li>The key benefit of this process is that it w<strong></strong>ill keep the business competitive and keep it moving forward. You may also inadvertently discover a small change which provides a big benefit.</li>
</ul>
<ul>
<li>Make your company more agile and make it easier to respond to change.</li>
</ul>
<ul>
<li>Will reduce inefficiencies, help reduce waste and keep costs down.</li>
</ul>
<ul>
<li>Fosters team work and provides employees with a way of taking ownership and seeing their changes benefit the company.</li>
</ul>
<ul>
<li>I think that every successful business has an aspect of continual improvement incorporated within it; you have to keep moving forward and be as competitive as possible</li>
</ul>
<h3><strong>Kaizen</strong></h3>
<p>Kaizen is a popular Japanese framework to implement a type of continuous improvement. More information can be found at: <a title="Kaizen" href="http://en.wikipedia.org/wiki/Kaizen" target="_blank">http://en.wikipedia.org/wiki/Kaizen</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.msjtech.net/what-is-continuous-improvement/35//feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How to be a more Employable Java Programmer</title>
		<link>http://www.msjtech.net/how-to-be-a-more-employable-java-programmer/27/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-to-be-a-more-employable-java-programmer</link>
		<comments>http://www.msjtech.net/how-to-be-a-more-employable-java-programmer/27/#comments</comments>
		<pubDate>Fri, 23 Sep 2011 01:01:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jobs]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.msjtech.net/?p=27</guid>
		<description><![CDATA[Introduction With the large number of redundancies there are more people looking for jobs and less jobs actually available. In such competitive times you need to try harder to stand out against the competition. Having been in this situation myself a few times over the years, I managed to overcome the odds and not only get a [...]]]></description>
			<content:encoded><![CDATA[<p><strong><a href="http://www.msjtech.net/wp-content/uploads/2011/09/employableDeveloper.jpg"><img class="alignleft size-full wp-image-28" title="employableDeveloper" src="http://www.msjtech.net/wp-content/uploads/2011/09/employableDeveloper.jpg" alt="" width="263" height="197" /></a>Introduction</strong><br />
With the large number of redundancies there are more people looking for jobs and less jobs actually available. In such competitive times you need to try harder to stand out against the competition. Having been in this situation myself a few times over the years, I managed to overcome the odds and not only get a job, but also have the ability to choose between a selection of roles. Below are some of my ideas on how to improve your chances of landing that dream job.</p>
<p><strong>Prerequisites</strong><br />
Before I start I think it&#8217;s worth stating that a real interest in programming is a sort of a prerequisite. A lot of my advice will take a considerable amount of time, which will be much easier to handle if you have a genuine interest in this area.</p>
<p><strong>1. Best Practices</strong></p>
<p>Learn about Design Patterns and development best practices. Whatever problem you are solving, the chances are that someone out there has already solved it in a much more elegant way than you could. Learning about best practices can help you avoid making common mistakes and improve your standard of coding in general.</p>
<p><strong>2. Finding Information</strong><br />
Learn how to use Google/resources properly. You might laugh at this one, but knowing the best way of searching on Google for help with a problem or for some extra information can be invaluable. Also don&#8217;t be afraid to post to developer forums / mailing lists, or even email the people in charge of a project for some help.</p>
<p><strong>3. Accreditation</strong><br />
Gain a widely recognised accreditation. My personal recommendation would be The Sun Certified Java Programmer program &#8211; it would help give potential employees some reassurance into what your current standard of programming is.</p>
<p><strong>4. Go Agile</strong><br />
Learn about Agile software development &#8211; I believe that an Agile approach is the best way to produce software and even if you don&#8217;t end up using it, you could incorporate some of the best practices into your role and impress your new boss.</p>
<p><strong>5. Join a Project</strong><br />
Join and contribute to an open source project &#8211; preferably something that has a fair amount of developer activity and something that you find interesting and maybe even beneficial to your future options, some suggestions would be Hibernate, The Spring Framework, Selenium.</p>
<p><strong>6. Write a blog</strong><br />
I think this would score a lot of brownie points with potential employees. Starting a blog has a number of other benefits also, such as building relationships with other people in the industry and increasing your level of visibility.</p>
<p><strong>7. Learn Learn Learn</strong></p>
<p>Keep up to date with the latest development related news and learn and experiment with new technologies. See my links section for more places to find information.<br />
<strong>8. Improve your C.V </strong><br />
Your C.V is effectively your sales pitch to your potential employers, spend time on making it as clear, concise. Also ensure that your strengths and full range of technical skills are adequately highlighted.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.msjtech.net/how-to-be-a-more-employable-java-programmer/27//feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Six Agile best practices everyone can use</title>
		<link>http://www.msjtech.net/agile-best-practices-everyone-can-use/19/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=agile-best-practices-everyone-can-use</link>
		<comments>http://www.msjtech.net/agile-best-practices-everyone-can-use/19/#comments</comments>
		<pubDate>Thu, 22 Sep 2011 01:42:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.msjtech.net/?p=19</guid>
		<description><![CDATA[Agile development has taken off in a big way and there are many notable companies that use it. However there are still those that are stuck in waterfall mode and find it hard to make the transition to Agile development. Here are some of the best Agile practices that I&#8217;ve found can be incorporated into [...]]]></description>
			<content:encoded><![CDATA[<p>Agile development has taken off in a big way and there are many notable companies that use it. However there are still those that are stuck in waterfall mode and find it hard to make the transition to Agile development. Here are some of the best Agile practices that I&#8217;ve found can be incorporated into any team and provide immediate benefits.</p>
<p><strong>Make it easy to commit code</strong><a href="http://www.msjtech.net/wp-content/uploads/2011/09/agile.jpg"><img class="alignright size-full wp-image-31" title="agile" src="http://www.msjtech.net/wp-content/uploads/2011/09/agile.jpg" alt="" width="198" height="265" /></a></p>
<p>Make it easy for developers to commit code and try and commit regularly so that your code stays code stays in check. I think merging code that has been worked on for long periods of time is one of the most error prone and time consuming tasks a developer can be faced. The ideal solution is to have your version control system integrated into your IDE, tools such as Eclipse and Subversion make this quite easy to achieve.</p>
<p>&nbsp;</p>
<p><strong>Short build cycle</strong><br />
I&#8217;ve come across numerous companies where they are so focused on other issues that they totally miss this one. Long build cycles mean that a surprisingly large amount of time is wasted when the developer has made a small change and is waiting his code to compile. It can also mean that the developer loses momentum and focus, which in turn means that even more time is lost.<br />
In addition to this you may want to look at JavaRebel &#8211; which provides a Ruby on Rails like functionality to Java and allows you to make changes to Java classes on the fly.</p>
<p>&nbsp;</p>
<p><strong>Test Driven development</strong> -<br />
Unit testing has become very popular and is probably one of the easiest things to sell to your boss. Adding unit tests to your code provides a number of benefits; it helps find development problems early on, and provides developers with more confidence to refactor code, which in turn leads to better, more robust code.</p>
<p><strong>Automated build process</strong>,<br />
There are a number of tools that will allow you to automate your build process CruiseControl and Hudson are two of the most popular ones. Build automation gives you immediate feedback on the health of your project, and helps ensure that no bugs or compilation errors are introduced into the build.</p>
<p><strong>Avoid creating silo&#8217;s of knowledge  </strong>-<br />
Try and ensure that knowledge of all parts of your system is spread evenly between your developers. This stops development grinding to a halt when a particular developer is ill or on holiday, it also helps ensure your code is of a higher quality as more people will have worked on a particular component and hence it should be more standardized.</p>
<p><strong>Have a place to share knowledge (informally)</strong><br />
Having a common place where everyone can share knowledge easily, such as a local Wiki can prove invaluable. There is obviously still a place for more formal documents, but a Wiki enables developers to do a brain dump on a particular problem or piece of functionality and store information that may have otherwise been lost.</p>
<p><strong>Conclusion</strong><br />
Some of these may seem obvious, but committing these thoughts to the net will hopefully give you a chance to think about them. In essence these practices enable your team to work in a more efficient and responsive way, which should not only benefit the customer, but also aid the developer in removing some of the distractions related to development and focus on the core task. Do you think there are there any that I have forgot? Please feel free to leave a comment below or email me.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.msjtech.net/agile-best-practices-everyone-can-use/19//feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>8 Ways for your Company to Harness Innovation</title>
		<link>http://www.msjtech.net/8-ways-to-harness-innovation/14/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=8-ways-to-harness-innovation</link>
		<comments>http://www.msjtech.net/8-ways-to-harness-innovation/14/#comments</comments>
		<pubDate>Thu, 22 Sep 2011 01:38:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[innovation]]></category>

		<guid isPermaLink="false">http://www.msjtech.net/?p=14</guid>
		<description><![CDATA[Innovation can provide numerous benefits to your company. It stops the company stagnating and it allows you gain an edge over your competitors through staying relevant adapting to new opportunities quicker. All companies have people that are capable of innovation, below are some techniques through which you can promote innovation and benefit from your existing [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.msjtech.net/wp-content/uploads/2011/09/innovate.jpg"><img class="alignleft size-full wp-image-33" style="margin: 5px 10px;" title="innovate" src="http://www.msjtech.net/wp-content/uploads/2011/09/innovate.jpg" alt="" width="240" height="276" /></a>Innovation can provide numerous benefits to your company. It stops the company stagnating and it allows you gain an edge over your competitors through staying relevant adapting to new opportunities quicker.</p>
<p>All companies have people that are capable of innovation, below are some techniques through which you can promote innovation and benefit from your existing resources.</p>
<p><strong>Focused Innovation</strong><br />
Try and promote innovation around a particular problem to get everyone focused. It could be said that &#8220;Constraints are the engines for innovation&#8221;. Getting everyone focused on a particular problem also avoids people going off on unproductive tangents or suggesting things that may not be useful or relevant at the present time.</p>
<p><strong>Foster a culture that supports and rewards innovation </strong><br />
Highlighting previous ideas that have been successful can be inspirational. It is also worthwhile having a good and generous reward scheme in place to provide incentive for creating new ideas.</p>
<p><strong>Encourage Inter-disciplinary Learning </strong><br />
Group together individuals that don&#8217;t normally work together in brainstorming sessions. This cross fertilization will help people gain a different perspective on an idea they had clearly established in their own mind, and hopefully create new ideas and solutions.</p>
<p><strong>Include Everyone </strong><br />
Use all members of an organisation. As all those different perspectives could be beneficial. Also there may be certain people who you wouldn&#8217;t expect to have good ideas that do, but no one ever asked them.</p>
<p><strong>Use different prompts to facilitate innovation </strong><br />
There are many different tools and techniques that can be used facilitate innovation. Brainstorming is one of the classic techniques, creating mind-maps and setting up a forum where people can post and discuss ideas is also very useful.</p>
<p><strong>Get inspiration from other industries </strong><br />
Take a good look at a company that has been successful in another industry and see if there is anything that you can incorporate into your own business.</p>
<p><strong>Identify your innovators</strong><br />
Some people tend to be more innovative than others &#8211; try and identify the most innovative people and provide them with the resources and encouragement they require to help them innovate more effectively.</p>
<p><strong>Give people &#8220;Innovation Time Off&#8221;</strong></p>
<p>Give people a set amount of time every week where they can let their imaginations run wild where they can work on their own projects.<br />
<strong><br />
</strong>This may be difficult in today&#8217;s economy, but look at the big picture &#8211; take a look at Google for inspiration. Their AdSense for Content program was developed using &#8220;20% time&#8221;, and it is now clearly established as one of their most profitable revenue streams.</p>
<p>&nbsp;</p>
<p>In short there are numerous ways to improve innovation, so why not give it a try and reap the rewards.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.msjtech.net/8-ways-to-harness-innovation/14//feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>User Interface Design Principles</title>
		<link>http://www.msjtech.net/user-interface-design-principles/73/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=user-interface-design-principles</link>
		<comments>http://www.msjtech.net/user-interface-design-principles/73/#comments</comments>
		<pubDate>Wed, 16 Feb 2011 17:29:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[gui]]></category>
		<category><![CDATA[interface best practices]]></category>
		<category><![CDATA[user interface design]]></category>

		<guid isPermaLink="false">http://www.msjtech.net/?p=73</guid>
		<description><![CDATA[Why is Interface Design Important? The usability of your product, whether it is a website, iPhone app or desktop program is one of the key factors in determining its success. One of the main reasons why Apple products are so successful is because of how easy they are to use. I have put together a [...]]]></description>
			<content:encoded><![CDATA[<h3><a href="http://www.msjtech.net/wp-content/uploads/2011/12/maze.jpg"><img class="alignleft size-full wp-image-74" title="maze" src="http://www.msjtech.net/wp-content/uploads/2011/12/maze.jpg" alt="" width="184" height="184" /></a></h3>
<h3>Why is Interface Design Important?</h3>
<p>The usability of your product, whether it is a website, iPhone app or desktop program is one of the key factors in determining its success. One of the main reasons why Apple products are so successful is because of how easy they are to use.</p>
<p>I have put together a list or interface best practices that<strong> </strong>should help you regardless of what form your interface should take.</p>
<h3>Consistency</h3>
<p>Having consistency in your interface enables users to apply their existing knowledge of previous applications in understanding and building up an accurate mental model of your application. Accurate mental models lead to less support and training being required.<strong></strong></p>
<h3>Feedback</h3>
<p>The system should keep users informed of actions or events, such as errors and state changes that are relevant to the user. This helps provide the user with a greater sense of engagement with the application.<strong></strong></p>
<h3>Simplicity</h3>
<p>Tasks that the user is likely to do often should be simple and straightforward to do. The interface should be clean and simple with only useful and relevant information and components displayed.<strong></strong></p>
<h3>Navigation</h3>
<p>In Western societies, people read left to right and top to bottom. Therefore to complement the users existing knowledge and expectations, screens designs should also be organized from left to right and top to bottom.<strong></strong></p>
<h3>Tolerance</h3>
<p>Mistakes are easily made. The interface should be able to handle misuse and mistakes by allowing the user to undo and redo operations wherever possible. A level of verification of the user’s input prior to any action is also encouraged.</p>
<p>Keeping these points in mind will help ensure that your user interface is as ‘user friendly’ as possible.</p>
<p>Feel free to let me know if I’ve forgotten anything.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.msjtech.net/user-interface-design-principles/73//feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Top Java Developer Technologies</title>
		<link>http://www.msjtech.net/java-tools/65/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=java-tools</link>
		<comments>http://www.msjtech.net/java-tools/65/#comments</comments>
		<pubDate>Wed, 16 Dec 2009 16:58:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Hibernate]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[Spring]]></category>
		<category><![CDATA[technologies]]></category>
		<category><![CDATA[Tomcat]]></category>

		<guid isPermaLink="false">http://www.msjtech.net/?p=65</guid>
		<description><![CDATA[Which Java Tech Do I Use? One of the best things about working in Java development is the vast amount of choice that is available for whatever your technical problem is. All this choice can sometimes be a bit overwhelming so I have decided to put together a list of technologies to help you decide [...]]]></description>
			<content:encoded><![CDATA[<h2>Which Java Tech<a href="http://www.msjtech.net/wp-content/uploads/2011/12/tools.jpg"><img class="alignleft size-full wp-image-66" title="tools" src="http://www.msjtech.net/wp-content/uploads/2011/12/tools.jpg" alt="" width="316" height="270" /></a> Do I Use?</h2>
<p>One of the best things about working in Java development is the vast amount of choice that is available for whatever your technical problem is. All this choice can sometimes be a bit overwhelming so I have decided to put together a list of technologies to help you decide which will be best for you.</p>
<p>&nbsp;</p>
<p><strong>The Spring Framework</strong><br />
Spring is the original framework that started the movement away from EJB’s and promoted a new more light-weight way of doing things in the form of Inversion of Control. At its core Spring frees you from having to write repetitive plumbing code and leaves you free to focus on coding business logic. There are also a number of useful additional modules that are provided &#8211; such as ones for AOP, JDBC and a request based MVC framework.</p>
<p><strong>Hibernate</strong><br />
Hibernate is the most popular object relational mapping tool. Using Hibernate frees you from having to write low level JDBC code and enables you to deal with objects instead of tables.</p>
<p><strong>JSF</strong><br />
I believe JSF  is one of the main frameworks that is having success in taking over from Struts. It is a lot more light weight and promotes a more flexible approach to development. JSF is component-centric which makes it very easy to create pages with a number of different inputs. RichFaces is a good example of a popular suite of components that are available. While it had teething problems early on &#8211; especially with JSP integration, it has now matured into a much improved product.</p>
<p><strong>Tomcat </strong><br />
Is a lightweight server (servlet container) that can be used to deploy web applications (WAR’s) onto. Jetty is one of its main rivals, which many would argue is faster.</p>
<p><strong>Eclipse</strong><br />
Eclipse is arguably the best IDE out there for Java Development, it is very stable, fast and easy to use. It also has a thriving developer community around it, with many useful plugins available.</p>
<p><strong>JUNIT</strong><br />
JUnit is a very popular framework for developing unit tests for Java classes. Tests are created by extending the base TestCase class and there is an assertion library for verifying the results.</p>
<p><strong>Maven</strong><br />
Is a build automation tool that has been built on top of Ant. One of the key differences is that Maven manages your dependencies for you, which makes development a lot easier for large teams. It also generates some very useful project metrics and a wealth of documentation.</p>
<p><strong>Hudson</strong><br />
Is a new build automation server that I would say is the main sucessor from the original CruiseControl. Hudson provides the ability to automatically check out code, build and test it and then produce a report based on the outcome. Hudson provides some very useful additional functionality, such as change set support and distributed builds.</p>
<p><strong>Subversion</strong><br />
Is a version control system that is a successor to CVS. Subversion has a number of improvements over CVS, such as moving files is a lot easier, branching is straightforward, and the logging mechanisms are much better.</p>
<p><strong>Selenium </strong><br />
Allows you to create and easily execute automated tests against an actual browser. There is an IDE version that is a plugin for FireFox that allows you to actually record your interaction with the browser and replay it back. There is also a core version through which you can write tests in Java which is also quite easy to use. I find writing Java based tests is much easier and at a more comforable level of granularity than HTMLUnit.</p>
<p><strong>Grinder</strong><br />
Scalability and performance optimisation are crucial requirements for todays Web apps &#8211; Grinder is one of the best open source tools out there to help you test and refine the capabilites of your application. Grinder has a simple and easy to use UI with a scripting language in Jython to produce more complex tests. JMeter from Apache is also a very good related product.</p>
<p>Feel free to leave any comments if you think I have missed any of your favourite technologies.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.msjtech.net/java-tools/65//feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 0.726 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2012-02-23 01:23:04 -->

