<?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>Granite Peak Systems &#187; Software development</title>
	<atom:link href="http://granitepeaksys.com/category/blog/technology/software-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://granitepeaksys.com</link>
	<description>High Impact Technology Solutions</description>
	<lastBuildDate>Fri, 16 Sep 2011 15:11:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>Finding the right long term contractor</title>
		<link>http://granitepeaksys.com/2011/05/19/finding-the-right-long-term-contractor/</link>
		<comments>http://granitepeaksys.com/2011/05/19/finding-the-right-long-term-contractor/#comments</comments>
		<pubDate>Thu, 19 May 2011 19:06:27 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Software development]]></category>
		<category><![CDATA[Staffing]]></category>

		<guid isPermaLink="false">http://granitepeaksys.com/?p=122</guid>
		<description><![CDATA[I&#8217;ve been using the oDesk service to build custom software systems for about 3.5 years now. I&#8217;ve worked with contractors from across the world including India, Philippines, Bolivia, US, Canada, and Mexico. There&#8217;s a world full of very skilled people out there, and oDesk makes it easy to connect with them and accomplish great things. [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been using the oDesk service to build custom software systems for about 3.5 years now. I&#8217;ve worked with contractors from across the world including India, Philippines, Bolivia, US, Canada, and Mexico. There&#8217;s a world full of very skilled people out there, and oDesk makes it easy to connect with them and accomplish great things.</p>
<p>Over the years, I&#8217;ve been lucky to establish strong relationships with a number of highly skilled contractors. So Brian McDonough from oDesk interviewed me to find out what I think makes a contractor great. I think it&#8217;s an interesting article and one that&#8217;s relevant to me personally in my role as a consultant.</p>
<p><a title="Finding the right long term contractors" href="http://www.odesk.com/blog/2011/05/finding-the-right-long-term-contractor/" target="_blank">http://www.odesk.com/blog/2011/05/finding-the-right-long-term-contractor/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://granitepeaksys.com/2011/05/19/finding-the-right-long-term-contractor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nice press in the Billings Gazette</title>
		<link>http://granitepeaksys.com/2011/01/09/nice-press-in-the-billings-gazette/</link>
		<comments>http://granitepeaksys.com/2011/01/09/nice-press-in-the-billings-gazette/#comments</comments>
		<pubDate>Sun, 09 Jan 2011 14:51:13 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Software development]]></category>

		<guid isPermaLink="false">http://granitepeaksys.com/?p=117</guid>
		<description><![CDATA[Jan Falstad wrote a very nice article about the work I&#8217;ve been doing on Schedappy (www.schedappy.com) and Total Offender Management (www.totaloffendermanagement.com).  Check it out! Business Solves Unique Problems With Unique Software]]></description>
			<content:encoded><![CDATA[<p>Jan Falstad wrote a very nice article about the work I&#8217;ve been doing on Schedappy (<a href="http://www.schedappy.com">www.schedappy.com</a>) and Total Offender Management (<a href="http://www.totaloffendermanagement.com">www.totaloffendermanagement.com</a>).  Check it out!</p>
<p><a href="http://billingsgazette.com/business/article_7ffee3b2-810e-5f10-8440-8ebf9c0e973f.html" target="_blank">Business Solves Unique Problems With Unique Software</a></p>
]]></content:encoded>
			<wfw:commentRss>http://granitepeaksys.com/2011/01/09/nice-press-in-the-billings-gazette/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ideas to Improve Your Likelihood of Project Success</title>
		<link>http://granitepeaksys.com/2009/04/13/ideas-to-improve-your-likelihood-of-project-success/</link>
		<comments>http://granitepeaksys.com/2009/04/13/ideas-to-improve-your-likelihood-of-project-success/#comments</comments>
		<pubDate>Mon, 13 Apr 2009 17:02:53 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[IT Management]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://granitepeaksys.com/?p=71</guid>
		<description><![CDATA[I recently completed a large project for a non-profit client in the social services industry.  The goal was to develop a system that would allow them to manage their case loads efficiently as their existing systems were inadequate to the task.  I learned and confirmed several things by managing this project that I think you might find useful.]]></description>
			<content:encoded><![CDATA[
<p>I recently completed a large project for a non-profit client in the social services industry.  The goal was to develop a system that would allow them to manage their case loads efficiently as their existing systems were inadequate to the task.  I learned and confirmed several things by managing this project that I think you might find useful.</p>
<p><span id="more-71"></span></p>
<p>First, make sure you define your project with the right people.  In the beginning of this project, I was working based on a series of conversations with my client&#8217;s top executive.  The top executive and I were on the same page, but the two directors were confused about what the project was doing.  When I re-defined the project with the three of them together, we all started working towards the same goals.</p>
<p>Secondly, pick the smallest team that can be effective to meet your goals.  This client has a very strong team based culture.  While this leads to a high degree of staff empowerment, it also sometimes means that everyone expects to be involved in every decision.  Knowing that previous projects had become bogged down in this bureaucracy, we comprised our core team of the strongest subject matter experts available.  As we worked through various components of the system, we pulled in additional resources where necessary and made sure all the team members were communicating well to their colleagues.  This allowed us to move rapidly through requirements definition, application testing, and finally projet approval.</p>
<p>Third, make sure you have clear expectations for your team.  This may involve teaching your team how to do their work since they may not have participated in a similar project before.  Even worse, they may have participated in a similar project that didn&#8217;t function well and have developed bad habits.  On our team, we stressed that the team members were not expected to know everything.  But they were expected to know who needed to be involved in each piece of the project and to pull those people in as appropriate.  They were also expected to keep their supervisors and colleagues informed about project progress and to use their supervisors and colleagues to help resolve any issues.</p>
<p>Fourth, it is imperative to get the right technical skills on board.  In Billings, there is a serious shortage of experienced programmers.  So we used remote programmers through a service called oDesk.  I managed the requirements definition, communication with the programmers, and primary quality assurance.  This ensured that the client&#8217;s staff on the team were focused on their responsibilities&#8230;the functional aspects of the system.  The approach allowed me to tap into the global talent pool to find the right skills, and helped my client keep development costs under control.</p>
<p>Finally, consistently confirm your understandings of your projects priorities (Cost vs. Time vs. Scope).  In this case, the client strongly preferred a consistent monthly cost and a full set of application features to delivering on a specific date.  As a result, we moved a little slower than was technically possible.  When we had to adjust the schedule, I confirmed again with the client that their preferences had not changed.  In the end, we delivered within a few weeks of our best estimate (on a 14 month project) and the client was very satisfied.</p>
<p>Most of these learnings weren&#8217;t necessarily new to me and they may not be new to you.  But looking back, they were probably the key items that made the project successful.  Hopefully, they&#8217;ll help you in your next project.</p>
]]></content:encoded>
			<wfw:commentRss>http://granitepeaksys.com/2009/04/13/ideas-to-improve-your-likelihood-of-project-success/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Don&#8217;t Do That Custom Development!</title>
		<link>http://granitepeaksys.com/2007/10/31/dont-do-that-custom-development/</link>
		<comments>http://granitepeaksys.com/2007/10/31/dont-do-that-custom-development/#comments</comments>
		<pubDate>Wed, 31 Oct 2007 15:02:59 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Software development]]></category>

		<guid isPermaLink="false">http://granitepeaksys.com/2007/10/31/dont-do-that-custom-development/</guid>
		<description><![CDATA[I wrote about the importance of SMBs keeping processes and systems simple.&#xA0; I recently began work with a new client that was searching for ways to increase knowledge sharing across their organization.&#xA0; They were just starting the development of a new corporate intranet.&#xA0; They had spec&#8217;d out their needs and identified a sub-site to have [...]]]></description>
			<content:encoded><![CDATA[<p>I wrote about the importance of SMBs <a href="http://granitepeaksys.com/2007/09/26/keep-it-simple/">keeping processes and systems simple</a>.&#xA0; I recently began work with a new client that was searching for ways to increase knowledge sharing across their organization.&#xA0; They were just starting the development of a new corporate intranet.&#xA0; They had spec&#8217;d out their needs and identified a sub-site to have custom developed.&#xA0; The analysts and developers did a nice job and it looks great.</p>
<p>But I recommended they hold on the custom development.&#xA0; They needed to evaluate MS Sharepoint&#8217;s capabilities before proceeding.&#xA0; Why?&#xA0; The basic corporate intranet portal has been built 100+ times already.&#xA0; Sharepoint, Plone, Liferay, JBoss, DotNetNuke and many others are decent out-of-the-box foundations for an internal site.&#xA0; So there&#8217;s just no reason to pursue custom development for this type of project.&#xA0; </p>
<p>But why Sharepoint?&#xA0; This client is also upgrading their core enterprise system.&#xA0; Turns out that the system based on a MS platform and uses Sharepoint for document management.&#xA0; Doesn&#8217;t it make a lot of sense to evaluate whether or not the platform used by your core enterprise system will work for the rest of your needs as well?</p>
<p>Right now, they seem to like Sharepoint and we&#8217;re now doing a test project to prove it to the company.&#xA0; If the test fails, there are other options.&#xA0; But custom development for an intranet should be a last resort.</p>
]]></content:encoded>
			<wfw:commentRss>http://granitepeaksys.com/2007/10/31/dont-do-that-custom-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Joys and Perils of Microsoft Access</title>
		<link>http://granitepeaksys.com/2007/10/04/joys-and-perils-of-microsoft-access/</link>
		<comments>http://granitepeaksys.com/2007/10/04/joys-and-perils-of-microsoft-access/#comments</comments>
		<pubDate>Thu, 04 Oct 2007 21:14:34 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Software development]]></category>

		<guid isPermaLink="false">http://granitepeaksys.com/2007/10/04/joys-and-perils-of-microsoft-access/</guid>
		<description><![CDATA[One of the greatest developments in office software suites has been the desktop database.&#xA0; People have done some pretty complex things with relative ease using tools like Microsoft Access.&#xA0; Now, online databases such as DabbleDB and ZohoDB are advancing the tool and allowing companies to collaborate outside their own borders using secure databases. I have [...]]]></description>
			<content:encoded><![CDATA[<p>One of the greatest developments in office software suites has been the desktop database.&#xA0; People have done some pretty complex things with relative ease using tools like Microsoft Access.&#xA0; Now, online databases such as <a href="http://www.dabbledb.com/">DabbleDB</a> and <a href="http://db.zoho.com/">ZohoDB</a> are advancing the tool and allowing companies to collaborate outside their own borders using secure databases.</p>
<p>I have a love/hate relationship with MS Access.&#xA0; Way back when, I spent a lot of time doing Microsoft Office development and Access was a favorite tool of mine.&#xA0; I liked that I could easily hook up to the enterprise databases, pull the information I needed and integrate it with any other application I happened to build.&#xA0; </p>
<p>But people who do Access development full time tend to get trapped into that box.&#xA0; When the task becomes greater than the tool, they simply find ways to make it work.&#xA0; And that leads to problems.</p>
<p>Nowadays I spend a lot of time supporting an Access database that has outgrown its skin.&#xA0; I&#8217;m rebuilding the application with a SQL Server back end, and ASP.NET and Sharepoint on the front end.&#xA0; But it&#8217;s a really slow process because there are so many business rules hard coded into the VBA.&#xA0; Identifying the code that has to be there versus what was done inefficiently is a real chore.&#xA0; And all the while I spend time helping users through crashes, data corruption, and reports that aren&#8217;t tying out.</p>
<p>So, here&#8217;s my advice of the day.&#xA0; Use Access.&#xA0; Or Dabble or Zoho.&#xA0; They&#8217;re great tools and fill a need.&#xA0; But when you need more than a couple users, have rigorous security requirements, need sophisticated data entry forms, or have complex reporting needs, it&#8217;s time for a different tool.&#xA0; Don&#8217;t put this off.&#xA0; Your application will only become more complex over time.&#xA0; And you&#8217;ll end up spending a lot of time and money supporting the application instead of improving your business.</p>
]]></content:encoded>
			<wfw:commentRss>http://granitepeaksys.com/2007/10/04/joys-and-perils-of-microsoft-access/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft bias?</title>
		<link>http://granitepeaksys.com/2007/09/17/microsoft-bias/</link>
		<comments>http://granitepeaksys.com/2007/09/17/microsoft-bias/#comments</comments>
		<pubDate>Mon, 17 Sep 2007 19:18:52 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Software development]]></category>

		<guid isPermaLink="false">http://granitepeaksys.com/2007/09/17/microsoft-bias/</guid>
		<description><![CDATA[Looking through my bio, you may notice a slant towards Microsoft technologies. I will readily admit that when I do application development, I mostly use Microsoft tools. Thatâ€™s because Microsoft has always done a great job getting part-time developers like myself the tools and training we need to quickly build and deploy solutions. So what [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal"><a href="http://granitepeaksys.com/about/">Looking through my bio</a>, you may notice a slant towards Microsoft technologies.<span>  </span>I will readily admit that when I do application development, I mostly use Microsoft tools.<span>  </span>Thatâ€™s because Microsoft has always done a great job getting part-time developers like myself the tools and training we need to quickly build and deploy solutions.</p>
<p class="MsoListParagraph">So what does this mean to you, a business leader at an SMB?<span>  </span>Well, Iâ€™m not a professional software developer, and I donâ€™t try to sell myself as one.<span>  </span>I focus on the business processes and then I find the right technology that will enable process improvement.<span>  </span>I need to do my work in a way that does not box me into one potential solution.<span>  </span>After all, if you hire an Access guru, youâ€™re going to get an Access database no matter what solution will work best.</p>
<p class="MsoListParagraph">Once I understand your processes and can help you identify opportunities, I need to be able to quickly produce solutions that meet several criteria:</p>
<ul>
<li>The solution must fit in your environment with minimal additional investment,</li>
<li>The solution must be able to scale with you as your business grows.,</li>
<li>You must be able to use the solution without constantly calling me back for (billable) assistance, and</li>
<li>If you do require additional assistance, you shouldnâ€™t have trouble finding someone to support you should I get hit by a bus or win the lottery and retire.</li>
</ul>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Hereâ€™s an example.<span>  </span>I needed to develop a multi-user application that would read data from a database and would write information to the clientâ€™s intranet.<span>  </span>One of my clientâ€™s main concerns was that the application operate quickly.<span>  </span>The client has no internal IT staff, and their intention to rapidly expand the scope of the application meant that distributing an application to PCs of the users was not a great idea.<span>  </span>The database was MS Access, and the intranet was built on Windows Sharepoint Services.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">A web based solution made sense for obvious reasons.<span>  </span>I had never gotten much real-world experience with AJAX but the ability to process transactions without full page refreshes would certainly be appreciated.<span>  </span>In a couple hours, I had built the required pages using the <a href="http://www.asp.net/ajax/">ASP.NET AJAX toolkit</a>.<span>  </span>We are now extending this application, and what I was able to produce in those few hours has enabled the clientâ€™s staff to think completely differently about their processes.<span>  </span>Not only that, but the client is now moving their data into SQL Server 2005 Express.<span>  </span>This application is remaining virtually untouched.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I certainly<span>  </span>keep my eyes open when designing a new solution.<span>  </span>If a client already has a significant investment on a LAMP platform, Iâ€™m certainly not going to recommend that they implement Sharepoint for document management.<span>  </span>But more often than not, I find the client already has the environment in place to support a Microsoft approach.<span>  </span>And I know that there are 20 other people in town that can pick up right where I leave off when my numbers come up!<o:p></o:p></p>
]]></content:encoded>
			<wfw:commentRss>http://granitepeaksys.com/2007/09/17/microsoft-bias/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

