<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1884571016665176554</id><updated>2012-02-16T02:49:58.235-08:00</updated><category term='Microsoft'/><category term='Internet'/><category term='display'/><category term='gestural interface'/><category term='collaboration'/><category term='development'/><category term='SQL Server 2005'/><category term='XML'/><category term='communication'/><category term='project scoping'/><category term='MAC'/><category term='Google'/><category term='sgtechblog.blogspot.com'/><category term='applications'/><category term='online marketing'/><category term='Firefox'/><category term='Software as a Service'/><category term='Operating Systems'/><category term='Offshore'/><category term='Sharepoint'/><category term='PC'/><category term='Surface'/><category term='Internet Explorer'/><category term='Stephen Giles'/><category term='DDL Triggers'/><category term='Outsourcing'/><category term='India'/><category term='Personal Branding'/><category term='Saleforce.com'/><category term='SAAS'/><title type='text'>The Business of Technology as I see it</title><subtitle type='html'>An exploration of the fun that ensues when technology and business collide.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://stevegiles.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1884571016665176554/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://stevegiles.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Stephen Giles</name><uri>http://www.blogger.com/profile/13731857772488055313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://media.linkedin.com/mpr/mpr/shrink_80_80/p/2/000/001/3f8/187b621.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>8</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1884571016665176554.post-5768165218451907241</id><published>2007-11-05T22:54:00.000-08:00</published><updated>2007-11-05T22:56:10.710-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Stephen Giles'/><category scheme='http://www.blogger.com/atom/ns#' term='sgtechblog.blogspot.com'/><category scheme='http://www.blogger.com/atom/ns#' term='Personal Branding'/><title type='text'>Two Blogs are Better than One</title><content type='html'>&lt;p&gt;Since its inception, I've had a problem with my own blog.&amp;#xA0; Part of me wanted to write posts that would focus on the practical use of technology and how it can help business people be more effective. &lt;/p&gt;  &lt;p&gt;The title of this blog reflects this view.&lt;/p&gt;  &lt;p&gt; However my inner geek wanted to write more technical articles and I added a few, but they never felt right.&amp;#xA0; It became a personal struggle.&amp;#xA0; So, just like my kids after a long day, I've decided to separate my two halves into two blogs.&amp;#xA0; This one will stay focused on business issues and my geek side will move over to an older blog property that I've used as a test bed: &lt;a href="http://sgtechblog.blogspot.com/"&gt;http:sgtechblog.blogspot.com&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Please feel free to enjoy both and send comments.&amp;#xA0; It's nice to be read, its nicer to get comments.&lt;/p&gt;  &lt;p&gt;Cheers,&lt;/p&gt;  &lt;p&gt;Steve&lt;/p&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1884571016665176554-5768165218451907241?l=stevegiles.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stevegiles.blogspot.com/feeds/5768165218451907241/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1884571016665176554&amp;postID=5768165218451907241' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1884571016665176554/posts/default/5768165218451907241'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1884571016665176554/posts/default/5768165218451907241'/><link rel='alternate' type='text/html' href='http://stevegiles.blogspot.com/2007/11/two-blogs-are-better-than-one.html' title='Two Blogs are Better than One'/><author><name>Stephen Giles</name><uri>http://www.blogger.com/profile/13731857772488055313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://media.linkedin.com/mpr/mpr/shrink_80_80/p/2/000/001/3f8/187b621.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1884571016665176554.post-1893265948988102895</id><published>2007-06-27T12:08:00.000-07:00</published><updated>2007-09-18T07:10:01.855-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Stephen Giles'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet'/><category scheme='http://www.blogger.com/atom/ns#' term='communication'/><category scheme='http://www.blogger.com/atom/ns#' term='project scoping'/><title type='text'>Speaking to your Geek -- Bridging the communication gap between business and IT.</title><content type='html'>OK, its a common cliche, the socially awkward yet arrogant and slightly insulting IT guy clashing with brainless, CD-tray-as-cup-holder business user. In reality, most IT staff don't resemble the Simpson's comic-book guy and most end users are fairly knowledgeable when it comes to their desktops and office tools.&lt;br /&gt;&lt;br /&gt;However, every day, I witness exchanges that highlighted for me the fact that, although we are all becoming more technologically savvy, there is still a divide in perception between those who work in IT and those who don't.&lt;br /&gt;&lt;br /&gt;Consider this exchange:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Business:&lt;/strong&gt; We need you to build an AJAX web application. It should allow customer create a login and, depending on who they are, pull different stuff from a CRM system. It might also need to pull information from our vendors' sites. It will also need to let the users makes some changes to the information that they see.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;IT:&lt;/strong&gt; Well, why do you want it?&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Business:&lt;/strong&gt; (slightly annoyed) It doesn't why, Marketing has requested it.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;IT:&lt;/strong&gt; What vendor systems do we need to interact with, what databases are they running?&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Business:&lt;/strong&gt; We aren't sure yet. It will depend on which vendors join our cross marketing program. Look, I just need to let the Marketing guys know if we can do it and get some ball park costs&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;IT:&lt;/strong&gt; When do you need it?&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Business:&lt;/strong&gt; As soon as possible&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;IT:&lt;/strong&gt; How big is the budget?&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Business:&lt;/strong&gt; It's not set yet, we are really looking to you to give us a sense of what this thing is going to cost. So what do you think, can you do it?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;IT: Sure, I'll need a year and 1 million dollars&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Business: Why are you making this so difficult?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Clearly, this is a bit of theatre but it I want to use it  as a means to illustrate some common challenges that business users have when communicating with IT and why the person on the other side seems so difficult.&lt;br /&gt;&lt;br /&gt;One of the first problems is what a friend of my referred to as "solutioning."    That is, asking for a specific solution before you outline the problem.  You may be reading a lot about web 2.0 technologies, but AJAX may not be the correct solution to your specific problem or work within your current environment. &lt;br /&gt;&lt;br /&gt;A co-worker of mine often responds to solutioning by asking the question that get's people's back up: "why do you want it?"  This question is often misinterpreted as a challenge to the asker.  In reality what his trying to ascertain is the business requirement behind the request. I've told my buddy the question should be better restated as "What is the specific business needs that you are trying to address?"&lt;br /&gt;&lt;br /&gt;When trying to describe a requirement do worry about so much about how but what.  For example:&lt;br /&gt;&lt;br /&gt;What business need(s) should the solution address?&lt;br /&gt;Who will need to access the solution?&lt;br /&gt;What special requirements must be meet to satisfy the business issues (for example, will different users need different level's of access?&lt;br /&gt;What existing systems will the solution need to interact with?&lt;br /&gt;&lt;br /&gt;It is important to remember that IT systems are often interrelated or interdependent and your request may have implications that you are completely unaware of. &lt;br /&gt;&lt;br /&gt;The next issue is specificity.  All too often I am asked to "ball-park" a solution on less than complete information. When presented with this I've see many IT people default to one of two typical response is to either highly buffer the scope/costs to offset the unknown, or make assumptions about what the client requires.&lt;br /&gt;&lt;br /&gt;In both cases, the result is often friction, In the first case, the resulting ball-park figure will greatly exceed expectations (and available budgets).  In the second instance, the clients are often unhappy because the resulting solution is based on incorrect assumptions and need considerable retooling (and expense) to meet the actual demand.&lt;br /&gt;&lt;br /&gt;Remember you would never to a home builder and ask for "something largish with marble in the kitchen and red brick"  You would be specific and go through the plans thoroughly before even breaking ground.&lt;br /&gt;&lt;br /&gt;As a tactic in this situation, I often artificially define boundaries and scope within these boundaries.  I then detail my assumption and exclusions in the scope document and ensure that I have not made any incorrect assumptions while reviewing the scope with the client.&lt;br /&gt;&lt;br /&gt;Three last thoughts to consider when working with IT on  a project:&lt;br /&gt;&lt;br /&gt;1) Simple is complex. The easier an application needs to be for your users, the more work a developer must do on the back end to make things seem simple.  Driving a car is as simple as turning the key and putting the car in gear.  It's that simple, because a lot of complex moving parts under the hood hide the complexity from you.&lt;br /&gt;&lt;br /&gt;2) Minor changes are not always minor. You may ask for what you think is a simple change, but often changing one element of a system can have a cascading affect.  You might just want to add one more field to a newsletter sign-up page.  However, that new field much live somewhere, which means a new column in a table in the database.  If that table is accessed by other reports or tools, it's quite likely that those must also be changed, and so on.&lt;br /&gt;&lt;br /&gt;3) You may want it complex, fast and one budget but you will likely only get two of the three.  Adding to scope adds time and costs.  If you have a complex scope and a fix timeline, more resources will need to be brought to bear to complete the job on time. If you budget doesn't account for the extra bodies, you will have problem. &lt;br /&gt;&lt;br /&gt;When business groups and IT come together, business need to understand that there are complexities that they might not realize and the IT group needs to better communication  the reason why they need to know the information that they are requesting.&lt;br /&gt;&lt;br /&gt;Finally remember the advice from the back of the Hitchhiker's guide to the Galaxy:  Don't Panic.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:98411a5b-aba3-46c1-9ac1-f08fe8d600dc" style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;del.icio.us Tags: &lt;a href="http://del.icio.us/popular/communication" rel="tag"&gt;communication&lt;/a&gt; , &lt;a href="http://del.icio.us/popular/scoping" rel="tag"&gt;scoping&lt;/a&gt; , &lt;a href="http://del.icio.us/popular/development" rel="tag"&gt;development&lt;/a&gt; , &lt;a href="http://del.icio.us/popular/IT" rel="tag"&gt;IT&lt;/a&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1884571016665176554-1893265948988102895?l=stevegiles.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stevegiles.blogspot.com/feeds/1893265948988102895/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1884571016665176554&amp;postID=1893265948988102895' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1884571016665176554/posts/default/1893265948988102895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1884571016665176554/posts/default/1893265948988102895'/><link rel='alternate' type='text/html' href='http://stevegiles.blogspot.com/2007/06/speaking-to-your-geek-bridging.html' title='Speaking to your Geek -- Bridging the communication gap between business and IT.'/><author><name>Stephen Giles</name><uri>http://www.blogger.com/profile/13731857772488055313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://media.linkedin.com/mpr/mpr/shrink_80_80/p/2/000/001/3f8/187b621.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1884571016665176554.post-1764143279180671844</id><published>2007-06-18T11:25:00.000-07:00</published><updated>2007-06-18T11:39:06.850-07:00</updated><title type='text'>Practicing what I preach</title><content type='html'>There are lots of reasons to start a blog. I started this one in the hopes of sharing what I'm learning with a larger community of people trying to use the Internet to help them run a business. Additionally, I'm trying to raise a bit of profile for myself in the already crowded technical expert field.&lt;br /&gt;&lt;br /&gt;As a &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;tangential&lt;/span&gt; benefit, I'm also using it as a test bed for all the technologies that I talk about in my daily work world. This post one such attempt, specifically getting a listing on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Technorati&lt;/span&gt;. I'll let you you all know how it goes.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://technorati.com/claim/btz6i879pg" rel="me"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Technorati&lt;/span&gt; Profile&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1884571016665176554-1764143279180671844?l=stevegiles.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stevegiles.blogspot.com/feeds/1764143279180671844/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1884571016665176554&amp;postID=1764143279180671844' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1884571016665176554/posts/default/1764143279180671844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1884571016665176554/posts/default/1764143279180671844'/><link rel='alternate' type='text/html' href='http://stevegiles.blogspot.com/2007/06/practicing-what-i-preach.html' title='Practicing what I preach'/><author><name>Stephen Giles</name><uri>http://www.blogger.com/profile/13731857772488055313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://media.linkedin.com/mpr/mpr/shrink_80_80/p/2/000/001/3f8/187b621.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1884571016665176554.post-2237449468991930949</id><published>2007-06-12T22:35:00.000-07:00</published><updated>2007-06-12T22:43:38.652-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><category scheme='http://www.blogger.com/atom/ns#' term='DDL Triggers'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2005'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Geek fun with DDL Triggers</title><content type='html'>&lt;span style="font-family:arial;"&gt;This positing first appeared in an earlier blog that I have now replaced with this current opus. It's a bit more technical that most of what I am putting in this blog, but I'm still a database geek at heart and I wanted to move it over before I wrapped up the earlier blog.  I hope no-one takes offence at this bit of self plagiarism&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;With all the big changes in SQL Server 2005 I've been focusing on some small but significant changes. &lt;/span&gt;&lt;span style="font-family:arial;"&gt;The first of these is the Data Definition Language (DDL) triggers.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;I&lt;/span&gt;&lt;span style="font-family:arial;"&gt;n a nutshell, SQL Server 2005 will allow you to set a trigger at the database level for a myriad of DDL actions (consult your friendly neighborhood BooksOnline for the full list).&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;I've chosen an particular application of this functionality here, one that solves a problem I had with earlier SQL versions -- table management.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;The problem is like this: suppose you, as DBA, notice that a table has been deleted. You go into the SQL Server logs but find no reference to the dropped table. Nor can you find out who dropped it and when. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Now you can.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;In a test database, I created a log table in my test DB that looked like this:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;CREATE TABLE [dbo].[DDL_Log]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;( [id] [int] IDENTITY(1,1) NOT NULL,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[DDL_Event] [nvarchar](100) NOT NULL,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[TSQL_code] [nvarchar](2000) NOT NULL, &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[ExecutedBy] [nvarchar](100) NOT NULL DEFAULT current_user, &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[Action_date] [datetime] NULL DEFAULT (getdate())) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ON [PRIMARY];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;I then created a DDL trigger on the database using the following syntax:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;CREATE TRIGGER [log_table_actions] &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ON DATABASE FOR DROP_TABLE, ALTER_TABLE, CREATE_TABLE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;AS &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;BEGIN&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;DECLARE @data XMLSET @data = EVENTDATA() &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;INSERT dbo.ddl_log (DDL_Event, TSQL, ExecutedBy, Action_Date) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;VALUES (@data.value('(/EVENT_INSTANCE/EventType)[1]','nvarchar(100)'),@data.value('(/EVENT_INSTANCE/TSQLCommand)[1]','nvarchar (2000)'), CONVERT(nvarchar(100), (CURRENT_USER)), GETDATE())&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;End;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;A few thing will jump out immediately. The first is that the trigger is created "ON DATABASE" rather than on a table and secondly, that the trigger is create on all CREATE, ALTER and DROP TABLE statements. Finally it uses the eventdata() function to query information on the DDL statement that called the trigger. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Please note that this function returns XML, so you'll need to capture the output inside and XML typed variable, and you need to query elements inside the element to get the data. In this case, I've returned the event type and the full TSQL code for the DDL statement.I'm still looking for the full schema for the eventdata() xml document. But that will be a post for another day. &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1884571016665176554-2237449468991930949?l=stevegiles.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stevegiles.blogspot.com/feeds/2237449468991930949/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1884571016665176554&amp;postID=2237449468991930949' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1884571016665176554/posts/default/2237449468991930949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1884571016665176554/posts/default/2237449468991930949'/><link rel='alternate' type='text/html' href='http://stevegiles.blogspot.com/2007/06/geek-fun-with-ddl-triggers.html' title='Geek fun with DDL Triggers'/><author><name>Stephen Giles</name><uri>http://www.blogger.com/profile/13731857772488055313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://media.linkedin.com/mpr/mpr/shrink_80_80/p/2/000/001/3f8/187b621.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1884571016665176554.post-4413984892140594302</id><published>2007-06-11T20:50:00.000-07:00</published><updated>2007-06-12T22:44:30.654-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MAC'/><category scheme='http://www.blogger.com/atom/ns#' term='collaboration'/><category scheme='http://www.blogger.com/atom/ns#' term='PC'/><category scheme='http://www.blogger.com/atom/ns#' term='SAAS'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='Firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='Software as a Service'/><category scheme='http://www.blogger.com/atom/ns#' term='Operating Systems'/><category scheme='http://www.blogger.com/atom/ns#' term='Stephen Giles'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet Explorer'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Saleforce.com'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet'/><title type='text'>Web Applications: Death of the desktop app? (Hint: It depends on who you ask)</title><content type='html'>&lt;span style="font-family:arial;"&gt;Lately, I have been noticing more and more commentators writing about, and podcasting about web-based applications making the desktop applications obsolete. The two most obvious examples cited are Salesforce.com and many of the Google applications like Gmail and the &lt;a href="http://docs.google.com/"&gt;Google Docs and Spreadsheet&lt;/a&gt;. Certainly, anyone watching what Google is up to will get this sense. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;The idea is a sound one: write applications using web-based technology, and make them available on the Internet, where, hypothetically, they will run in any web-browser, regardless of what operating system is running in the background. Anyone who tries to find desktop apps to run on both Windows and a Mac will appreciate the thought behind this level of abstraction. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;Does this trend spell the end of desktop applications? For my money the answer is, as is so often the case, probably, but not now. It has a lot of promise, but there are currently, some major road blocks to adoption.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;Let's look at three major ones:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;&lt;strong&gt;1. Connectivity&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;As I type this blog entry I am using a web-based application which is, by most accounts, fairly robust. It allows me to format text, add hyperlinks (as you see above) and even finds my more egregious typos. It even has a auto save function which has saved me a few times. To use it, all I had to do was connect to a web site. Out of curiosity, I started this post on a Mac at the office and now finish it on my home PC. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;However, I would have preferred to finish this post on the my train ride home, but the lack of connectivity meant I was left working on spreadsheet in Excel that was installed and saved on my hard drive.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;Lack of universal connectivity is the first road-block to the complete adoption of online applications. There are times when we are just not able to connect. Unfortunately, often these periods of non-connectivity, like on long flights, or commuter train rides, are the times when we are most likely to want to to work. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;&lt;strong&gt;2. Technical incompatibility&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;The second road block is the the technology itself. Microsoft, which admittedly has a lot to lose by the global adoption of web-based applications like Google spreadsheet, has been leveraging the .NET platform to drive the creation of web applications. It has also built a back-end infrastructure to support web apps. We are currently looking for a document management solution that both the PC and Mac users can use to collaborate on documents. I was doing some early testing on SharePoint portal server and thought I had a winner. I was almost right. The Macs, using FireFox could access the portal and browse to the document library, however, they were unable to check documents in and out. This functionality, of course, worked fine with the PC running Internet Explorer, but defeats its entire purpose on the Mac. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;Now, it's easy to adopt the Microsoft is evil stance, however, a&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;s a developer of web-based applications, I know how hard it is to make things, even as simple as an HTML email, render properly across different platforms. &lt;/span&gt;&lt;span style="font-family:Arial;"&gt;The OS makers have a vested interest in keeping their platforms distinct and I don't see this changing any time soon. They also tune their backend platforms to work most efficiently with their own technology.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;3. Data Security&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;One final barrier to full adoption of web-based applications is one that I also struggle with on both sides -- the storage of data. The apps live on a web server somewhere in the Cloud that is the Internet. In many cases, your data will live in a database or file store connected to that web server, or so you hope. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;The truth is, in many cases, you don't actually know where your data is, and who has access to it. Most legitimate vendors, including my company, go to great lengths to secure data and set an appropriate privacy and security policies, but the truth is, once its out of your network, you are at the the mercy of someone else's systems and system administrators. So trust in your vendor becomes key.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;I think the trend of moving applications online will continue. The rise of Software as a Service applications like Salesforce.com will push this field. Also, as Wi-Fi technology becomes more pervasive, and workforces become more remote and less tied to a cubicle, the reach of online applications will increase. In the meantime, find a vendor that you trust and look at the business needs driving the decision, but don't be afraid to make the leap.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1884571016665176554-4413984892140594302?l=stevegiles.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stevegiles.blogspot.com/feeds/4413984892140594302/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1884571016665176554&amp;postID=4413984892140594302' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1884571016665176554/posts/default/4413984892140594302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1884571016665176554/posts/default/4413984892140594302'/><link rel='alternate' type='text/html' href='http://stevegiles.blogspot.com/2007/06/web-applications-death-of-desktop-hint.html' title='Web Applications: Death of the desktop app? (Hint: It depends on who you ask)'/><author><name>Stephen Giles</name><uri>http://www.blogger.com/profile/13731857772488055313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://media.linkedin.com/mpr/mpr/shrink_80_80/p/2/000/001/3f8/187b621.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1884571016665176554.post-740928245045714557</id><published>2007-06-02T20:48:00.000-07:00</published><updated>2007-06-07T07:45:46.027-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Stephen Giles'/><category scheme='http://www.blogger.com/atom/ns#' term='gestural interface'/><category scheme='http://www.blogger.com/atom/ns#' term='Surface'/><category scheme='http://www.blogger.com/atom/ns#' term='online marketing'/><category scheme='http://www.blogger.com/atom/ns#' term='display'/><category scheme='http://www.blogger.com/atom/ns#' term='applications'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Microsoft Surface: Not close to home, but cool for business</title><content type='html'>Last week Microsoft release a preview of Microsoft Surface. I been watching some cool demos of surface and gestural interface computing systems and prototypes at sites like &lt;a href="http://http//www.engadget.com/2007/05/30/microsoft-surface-surface-and-gesture-based-computing-lands/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Engaget&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://http//www.youtube.com/watch?v=89sz8ExZndc"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;YouTube&lt;/span&gt;&lt;/a&gt; for a while, but it looks like MS has something that is almost ready for prime time.&lt;br /&gt;&lt;br /&gt;What MS is showing is a 30 inch table like screen that can interact with devices like the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Zune&lt;/span&gt; (which as a Canadian still does not exist in my world) and a &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;Mobile&lt;/span&gt; device.&lt;br /&gt;&lt;br /&gt;I don't see this as a home item yet (although I'd love one right now), however, as a tool for marketers this is huge.&lt;br /&gt;&lt;br /&gt;Take a look at the three flash videos on the Microsoft site (&lt;a href="http://www.microsoft.com/surface"&gt;http://www.microsoft.com/surface&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;My head is already filling with ideas for retail applications of this technology to their online &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;initiatives&lt;/span&gt;. Now I need to see who I can plead with at Microsoft to get me early access to the technology. I'll keep you posted.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1884571016665176554-740928245045714557?l=stevegiles.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stevegiles.blogspot.com/feeds/740928245045714557/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1884571016665176554&amp;postID=740928245045714557' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1884571016665176554/posts/default/740928245045714557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1884571016665176554/posts/default/740928245045714557'/><link rel='alternate' type='text/html' href='http://stevegiles.blogspot.com/2007/06/microsoft-surface-not-close-to-home-but.html' title='Microsoft Surface: Not close to home, but cool for business'/><author><name>Stephen Giles</name><uri>http://www.blogger.com/profile/13731857772488055313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://media.linkedin.com/mpr/mpr/shrink_80_80/p/2/000/001/3f8/187b621.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1884571016665176554.post-7151007638814308092</id><published>2007-06-01T22:58:00.001-07:00</published><updated>2007-06-07T07:53:10.127-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Outsourcing'/><category scheme='http://www.blogger.com/atom/ns#' term='Stephen Giles'/><category scheme='http://www.blogger.com/atom/ns#' term='India'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='Offshore'/><title type='text'>Some learning on successfully offshoring web development</title><content type='html'>&lt;span xmlns=""&gt;&lt;p&gt;My colleague, Gina Lijoi, recently commented in &lt;a href="http://ginalijoi.blogspot.com/2007/05/outsourced-model_08.html"&gt;her blog&lt;/a&gt; on the challenges of outsourcing from a project management perspective. We have been using outsourcing for a number of years and most recently, have being offshoring work to India. While this has caused a paradigm shift for the project management team, it has also created a new set of challenges for the technical development. Our first forays into offshoring were less than smooth, but over time I've gained some learnings that make for successful offshore projects.&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;strong&gt;Find a good partner&lt;/strong&gt; – Just as with finding a local contractor, you need to know the people you work with offshore. The distance makes communication even for difficult, so you need to know that the people you are working with can understand what you need and do the job right. Miscommunication lead to incorrect work product which can wreak havoc with your timelines (if code needs to be re-written) and/or jeopardize you client deliverables. Good communication skills and a strong leadership team are essential to make sure your projects run smoothly. If possible, look for a company that will give you access to the same staff. This will allow you to get used to each other and will give your offshore team a sense of ownership with your projects.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Planning and Documenting is key &lt;/strong&gt;– I have great team in hours. We've worked closely together and I know that I could give any one of my guys a concept sketched on the back of a bar napkin and know with some certainty that they will deliver a solid product. You can't do this with an outsource partner, particularly one offshore. Your in-house staff knows your customers, they know the way you work and the kinds of projects you. Don't assume this will easily translate to your offshore partner. You need to provide full documentation. We include and a full System Architecture which includes a brief synopsis of the project, requirements document, flow charts, ERDs and all relevant UML models (class diagrams, activity diagrams, etc.). We also include a test plan. The test plan is useful because your offshore partner can use them as a vision of the finished product. The more detail you can provide up front, the better the outcome will be.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Give yourself more planning, management and QA time &lt;/strong&gt;– With proximity, your developers can ask questions as they work, you offshore team can't. Make sure you budget the time to create your documentation and extra time for QA on the back end. Also make sure that you budget time for regular status meetings. Which leads to the next point:&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Be prepared to shift your hours &lt;/strong&gt;– The Indian partner that we work with is 10.5 hours off of us. This means that I often stay up to 11 or 12 at night to have conference calls, or get into the office at 7 or 8. The late night calls allow me to meet with the team before they start their workday, the morning calls allow me to get briefed on what they accomplished during the day and deal with any outstanding issues.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Use communication technology to your advantage&lt;/strong&gt; – Call to India are expensive. I try to use lower cost alternatives like Skype, email and MSN. MSN is particularly useful as I am a night owl and so is one of the team members in India that I work with. We often in the brief windows where we are both up, have running discussions on MSN that I review as part of my project tracking. For many this is the hard part, but I've found regular communications really do make for a better experience and better results.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1884571016665176554-7151007638814308092?l=stevegiles.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stevegiles.blogspot.com/feeds/7151007638814308092/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1884571016665176554&amp;postID=7151007638814308092' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1884571016665176554/posts/default/7151007638814308092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1884571016665176554/posts/default/7151007638814308092'/><link rel='alternate' type='text/html' href='http://stevegiles.blogspot.com/2007/06/some-learning-on-successfully.html' title='Some learning on successfully offshoring web development'/><author><name>Stephen Giles</name><uri>http://www.blogger.com/profile/13731857772488055313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://media.linkedin.com/mpr/mpr/shrink_80_80/p/2/000/001/3f8/187b621.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1884571016665176554.post-7073116762528296731</id><published>2007-05-30T08:03:00.001-07:00</published><updated>2007-05-30T08:03:23.857-07:00</updated><title type='text'></title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;Welcome to my new space.  &lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1884571016665176554-7073116762528296731?l=stevegiles.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://stevegiles.blogspot.com/feeds/7073116762528296731/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1884571016665176554&amp;postID=7073116762528296731' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1884571016665176554/posts/default/7073116762528296731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1884571016665176554/posts/default/7073116762528296731'/><link rel='alternate' type='text/html' href='http://stevegiles.blogspot.com/2007/05/welcome-to-my-new-space.html' title=''/><author><name>Stephen Giles</name><uri>http://www.blogger.com/profile/13731857772488055313</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://media.linkedin.com/mpr/mpr/shrink_80_80/p/2/000/001/3f8/187b621.jpg'/></author><thr:total>0</thr:total></entry></feed>
