<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-6566653093437934181</atom:id><lastBuildDate>Tue, 27 Jan 2026 22:38:00 +0000</lastBuildDate><category>project management</category><category>interface design</category><category>Agile</category><category>requirements gathering</category><category>SDLC</category><category>UI</category><category>best practice</category><category>fee proposal</category><category>quality assurance</category><category>tenders</category><category>usability</category><category>Google</category><category>HCI</category><category>QA testing</category><category>SEO</category><category>UAT</category><category>UI design</category><category>black-box testing</category><category>ecommerce</category><category>graphic design</category><category>hiring staff</category><category>interviews</category><category>lessons learnt</category><category>mockups</category><category>on-page SEO</category><category>project debriefings</category><category>project proposal</category><category>quote</category><category>rapid prototyping</category><category>recruitment</category><category>schedule</category><category>scoping</category><category>search engine optimization</category><category>software development process</category><category>usability testing</category><category>web development</category><category>websites</category><category>wireframes</category><category>Absolute Unique Visitors</category><category>Bounce Rate</category><category>Business Integrity</category><category>Channel integration</category><category>Customer self-service</category><category>Demand Aggregation</category><category>Ethics</category><category>Facebook</category><category>Google Analytics</category><category>HR</category><category>Internet trends</category><category>Morality</category><category>One-to-one Marketing</category><category>Producer Direct</category><category>Product Re-bundling</category><category>Project Closure</category><category>SERP</category><category>Sign-off Agreement</category><category>Social Media Strategy</category><category>Social Networking</category><category>System Acceptance</category><category>Time on Site</category><category>Twitter</category><category>User Acceptance Testing</category><category>Website Stats</category><category>agenda</category><category>animation</category><category>best-practice</category><category>broadband</category><category>bug fixing</category><category>bug testing</category><category>bug tracking</category><category>bugs</category><category>business</category><category>business analyst role</category><category>business development manager</category><category>business requirements</category><category>change control</category><category>client</category><category>conflict resolution</category><category>content</category><category>content management</category><category>customer service</category><category>demonstration</category><category>derailed project</category><category>design brief</category><category>documentation</category><category>documents storage</category><category>e-Strategy</category><category>end of project report</category><category>estimation</category><category>filing</category><category>flash</category><category>folder structure</category><category>goal settings</category><category>google spreadsheets</category><category>graphic designers</category><category>highlight reports</category><category>invoicing</category><category>issue management</category><category>late project</category><category>lessons learned report</category><category>lessons learnt report</category><category>limited resources.</category><category>maintenance</category><category>management styles</category><category>managers</category><category>meetings</category><category>milestones</category><category>needs analysis</category><category>off-page SEO</category><category>one minute manager</category><category>online help</category><category>online marketing</category><category>online shopping</category><category>operational management</category><category>outsourced labor</category><category>outsourcing</category><category>overseas coders</category><category>page rank</category><category>payment</category><category>planning</category><category>post-mortem</category><category>process improvement</category><category>productivity</category><category>programmer briefing</category><category>programmer tests</category><category>programmers</category><category>project coordination</category><category>project costing</category><category>project delays</category><category>project post-mortem</category><category>project progress</category><category>project status reports</category><category>project support files</category><category>project tracking</category><category>project updates</category><category>protocol</category><category>release acceptance</category><category>requirements review meeting</category><category>sequence</category><category>service level agreement</category><category>small projects</category><category>software design</category><category>stalled projects</category><category>storyboards</category><category>support contract</category><category>system analysis</category><category>task descriptions</category><category>team</category><category>team environment</category><category>tech briefing</category><category>technical briefing</category><category>test plan</category><category>tight budget</category><category>time management</category><category>to-do list</category><category>training</category><category>under-resourced</category><category>upgrades</category><category>user experience</category><category>user manuals</category><category>user-centered design</category><category>validation testing</category><category>video tutorials</category><category>waterfall model</category><category>web business</category><category>work list</category><category>youtube</category><title>Project Management for the Web</title><description>Software development in a web environment.</description><link>http://pm4web.blogspot.com/</link><managingEditor>noreply@blogger.com (Louis Marshall)</managingEditor><generator>Blogger</generator><openSearch:totalResults>58</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6566653093437934181.post-596250492847593165</guid><pubDate>Wed, 25 Jan 2023 04:23:00 +0000</pubDate><atom:updated>2023-01-25T20:19:07.300+11:00</atom:updated><title>The Buffet that is PRINCE2</title><description>&lt;div class=&quot;separator&quot; style=&quot;width: 100%;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgK6bcFb_F4GxT1jRLwrd--Jvzk6Ymv_cE2sQGuk-PVTZYyG9tEAbfEhL3o-Uh3rAm6ma9WYnVbQD-jxzt9OUIUWYU1NWlGJN2fZLdvduxw4bbv3Gh3TvcWUoX8uGPTrU2Y37r9Z5_LxaqxKL9X8caEkXrvH0cRTZgtcmdnU9FNMwEVKyO6iNEHTaK1/s320/monty-python-mr-creosote.jpg&quot; width=&quot;100%&quot; /&gt;&lt;/div&gt;
&lt;p&gt;I like to think of the &lt;i&gt;PRINCE2 &lt;/i&gt;methodology as a buffet - there&#39;s so much to choose from, but we couldn&#39;t possibly eat it all.&lt;/p&gt;

&lt;p&gt;The reason I liken &lt;i&gt;PRINCE2 &lt;/i&gt;to a buffet is because it offers a plethora of tools designed to help with any kind of project (not just software development).&lt;/p&gt;

&lt;p&gt;You pick and choose what you need on a particular project based on the project size and needs. Trying to use everything in &lt;i&gt;PRINCE2 &lt;/i&gt;would be like trying to eat everything at a buffet (you&#39;d probably be asked to leave the restaurant if you tried).&lt;/p&gt;

&lt;p&gt;Where the buffet/&lt;i&gt;PRINCE2 &lt;/i&gt;analogy starts to break down is when you consider you choose food at a buffet based on your tastes. Some people like roast pork and fill their plate, whilst others may not like it at all.&lt;/p&gt;

&lt;p&gt;You don&#39;t choose &lt;i&gt;PRINCE2 &lt;/i&gt;protocols based on taste (i.e. whether you like the tool or not). You choose based on the appropriateness of the tool to the project. Or do you? Would one project manager avoid a particular protocol out of &lt;i&gt;PRINCE2 &lt;/i&gt;simply because he doesn&#39;t like it, even though another PM would judge it perfectly suitable if he was running the same project?&lt;/p&gt;

&lt;p&gt;Why would such a thing happen? Surely the tools present in &lt;i&gt;PRINCE2 &lt;/i&gt;are objective patterns, tried and true - they should work always when applied correctly and appropriately.&lt;/p&gt;

&lt;p&gt;Take a change request budget for example. This particular tool is great for plugging a gap present in software development&#39;s waterfall model. It could be argued that the application of agile principles would negate the need for a change request budget, but we are focusing on &lt;i&gt;PRINCE2&lt;/i&gt; here.&lt;/p&gt;

&lt;p&gt;A change request budget works by reserving an agreed upon pool of money for changes which may (will) crop up during the course of a project. This can be good because it averts the problem of a project going over-budget when new things are added along the way. But it can also be bad because it almost encourages stake-holders to change their minds mid-project; why not, the money for the change has already been budgeted? The other problem is the knock on effect changes have on delivery time.&lt;/p&gt;

&lt;p&gt;Say there is a project where a PM does institute a change request budget and has a bad experience with it (e.g. it causes a delivery date to slip). They may become gun-shy about using it again. Isn’t this like having a bad experience with a particular kind of food? What if you get a &#39;bad oyster&#39;? After the food poisoning subsides, you vow to never touch oysters again. Other oysters may be perfectly fine, so why are all oysters everywhere being punished?&lt;/p&gt;

&lt;p&gt;Is the moral of the story to judge all &lt;i&gt;PRINCE2 &lt;/i&gt;tools worthy upon the start of a new project, in spite of bad past experiences? From an evolutionary stand-point, when we eat something that doesn&#39;t agree with us, we develop an aversion to that food henceforth as a protection mechanism. But what if it was just us, what if we used the tool incorrectly? When we sniffed that oyster at the buffet and it smelled bit dodgy, why did we go ahead and eat it anyway?&lt;/p&gt;

&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img style=&quot;padding:0px; margin: 0px; border: none; margin-right: 4px; vertical-align: middle;&quot; src=&quot;http://www.bravoweb.com.au/other/icon_rss_feed.png&quot; alt=&quot;Join RSS Feed&quot;/&gt;&lt;a href=&quot;http://feeds.feedburner.com/ProjectManagementForTheWeb&quot;&gt;Subscribe to RSS Feed&lt;/a&gt;.&lt;/div&gt;</description><link>http://pm4web.blogspot.com/2023/01/the-buffet-that-is-prince2.html</link><author>noreply@blogger.com (Louis Marshall)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgK6bcFb_F4GxT1jRLwrd--Jvzk6Ymv_cE2sQGuk-PVTZYyG9tEAbfEhL3o-Uh3rAm6ma9WYnVbQD-jxzt9OUIUWYU1NWlGJN2fZLdvduxw4bbv3Gh3TvcWUoX8uGPTrU2Y37r9Z5_LxaqxKL9X8caEkXrvH0cRTZgtcmdnU9FNMwEVKyO6iNEHTaK1/s72-c/monty-python-mr-creosote.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6566653093437934181.post-3467470659691192216</guid><pubDate>Wed, 23 Feb 2022 13:12:00 +0000</pubDate><atom:updated>2022-02-27T22:46:56.298+11:00</atom:updated><title>Technology is Easy, People are Tough</title><description>&lt;img alt=&quot;Man vs Machine&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgIfVZvMp3Cd5QHbhtNR1SlMjkfx2CKgPT47LO9ejmBOpyCkXiv4inw1jFnVlgEkVtSIX6ZyuIZWEUFy1wrolqsAEVJnvzqUDH1BA_-MKm4SXVDgSNIvkPZ1KaYejW7OCabCaJ0tnzp_T9SY498p2MDUrAKvdNJMQIJJzgk-4j58ctQYH3PXs6vpHRo=w635-h422&quot; style=&quot;width: 100%;&quot;  /&gt;&lt;br /&gt;&lt;br /&gt;Recently I&#39;ve been thinking about my career as a technical project manager and business analyst over the years.&lt;br /&gt;&lt;br /&gt;What I&#39;ve come to realise is that technology isn&#39;t the hard part when it comes to building software, it&#39;s the people.&lt;br /&gt;&lt;br /&gt;Let me qualify that statement by saying I &lt;i&gt;&lt;u&gt;don&#39;t&lt;/u&gt;&lt;/i&gt; mean customers are a pain, or anything of a pejorative nature relating to people on a project. What I mean will become more apparent as you read on.&lt;br /&gt;&lt;br /&gt;I think we&#39;re all aware that anything you need of a technical or factual nature can be found online, in a book, in a blog post, or in a &lt;i&gt;YouTube&lt;/i&gt; video.&lt;br /&gt;&lt;br /&gt;All the knowledge is out there, you just have to look and you will get a definitive answer on how to do something, or how to deal with a problem.&lt;br /&gt;&lt;br /&gt;If you want to know how to connect your website to a third party web service, you contact the vendor and ask for their API. Bang, the programmers send you the documents which explain how to talk to their service.&lt;br /&gt;&lt;br /&gt;You want to know what the best pattern is for dealing with spam, you can research it and find plenty of answers. As to what the &#39;best&#39; answer is, that may be subjective. But consider you started from a point of not knowing anything, and now you have lots of options to choose from.&lt;br /&gt;&lt;br /&gt;Say you&#39;re getting a weird error message in Windows. Looking at the error message itself gives no clue as to what to do next. But chances are someone else out there has experienced the same problem. Simply type in the exact error message into Google and within minutes you&#39;ll discover other people have run into the same dilemma. Rather than having to bungle around trying to figure out how to fix the problem yourself, you can see how other people solved it - &quot;oh, I need to update my Java Runtime Environment. Is that all.&quot;&lt;br /&gt;&lt;br /&gt;My point is this - chances are you can always find a solution online to a technical challenge. Things aren&#39;t so simple when it comes to what I&#39;ll term &#39;people problems&#39; for the sake of this article.&lt;br /&gt;&lt;br /&gt;If you were to type into Google: &#39;Harpreet never seems to contribute to team meetings. He&#39;s a smart guy, why doesn&#39;t he ever say anything?&quot;. There is going to be zero chance you will find a blog article or &lt;i&gt;YouTube &lt;/i&gt;video explaining exactly how to fix your &#39;shy team member&#39; problem, at least nothing specific to Harpreet and your circumstances.&lt;br /&gt;&lt;br /&gt;Let&#39;s follow along another fictional scenario. For reasons unknown to you, Alice and Alfonse just don&#39;t seem to collaborate. It&#39;s not that there&#39;s open antipathy or anything, they just don&#39;t take opportunities to cross-pollinate, bounce ideas off each other, that sort of thing. Once again, you are going to get nothing from Google if you ask it: &#39;why won&#39;t Alice and Alfonse collaborate?&#39;&lt;br /&gt;&lt;br /&gt;You can see pattern to the scenarios I&#39;ve presented, these are &lt;i&gt;people &lt;/i&gt;problems, not &lt;i&gt;technology &lt;/i&gt;problems.&lt;br /&gt;&lt;br /&gt;You probably can find general advice on solving such matters online, but you&#39;ll never find an actual answer like you get with technology questions.&lt;br /&gt;&lt;br /&gt;Will you get better at solving these &#39;people problems&#39; if you read books like:&lt;i&gt; How to Win Friends &amp;amp; Influence People&lt;/i&gt; (Dale Carnegie), &lt;i&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;Never Eat Alone&lt;/i&gt; (Keith Ferrazzi), &lt;i&gt;Words That Work&lt;/i&gt; (Frank Luntz), and so on.&lt;br /&gt;&lt;br /&gt;Definitely yes - and I recommend these books especially for people who aren&#39;t naturally extroverted. I think these are undeveloped skill for most people, so called soft skills. The reason is because this skill is hard to cultivate, and you can&#39;t get quick easy answers.&lt;br /&gt;&lt;br /&gt;As a result of this realisation my reading has leaned more towards books about people rather than just technology. Sutherland&#39;s &lt;i&gt;Scrum: The Art of Doing Twice the Work in Half the Time&lt;/i&gt;  is a good example of this, it’s got a heavy people focused, rather than being a prescriptive &#39;do this, do that&#39; kind of book. It does have some of that in there too, but it&#39;s not the focus. &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img style=&quot;padding:0px; margin: 0px; border: none; margin-right: 4px; vertical-align: middle;&quot; src=&quot;http://www.bravoweb.com.au/other/icon_rss_feed.png&quot; alt=&quot;Join RSS Feed&quot;/&gt;&lt;a href=&quot;http://feeds.feedburner.com/ProjectManagementForTheWeb&quot;&gt;Subscribe to RSS Feed&lt;/a&gt;.&lt;/div&gt;</description><link>http://pm4web.blogspot.com/2022/02/the-technology-is-easy-its-people-that.html</link><author>noreply@blogger.com (Louis Marshall)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEgIfVZvMp3Cd5QHbhtNR1SlMjkfx2CKgPT47LO9ejmBOpyCkXiv4inw1jFnVlgEkVtSIX6ZyuIZWEUFy1wrolqsAEVJnvzqUDH1BA_-MKm4SXVDgSNIvkPZ1KaYejW7OCabCaJ0tnzp_T9SY498p2MDUrAKvdNJMQIJJzgk-4j58ctQYH3PXs6vpHRo=s72-w635-h422-c" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6566653093437934181.post-6990459087166975013</guid><pubDate>Wed, 05 Nov 2014 04:27:00 +0000</pubDate><atom:updated>2022-02-23T20:54:55.291+11:00</atom:updated><title>Information Architecture for the Rest of Us</title><description>For the sake of simplicity, let&#39;s just say &lt;i&gt;Information Architecture&lt;/i&gt; means your navigation structure or the menu on your website. Now before all you IA experts out there grab your pitch-forks and prepare to storm the castle, please realize this article is directed at &#39;normal people&#39;, business owners who&#39;ve had websites made and their developer contributed nothing towards helping them design a well thought-out navigation structure. This often happens because a web developer is a programmer, not an IA specialist (fair enough really, but still a problem).&lt;br /&gt;
&lt;br /&gt;
The only thing I&#39;ll add by way of a simplistic explanation as to what IA is is this: it&#39;s also about &lt;i&gt;how information is organised&lt;/i&gt; on your website, not just &lt;i&gt;how you get to it&lt;/i&gt;.
&lt;br /&gt;
&lt;br /&gt;
The point of this article is to help people handle their own IA, and this is definitely possible. I personally don&#39;t believe basic IA is rocket surgery, anyone can understand it - there&#39;s no highfalutin technology concepts involved, or vague terms like &#39;on the cloud&#39;. Most of it is just common sense, understanding your audience, and adapting your website to accommodate them ← &lt;i&gt;that is the key point&lt;/i&gt;. Basic IA is about arranging your navigation and information in a way which best serves your audience. 
&lt;br /&gt;
&lt;br /&gt;
Navigation design is about organizing information so: 1) people can find it (using &lt;i&gt;their &lt;/i&gt;logic, &lt;i&gt;not yours&lt;/i&gt;), and 2) successfully disseminating the information you want to get out there.
&lt;br /&gt;
&lt;br /&gt;
The &#39;disseminating information&#39; part may sound peculiar, even contradictory considering I&#39;ve just said it&#39;s about making information easy for users to find. Consider this though; you may be a charity organization and are required to make available certain information to satisfy government regulations. Or, there could be rules about using your website you need to tell people about. With this kind of information, most people (visitors) aren&#39;t interested in it, but it still needs to go up somewhere.
&lt;br /&gt;
&lt;br /&gt;
Now that the &#39;disseminating information&#39; portion is out of the way, let&#39;s focus on how to &#39;do IA&#39; on your website. The easiest way I believe is to approach the task by viewing your visitors in terms of customers. This still can be done even if people don&#39;t actually buy something from your website (i.e. I&#39;m using the word &#39;customer&#39; interchangeably with &#39;visitor&#39;).&lt;br /&gt;
&lt;br /&gt;
Once you break down your visitors into different types of customers, you can start designing your menu structure and organizing your text to serve their needs. Some people will only have one &#39;customer type&#39;, whilst others will have four, five or more. The more &#39;customer types&#39; you have, the trickier it gets to do IA (not impossible though, just more thought is required).
&lt;br /&gt;
&lt;br /&gt;
Let&#39;s take an online learning centre as an example. A website which offers online courses in areas such as English, mathematics, and so on. If we were to break down the major types of customers they have, we might come out with this: 1) students, 2) teachers.
&lt;br /&gt;
&lt;br /&gt;
Students are the ones using the website to access material such as study notes, quizzes, etc. Teachers are the ones that login and create the courses, answer questions from students, run webinars, and so on. Now this is a good starting point, but you may have noticed something. There is actually a sub-division to the concept of a &#39;student&#39;. And this is very important. You can have a &lt;i&gt;prospective &lt;/i&gt;student, someone who isn&#39;t a student yet, but would like to become one. This is subtly different to someone who is &lt;i&gt;already &lt;/i&gt;a student. And the reason why this is important is because &lt;i&gt;their needs are acutely different&lt;/i&gt;. On the one hand, a prospective student is probably going to be interested in what the enrollment fees are. Where-as an enrolled student is going to be interested in accessing online resources.
&lt;br /&gt;
&lt;br /&gt;
Identifying and understanding the different customers of your site is the key. Once you know this, you&#39;ll make reasoned decisions about what your menu structure should be like. This is why you sometimes see classifieds-style websites with very overt navigation elements like &#39;For Buyers&#39; and &#39;For Sellers&#39; ← they know these are users with very distinct needs.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_oHEpIo-K3PLqYEE7Psyy2arCfbkcHyJh1Q1kDiOEYd3sgMlY4bt_J-Wlm8cvJakyyjQCGtJWi9jOav23IMQthngReU6PggHri_MYkiduCxY4svc76hiWeeyWHQfMGZO7iWwgKOo4saI/s1600/dilbert_cloud.png&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_oHEpIo-K3PLqYEE7Psyy2arCfbkcHyJh1Q1kDiOEYd3sgMlY4bt_J-Wlm8cvJakyyjQCGtJWi9jOav23IMQthngReU6PggHri_MYkiduCxY4svc76hiWeeyWHQfMGZO7iWwgKOo4saI/s1600/dilbert_cloud.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Thinking about your information in terms of satisfying needs (or helping different types of people complete their particular tasks) is what will guide you when designing your menu structure, including what to name pages and where to put text.&lt;br /&gt;&lt;!-----&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img style=&quot;padding:0px; margin: 0px; border: none; margin-right: 4px; vertical-align: middle;&quot; src=&quot;http://www.bravoweb.com.au/other/icon_rss_feed.png&quot; alt=&quot;Join RSS Feed&quot;/&gt;&lt;a href=&quot;http://feeds.feedburner.com/ProjectManagementForTheWeb&quot;&gt;Subscribe to RSS Feed&lt;/a&gt;.&lt;/div&gt;</description><link>http://pm4web.blogspot.com/2014/11/information-architecture-for-rest-of-us.html</link><author>noreply@blogger.com (Louis Marshall)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_oHEpIo-K3PLqYEE7Psyy2arCfbkcHyJh1Q1kDiOEYd3sgMlY4bt_J-Wlm8cvJakyyjQCGtJWi9jOav23IMQthngReU6PggHri_MYkiduCxY4svc76hiWeeyWHQfMGZO7iWwgKOo4saI/s72-c/dilbert_cloud.png" height="72" width="72"/><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6566653093437934181.post-6397461741566740480</guid><pubDate>Wed, 29 Oct 2014 10:49:00 +0000</pubDate><atom:updated>2022-02-24T00:09:33.324+11:00</atom:updated><title>If You Build It, They Will Come...</title><description>There&#39;s a belief out there that if you have a good idea for an online business, build the website and users will magically appear (what I call the &quot;if you build it, they will come&quot;&amp;nbsp;mentality).
&lt;br /&gt;
&lt;br /&gt;
This worked for &lt;i&gt;Kevin Costner&lt;/i&gt; in &lt;i&gt;Field of Dreams,&lt;/i&gt;&amp;nbsp;but for the rest of us that don&#39;t live in fantasy land, it doesn&#39;t turn out that way.
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYqtokLie5CygsZ0nfCkqsD7ezU9WYOMr8b3MbkF41QjCz0bg789b3VJdTUOAyCz4wLEBL0QtVn_PvKZby7cG8YV2ymUC-cwhtP1PosxoSAZYg4RysZB_MVgDXwnRfyOui-ukRejUr2TQ/s1600/field_of_dreams.jpg&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;146&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYqtokLie5CygsZ0nfCkqsD7ezU9WYOMr8b3MbkF41QjCz0bg789b3VJdTUOAyCz4wLEBL0QtVn_PvKZby7cG8YV2ymUC-cwhtP1PosxoSAZYg4RysZB_MVgDXwnRfyOui-ukRejUr2TQ/s1600/field_of_dreams.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
It&#39;s tricky to talk about this topic because it makes me sound like a kill-joy or naysayer. I don&#39;t like to stand in the way of anyone&#39;s dream, whatever it may be.&lt;br /&gt;
&lt;br /&gt;
However, I often come across websites which obviously look unnurtured or abandoned (e.g. you do a search in major city for something and it comes up with &#39;0 results&#39;). The only thing missing is a Flash animation of a tumble-weed rolling across the screen.
&lt;br /&gt;
&lt;br /&gt;
For whatever reason, the site hasn&#39;t been successfully commercialized. My guess is usually that the business owner has spent all their money on technology, probably outsourced it overseas because it was too expensive to get done by a local digital agency. They most likely haven&#39;t budgeted for any significant form of promotion or marketing. This is like taking a raft to a river without a paddle, and thinking the current is going to get you across to the other side.&lt;br /&gt;
&lt;br /&gt;
And this is what I mean by the &quot;if you build it, they will come&quot; mentality. Maybe this worked back in 1997 when there weren&#39;t many websites around to compete against, but now, big companies pour huge amounts of cash into promotion - competition is exceptionally fierce. Of course, in the absence of big dollars for TV spots, there&#39;s always viral marketing, but for most people this is easier said than done.&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
Another factor which hamstrings a website before it&#39;s even launched is the revenue model. Trying to charge people a subscription fee on an unproven platform is an uphill battle. What about banner advertising then? That&#39;s probably not going to work because the site doesn&#39;t have high enough traffic yet. A hall-mark of the current web epoch are websites that charge nothing (often they are looking for traction, then a buy-out later down the track). If established competitors are offering their services for free, then how on earth can a low traffic start-up hope to gain a foot-hold by launching and asking users to pay?
&lt;br /&gt;
&lt;br /&gt;
It&#39;s the dot com dream which lures people to the idea that web is easy money; this simply isn&#39;t the case. Sure, it costs far less to establish a website compared to opening a bricks and mortar shop. There&#39;s no factory equipment to buy, no materials used in production, cheaper insurance, etc. That&#39;s great, but you can have the most fantastic product in the world, but if no one knows about it, it&#39;s destined to fail.&lt;br /&gt;
&lt;br /&gt;
I guess the point of this article is to not view a new website idea just in terms of the cost of the technology (i.e. paying programmers to build the thing). I often say to clients: &quot;whatever budget you have for the website, have that again for marketing.&quot;  The other advice I give people is this: &quot;technology is the easy part, getting people to use the website is the hard part&quot;. Actually, the technology often isn&#39;t that easy when it comes down to it, but it&#39;s a relative measure - whatever headaches are experienced during the build phase, they are nothing compared to what&#39;s to come once the site is launched (i.e. attracting customers).
&lt;br /&gt;
&lt;br /&gt;
Does this mean it&#39;s all doom and gloom? Don&#39;t bother investing in a start-up idea, too hard, don&#39;t try? No, I don&#39;t believe that, I&#39;ve partnered with business owners to developer online software knowing full-well the marketing budget was tight. Am I also guilty of the &quot;if you build it, they will come&quot; mentality? Perhaps, but the difference is I at least know before-hand visitors won&#39;t magically appear after launch.&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img style=&quot;padding:0px; margin: 0px; border: none; margin-right: 4px; vertical-align: middle;&quot; src=&quot;http://www.bravoweb.com.au/other/icon_rss_feed.png&quot; alt=&quot;Join RSS Feed&quot;/&gt;&lt;a href=&quot;http://feeds.feedburner.com/ProjectManagementForTheWeb&quot;&gt;Subscribe to RSS Feed&lt;/a&gt;.&lt;/div&gt;</description><link>http://pm4web.blogspot.com/2014/10/if-you-build-it-they-will-come.html</link><author>noreply@blogger.com (Louis Marshall)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYqtokLie5CygsZ0nfCkqsD7ezU9WYOMr8b3MbkF41QjCz0bg789b3VJdTUOAyCz4wLEBL0QtVn_PvKZby7cG8YV2ymUC-cwhtP1PosxoSAZYg4RysZB_MVgDXwnRfyOui-ukRejUr2TQ/s72-c/field_of_dreams.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6566653093437934181.post-5199675986754481131</guid><pubDate>Mon, 01 Sep 2014 12:30:00 +0000</pubDate><atom:updated>2022-02-23T20:56:37.541+11:00</atom:updated><title>Are You Missing Out on Maintenance Dollars?</title><description>About 6 years ago I wrote an article explaining the support/maintenance system I use (&lt;a href=&quot;http://pm4web.blogspot.com.au/2008/09/maintenance-blocks-dealing-with-client.html&quot;&gt;&#39;Maintenance Blocks&#39; - Managing Change Requests&lt;/a&gt;). Back when I wrote the original article, the method was untested. I&#39;m happy to report that it has turned out to be a solid and workable approach. To some degree this article is a follow-up, but I&#39;ll go into other methods in common use by freelancers these days for capturing those maintenance dollars.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;A Quick Re-cap&lt;/b&gt;&lt;br /&gt;
There&#39;s a pervasive problem in the web freelance community when it comes to charging for support time, especially amongst those new to the world of contracting. The result is that freelancers miss-out on hundreds if not thousands of dollars each year in maintenance revenue they should be getting. The primary reason for this is thinking it&#39;s somehow bad to charge clients for &#39;quick bits of work&#39;. Let&#39;s take a very realistic example, a client says: &quot;hi John,  can you update my company&#39;s phone number in our footer, thanks&quot;. For whatever reasons, the client doesn&#39;t feel like logging into the CMS and doing it themselves (still very common, no matter how easy CMSs get). Now, for a web developer this is about 3-5 minutes work, perhaps rounding it to 10 minutes when you include navigating to the particular client&#39;s website, logging into the CMS, and sending a confirmation when the task is done.&lt;br /&gt;
&lt;br /&gt;
How do you bill for that 10 minutes? Do you send a client an invoice for 10 minutes worth of work? Not only is that a great way to alienate your client, but you&#39;re wasting your time and the client&#39;s time by adding unnecessary bureaucratic overhead to your day. What&#39;s that I hear you say? Why not just round up, have a policy of 1 hour being the minimum billable time for your work. Sure, you try that, send a client an invoice for $60 for 10 minutes worth of work, see how long that business relationship lasts.
&lt;br /&gt;
&lt;br /&gt;
So does that mean you should let it slide, it&#39;s just 10 minutes - chalk it up to good client relations right? Well, no, now you&#39;re not getting a fair deal there either. It all adds up, in a year, if you do four small tasks for a client, and they each take 15 minutes, that&#39;s an hour of legitimate billable work you&#39;ve missed out on.&lt;br /&gt;
&lt;br /&gt;
Hence the development of the &#39;maintenance blocks&#39; protocol. This solves both problems where a freelancer isn&#39;t missing out on revenue, and a client isn&#39;t bugged with small invoices. In a nut-shell, the concept is like this: get a client to buy &#39;support hours&#39; before-hand. Then when they ask for small pieces of work, you &#39;consume&#39; these hours to undertake the work (with 15 minutes being the smallest &#39;consumable chunk&#39;).&lt;br /&gt;
&lt;br /&gt;
From extensive use, I&#39;ve found that clients are amicable to purchasing 2 hour blocks of support time each time. In a year, about 50% of my clients will purchase a second 2 hour block of support time. I have one large corporate client that buys 20 hour blocks, and they tend to use that up in 6-8 weeks (they&#39;re very active with upgrades and support requests).
&lt;br /&gt;
&lt;br /&gt;
I&#39;ve encountered very little negative resistance to the &#39;support hours&#39; system, business people can understand it and find the fairness in it. They &#39;get&#39; how it works. They have a pool of support time, as they make requests, it decrements the time - everyone&#39;s happy.
&lt;br /&gt;
&lt;br /&gt;
There are other models for capturing support revenue out there, they are actually more profitable compared to the &#39;pay-per-task&#39; approach I use, but personally I think the client gets a raw deal with these other systems. You may ask: &quot;why wouldn&#39;t you use the most profitable mechanism for &lt;b&gt;you&lt;/b&gt;?&quot; I have my reasons, but suffice it to say that in the end it&#39;s up to the individual to decide what system they should use - but the key point is &lt;i&gt;some system &lt;/i&gt;should be used.
&lt;br /&gt;
&lt;br /&gt;
Let&#39;s take a look at other common support models out there. An on-going monthly subscription plan is common here in Australia, especially when the website itself is built cheaply (i.e. the revenue model is based on recouping money over time, and then passive revenue into the future).
&lt;br /&gt;
&lt;br /&gt;
Another structure is where developers base support around charging a large amount for yearly hosting (more than the actual cost of hosting). Again, this provides passive revenue. Most business owners aren&#39;t aware of the price of hosting, that it usually costs next to nothing. So to receive a bill annually for $200 won&#39;t appear unusual.
&lt;br /&gt;
&lt;br /&gt;
On-going subscription payments are more profitable in the long run (hence why it&#39;s favored by so many web agencies). But I think these systems are unfair on the client, call me old fashioned, but I only like to ask clients for payment when I&#39;ve actually done something for them.&lt;br /&gt;
&lt;br /&gt;
I have a few closing notes I wanted to share regarding the maintenance protocol I use. I now refer to it as just &#39;support time&#39; or &#39;support hours&#39;; this is far more understandable to average clients compared to &#39;maintenance blocks&#39; (← what was I thinking when I came up with that name?). Another improvement I made is to display the remaining amount of support time in each client&#39;s CMS:

&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6cyLHl0a0FC2T7ghzoVTlAOp7aT0v5TCJtcbvEnhIEKCrLrJnoXk-Lq325WlRxsKdtGtKdORufdMfZ7uQD1WnfjleDk29W1ODJHnrkOO6dCq4xKKE2MZujE7L80uwNV5oFr1C1frUFHI/s1600/screenshot_1234.jpg&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6cyLHl0a0FC2T7ghzoVTlAOp7aT0v5TCJtcbvEnhIEKCrLrJnoXk-Lq325WlRxsKdtGtKdORufdMfZ7uQD1WnfjleDk29W1ODJHnrkOO6dCq4xKKE2MZujE7L80uwNV5oFr1C1frUFHI/s1600/screenshot_1234.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
By doing this, a client knows how much time they have up their sleeve, and it won&#39;t be a surprise when it comes time to &#39;top-up&#39;.&lt;br /&gt;
&lt;br /&gt;
With my more &#39;corporatey&#39; clients, especially those that buy large chunks of support time, I have a &#39;maintenance log&#39; page in the CMS which they can see. When I do work, I go in and add a line saying what I did and how much time it consumed (e.g. &quot;1 hr - SEO RE title tag updates&quot;). This is akin to timesheets you could say. The reason I do this is so the client feels confident about where their time has been going. I think this is important when you are asking a client to shell out over a thousand dollars to buy 20 hours of support time upfront. I know this sounds like a hassle, and to me it comes pretty easy considering I am a project manager. But when you send a client an email saying: &quot;can I invoice you for another 20 hours of support time?&quot; and they just say: &quot;sure, go ahead&quot; - it&#39;s all worth it. In that email, I also include a screenshot of the maintenance log, showing how their previous 20 hours had been used.&lt;br /&gt;
&lt;br /&gt;
In situations where you&#39;re dealing with corporate clients, I&#39;d encourage you to provide this level of tracking, budgeting is a key responsibility for decision makers in these environments. Arm them with the facts and your worth won&#39;t be questioned in your absence. 
&lt;br /&gt;
&lt;br /&gt;
I&#39;ve noticed over the years that even though I give clients a very easy-to-use CMS, about 80% of them still get me to do even the most basic updates for them. And this is exactly why a &#39;charge-per-task&#39; support system is great.&lt;br /&gt;
&lt;br /&gt;
Hopefully this revisit of the support system I use has been helpful to budding freelancers out there. Remember, your time is valuable just like everyone else, you deserve to be paid for the fruits of your labor. Don&#39;t undervalue your skills, but also don&#39;t take advantage of clients who&#39;ve put their trust in you.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img style=&quot;padding:0px; margin: 0px; border: none; margin-right: 4px; vertical-align: middle;&quot; src=&quot;http://www.bravoweb.com.au/other/icon_rss_feed.png&quot; alt=&quot;Join RSS Feed&quot;/&gt;&lt;a href=&quot;http://feeds.feedburner.com/ProjectManagementForTheWeb&quot;&gt;Subscribe to RSS Feed&lt;/a&gt;.&lt;/div&gt;</description><link>http://pm4web.blogspot.com/2014/11/are-you-missing-out-on-maintenance.html</link><author>noreply@blogger.com (Louis Marshall)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6cyLHl0a0FC2T7ghzoVTlAOp7aT0v5TCJtcbvEnhIEKCrLrJnoXk-Lq325WlRxsKdtGtKdORufdMfZ7uQD1WnfjleDk29W1ODJHnrkOO6dCq4xKKE2MZujE7L80uwNV5oFr1C1frUFHI/s72-c/screenshot_1234.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6566653093437934181.post-6516664462409464276</guid><pubDate>Thu, 01 May 2014 06:51:00 +0000</pubDate><atom:updated>2014-11-10T18:35:19.729+11:00</atom:updated><title>Customization and Change in Software Development</title><description>For years I&#39;ve been looking at APIs and protocols which speed up development but still confer a high degree of customization. Components, code libraries, CMSs and other such pre-packaged modules help with speed, but by their very nature they can stifle customization. By no means am I saying libraries aren&#39;t flexible, the good ones are, but sometimes the investment required to go &#39;off road&#39; is so close to custom coding, you lose the initial benefit of using a library.&lt;br /&gt;
&lt;br /&gt;
In a simplistic sense, the problem is illustrated by situations in which a client asks: &quot;can you change this to...&quot;. Regardless of what development methodology you&#39;re using it, be it Agile or Waterfall, the time to make the change has to come from somewhere. What&#39;s that I hear you say: &quot;don&#39;t worry, we have a change request budget factored into the project&quot;. That&#39;s good, very &lt;i&gt;PRINCE2&lt;/i&gt; of you, and for the most part this works great for small changes. What happens when a change request budget is exhausted, then what? You&#39;re in a situation where you have to ask for extra budget to cover off-spec work. Maybe you&#39;ll get the extra money, maybe you won&#39;t. Or you could take an Agile approach and say: &quot;OK, we can put that in, but we have to drop another feature to cover the resource short-fall&quot;. 
&lt;br /&gt;
&lt;br /&gt;
Although that scenario may sound perfectly reasonable to you and me, my experience has been that it&#39;s hard to convince clients to give up a previously agreed feature. It&#39;s like trying to get candy off a kid in a supermarket, once it&#39;s in their vice-like grip, they&#39;ll throw a tantrum should you try separating them from their prize. 
I do understand why it&#39;s a flawed proposition to say to a client: &quot;if you want that feature, you&#39;ll have to sacrifice another.&quot; Why would they, they&#39;ve thought up a good new feature, it has no connection to any other feature which was previously planned. It&#39;s a perfectly logical argument from an Agile perspective, we have limited resources, if the resources aren&#39;t increased, we need to trim back on previously agreed features.&lt;br /&gt;
&lt;br /&gt;
This issue isn&#39;t as problematic for teams developing in-house software, they know and accept Agile principles, they can come to terms with dropping a good feature for &lt;i&gt;a better one&lt;/i&gt;. But business owners aren&#39;t software designers, why should they understand this particular Agile concept? It&#39;s prioritization, and not everyone is good at that. Then there is the extreme version of this, &lt;i&gt;Minimal Viable Product&lt;/i&gt; (or &lt;i&gt;MVP&lt;/i&gt;). Anyone who can successfully sell that idea to a client should change their business card title to &#39;Lord of the Software&#39;, they are true smiths of the trade in my view.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Enter WordPress, Our Savior...&lt;/b&gt;&lt;br /&gt;
Let&#39;s say &lt;i&gt;WordPress&lt;/i&gt; is currently viewed as a fabulous way of solving the problem of development speed + customization. It&#39;s all about pre-fabrication and bolt-on modules. The reality is &lt;i&gt;WordPress&lt;/i&gt; isn&#39;t immune to the problem of customization, it&#39;s just faster at it. No API or code-base can perfectly predict and cater for the permutations that make each individual businesses unique. Plug-ins are essentially pre-packaged implementations of a [design] pattern, this is what &lt;i&gt;WP&lt;/i&gt; excels at, but doesn&#39;t totally solve the problem of fast customization when it comes to deviations caused by unique business requirements.
&lt;br /&gt;
&lt;br /&gt;
Let&#39;s return to a statement of the problem: clients need customization in order to suit their specific business needs. What if we were to mangle this and say: &quot;clients change their mind because they don&#39;t know what they want, thus putting strain on resources and injecting unpredictability into the project.&quot; I know saying &quot;clients don&#39;t know what they want&quot; sounds bad, but what it really means is business owners don&#39;t understand the software development process, nor should they. Does this then become a matter of &#39;education&#39; - you could try that, but someone&#39;s got to be willing to learn in order to take in something new. Having the &#39;teach the client about software development&#39; mentality leaves a lot to chance. Don&#39;t get me wrong, I try indoctrinate clients into the world of software development as much as I can, but I don&#39;t rely on this as a sole means of steering a project in a predictable manner (nor should you).
&lt;br /&gt;
&lt;br /&gt;
I&#39;ve been trying to reduce the potential of clients changing things as much as possible from the onset. I do this by really probing them early on in the project, it&#39;s not just a matter of asking &lt;i&gt;lots&lt;/i&gt; of questions, but rather the &lt;i&gt;right&lt;/i&gt; questions. The goal is to avoid the potential for change once the project is underway. Now, this is only possible to a certain extent, you&#39;ll go crazy trying to cater for all situations. So if you can&#39;t know all possible outcomes ahead of time, what else can you do to instill predictably?&lt;br /&gt;
&lt;br /&gt;
One approach I&#39;ve been using for year which is very much in the spirit of Agile is suggesting &lt;i&gt;options&lt;/i&gt; rather than asking the client exactly what they want. I know this may sound counter-intuitive, but sometimes it&#39;s easier to tell someone what you &lt;i&gt;don&#39;t want&lt;/i&gt;, rather than what you do. The premise being that by removing the unwanted options, you&#39;re left with a pool of viable options. In practical terms, it&#39;s the difference between saying: &quot;how do you want this?&quot; compared to &quot;we can do it this way... or this way... or another option is...&quot;.&lt;br /&gt;
&lt;br /&gt;
By taking this approach, you reduce the risk of stakeholders changing their mind later down the track (&lt;i&gt;reduce&lt;/i&gt;, not &lt;i&gt;remove&lt;/i&gt;). By offering possibilities, you&#39;re helping with the issue of the client not knowing what they want (maybe they don&#39;t know what&#39;s possible, so you tell them). To me this also seems like proper consultative service, rather than expecting a client to design what they want. A client should only have to tell you what the end goal is, or what task their user is trying to achieve, then it&#39;s up to the software designer to make it so.&lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;Join RSS Feed&quot; src=&quot;http://www.bravoweb.com.au/other/icon_rss_feed.png&quot; /&gt;&lt;a href=&quot;http://feeds.feedburner.com/ProjectManagementForTheWeb&quot;&gt;Subscribe to RSS Feed&lt;/a&gt;.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img style=&quot;padding:0px; margin: 0px; border: none; margin-right: 4px; vertical-align: middle;&quot; src=&quot;http://www.bravoweb.com.au/other/icon_rss_feed.png&quot; alt=&quot;Join RSS Feed&quot;/&gt;&lt;a href=&quot;http://feeds.feedburner.com/ProjectManagementForTheWeb&quot;&gt;Subscribe to RSS Feed&lt;/a&gt;.&lt;/div&gt;</description><link>http://pm4web.blogspot.com/2014/11/customization-and-change-in-software.html</link><author>noreply@blogger.com (Louis Marshall)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6566653093437934181.post-4831986237973024573</guid><pubDate>Sun, 20 Apr 2014 11:42:00 +0000</pubDate><atom:updated>2014-04-22T00:38:57.175+10:00</atom:updated><title>Programming Style Guide for Classic ASP</title><description>&lt;style type=&quot;text/css&quot;&gt;
.blog_preamble { font-size: 13px;  margin: 0 10px 20px 10px; padding: 15px; background-color: #ddf1fa;  }
.code_block { margin: 0 0 0 20px; font-family: &quot;Courier New&quot;; }
.indent_block { margin: 0 0 0 20px; }
.good_code { color: #00b050; }
.bad_code { color: #c00000;  }
.important_point { background-color: #fde9d9; }
.code { font-family: &quot;Courier New&quot;; }
.arrow_point_text { font-family: Verdana !important; font-size: 12px; font-style: italic; }
&lt;/style&gt;

&lt;div class=&quot;blog_preamble&quot;&gt;
The purpose of this article is to present a basic yet complete coding style guide which you can use with your development team.&lt;/div&gt;
&lt;b&gt;General Rules&lt;/b&gt;
&lt;br /&gt;
The reason why a programming team has a style guide is for the sake of conformity. In other words, even though the code is worked upon by 3-4 different people, it should all look like it’s been written by one person. Conformity leads to better maintainability in the long run (e.g. bug fixing becomes faster and adding new features gets easier).
&lt;br /&gt;
&lt;br /&gt;
There are 3 ‘golden rules’ which should be followed when coding on projects, they are:
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;indent_block&quot;&gt;
1. Functions should be no more than one screen length in size&lt;br /&gt;
2. Don’t do anything clever&lt;br /&gt;
3. Don’t do anything stupid&lt;br /&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;i&gt;Further explanation...&lt;/i&gt;
&lt;br /&gt;&lt;br /&gt;
Functions should rarely be longer than one screen length in size. If you find you&#39;ve written a function which is longer than one screen length in size, try break out a block of code into a separate smaller function if it makes sense to do so. 
&lt;br /&gt;&lt;br /&gt;
Also, if you see your function is performing two distinct tasks or operations, break it out into two smaller functions. For example; imagine you are calculating a user’s age, and then displaying their profile in the one function; that should be broken into two separate functions. This rule isn&#39;t always practical, you will occasionally get a long function if you have a large switch statement. You&#39;ll also get a long function if you have HTML/UI code to render. But at least 8 out of 10 times, functions can be written which are no more than a screen-full in size, this is definitely possible. 
&lt;br /&gt;&lt;br /&gt;
The reason why you should be writing small functions is utilising the OOP principle of modularisation. In the long run, this improves the maintainability of code and reduces bugs by breaking up tasks (functions) into smaller units. Imagine you have to come back to debug a block of code 3 months after writing it. Most likely your memory of the function would have begun to fade, it’s easier and quicker to get re-acquainted with a smaller block of code. Also, consider the very real possibility of someone coming back to debug your code, it’s going to be easier for them to understand a smaller block of code vs. a large slab of code.
&lt;br /&gt;&lt;br /&gt;
“Don’t do anything clever” means don’t write unnecessarily complicated code. If you can write 3 lines of code which is easier to understand than 1 line of compact code and does the same thing, write 3 lines. Again, this comes back to maintainability. Someone else may need to debug your code later down the track, so do what you can to make it easier for. If it’s a very straight forward line of code, then it’s OK to put it on a single line - e.g.:
&lt;br /&gt;&lt;br /&gt;

&lt;div class=&quot;code_block&quot;&gt;
if (strFirstName = &quot;&quot;) then Exit Function end if
&lt;/div&gt;
&lt;br /&gt;
“Don’t do anything stupid” isn’t about making mistakes, mistakes are mistakes - they happen, we’re all human. What we are talking about is doing things where you know better. For example: checking-in code before testing it, or not backing-up files before making major changes, or changing a password and not letting other people know about it, or having a problem with your work and keeping it to yourself, rather than telling your manager and asking for help.

&lt;br /&gt;&lt;br /&gt;
&lt;b&gt;CSS&lt;/b&gt;
&lt;br /&gt;

This section relates to writing CSS code which is used by the software&#39;s front-end.
&lt;br /&gt;&lt;br /&gt;
Class names should always be all lowercase: 
&lt;br /&gt;&lt;br /&gt;

&lt;div class=&quot;code_block&quot;&gt;
&lt;div class=&quot;good_code&quot;&gt;Good: login_user_name&lt;/div&gt;
&lt;div class=&quot;bad_code&quot;&gt;Bad: Login_User_Name&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;

Separate each word with an underscore (not a space):
&lt;br /&gt;&lt;br /&gt;

&lt;div class=&quot;code_block&quot;&gt;
&lt;div class=&quot;good_code&quot;&gt;Good: login_user_name&lt;/div&gt;
&lt;div class=&quot;bad_code&quot;&gt;Bad: loginusername&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;

If you need to create a new CSS class, it must be placed in the &lt;code&gt;\css\main.css&lt;/code&gt; file (or whatever file is considered the main CSS file for the software).
&lt;br /&gt;&lt;br /&gt;
If you need to create a whole new CSS include file, it should be placed inside the &lt;code&gt;\css\&lt;/code&gt; folder. Creating an entirely new CSS include is rare, it would only happen if for example  you were adding a large new sub-system to the project (e.g. &lt;code&gt;forum.css&lt;/code&gt;).
&lt;br /&gt;&lt;br /&gt;
CSS class names should be descriptive, but generally no longer than 3 words: 
&lt;br /&gt;&lt;br /&gt;

&lt;div class=&quot;code_block&quot;&gt;
&lt;div class=&quot;good_code&quot;&gt;Good: menu_hover_over&lt;/div&gt;
&lt;div class=&quot;bad_code&quot;&gt;Bad: m_hoverover&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;

&lt;b&gt;ASP Code&lt;/b&gt;
&lt;br /&gt;
Even though &lt;i&gt;vbScript&lt;/i&gt; is a loosely-typed language, it’s advisable to prefix variables with a data type. This occasionally helps with debugging as bugs occur due to data type mismatches.
&lt;br /&gt;&lt;br /&gt;
Use the following data type prefixes: 
&lt;br /&gt;&lt;br /&gt;
&lt;div class=&quot;indent_block&quot;&gt;
&lt;span class=&quot;code&quot;&gt;i&lt;/span&gt; = for integer (e.g. &lt;span class=&quot;code&quot;&gt;iCounter&lt;/span&gt;)&lt;br /&gt;
&lt;span class=&quot;code&quot;&gt;str&lt;/span&gt; = for strings (e.g. &lt;span class=&quot;code&quot;&gt;strStudentName&lt;/span&gt;)&lt;br /&gt;
&lt;span class=&quot;code&quot;&gt;f&lt;/span&gt; = for floats (e.g. &lt;span class=&quot;code&quot;&gt;fDollarAmount&lt;/span&gt;)&lt;br /&gt;
&lt;span class=&quot;code&quot;&gt;obj&lt;/span&gt; = for objects (e.g. &lt;span class=&quot;code&quot;&gt;objRecordSet&lt;/span&gt;)&lt;br /&gt;
&lt;span class=&quot;code&quot;&gt;b&lt;/span&gt; = for bools (e.g. &lt;span class=&quot;code&quot;&gt;bRtnValue&lt;/span&gt;, &lt;span class=&quot;code&quot;&gt;bHasBeenDeleted&lt;/span&gt;)&lt;br /&gt;
&lt;span class=&quot;code&quot;&gt;...Arr&lt;/span&gt; = for arrays (e.g. &lt;span class=&quot;code&quot;&gt;strArrWeekdays&lt;/span&gt;, &lt;span class=&quot;code&quot;&gt;iArrProductIDs&lt;/span&gt;)&lt;br /&gt;
&lt;/div&gt;
&lt;br /&gt;

When using bool values, use the naming convention of bHas... or bIs... (e.g. &lt;code&gt;bHasExpired&lt;/code&gt; or &lt;code&gt;bIsVisible&lt;/code&gt;). This naming approach results in more readable code since  you can write &#39;English-like&#39; questions, for example: 
&lt;br /&gt;&lt;br /&gt;
&lt;div class=&quot;code_block&quot;&gt;
if (bHasBeenDeleted = true) then...
&lt;/div&gt;
&lt;br /&gt;

Use camel notation for variable names:
&lt;br /&gt;&lt;br /&gt;
&lt;div class=&quot;code_block&quot;&gt;
&lt;div class=&quot;good_code&quot;&gt;Good: strFirstName&lt;/div&gt;
&lt;div class=&quot;bad_code&quot;&gt;Bad: strfirstname&lt;/div&gt;
&lt;div class=&quot;bad_code&quot;&gt;Bad: str_first_name&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;

Generally, underscores aren’t used with variable names. The exception to this rule is global variable (which should be rare anyway), these should be prefixed with a &lt;span class=&quot;code&quot;&gt;g_&lt;/span&gt;...:
&lt;br /&gt;&lt;br /&gt;
&lt;div class=&quot;code_block&quot;&gt;
&lt;div class=&quot;good_code&quot;&gt;Good: g_strUserName&lt;/div&gt;
&lt;div class=&quot;bad_code&quot;&gt;Bad: gstrUsername&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;

Use descriptive variable names rather than short indistinct ones, but within reason. Try describing the variable within 3-4 words at most:
&lt;br /&gt;&lt;br/&gt;
&lt;div class=&quot;code_block&quot;&gt;
&lt;div class=&quot;good_code&quot;&gt;Good: iCounter&lt;/div&gt;
&lt;div class=&quot;good_code&quot;&gt;Good: iNumberOfStudentRecords&lt;/div&gt;
&lt;div class=&quot;bad_code&quot;&gt;Bad: x&lt;/div&gt;
&lt;div class=&quot;bad_code&quot;&gt;Bad: i&lt;/div&gt;
&lt;div class=&quot;bad_code&quot;&gt;Bad: iTotalNumberOfStudentRecordsReturned &lt;span class=&quot;arrow_point_text&quot;&gt;&amp;larr; unnecessarily long&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
It’s better to have a variable name like &lt;code&gt;iNumberOfItemsToShow&lt;/code&gt; than &lt;code&gt;iNoItems&lt;/code&gt;. Descriptive variable names make code more readable, which improves maintainability in the long run and reduces debugging time. Imagine you have to  come back to debug your code 3-4 months in the future, the code won’t be fresh in your mind. Also, think about people who may have to debug your code, descriptive variables will help them.
&lt;br /&gt;&lt;br /&gt;

When working with arrays, consider creating constants to use with them. This is especially helpful if the array is intended for use within more than one function. For example:
&lt;br /&gt;&lt;br /&gt;
&lt;div class=&quot;code_block&quot;&gt;
const EMAIL_SUBJECT&lt;br/&gt;
const EMAIL_MESSAGE_BODY&lt;br/&gt;
&lt;br/&gt;
strArrEmailTemplate(EMAIL_SUBJECT)&lt;br/&gt;
strArrEmailTemplate(EMAIL_MESSAGE_BODY)
&lt;/div&gt;
&lt;br /&gt;

This makes it clear what data is being held in the array element. This in turn reduces the risk of bugs in the long run.
&lt;br /&gt;&lt;br /&gt;


&lt;b&gt;Functions&lt;/b&gt;
&lt;br /&gt;
This section talks about how functions should be written within code.
&lt;br /&gt;&lt;br /&gt;
At the beginning of most include files (.inc), there should be a start-up function (e.g. &lt;code&gt;BlogStartUp()&lt;/code&gt;). This is generally used for initialising global variables used within the module/include file:
&lt;br /&gt;&lt;br /&gt;
&lt;div class=&quot;code_block&quot;&gt;
Function BlogStartUp()&lt;br/&gt;
&amp;nbsp;&amp;nbsp;g_strArticleID = Response.QueryString(&quot;article_id&quot;))&lt;br/&gt;
End Function
&lt;/div&gt;
&lt;br /&gt;
We use camel notation for function names, except the first letter of the function is always capitalised:
&lt;br /&gt;&lt;br /&gt;
&lt;div class=&quot;code_block&quot;&gt;
&lt;div class=&quot;good_code&quot;&gt;Good: LoginStartUp()&lt;/div&gt;
&lt;div class=&quot;bad_code&quot;&gt;Bad: loginstartup()&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
Long function names are better than short undescriptive ones (within reason):
&lt;br /&gt;&lt;br /&gt;
&lt;div class=&quot;code_block&quot;&gt;
&lt;div class=&quot;good_code&quot;&gt;Good: GetNumberOfActiveStudents()&lt;/div&gt;
&lt;div class=&quot;bad_code&quot;&gt;Bad: GetVal()&lt;/div&gt;
&lt;div class=&quot;bad_code&quot;&gt;Bad: ProcessStudentRegistrationInformation() &lt;span class=&quot;arrow_point_text&quot;&gt;&amp;larr; that’s far too long&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
You must use local variables as much as possible and pass values to functions, rather than rely on global values. It’s OK to use global variables occasionally, you just shouldn’t rely on  them too much.
&lt;br /&gt;&lt;br /&gt;
If you find you need to pass a large number of values into a function (e.g. 10+), consider passing an array of values instead. For example:
&lt;br /&gt;&lt;br /&gt;
&lt;div class=&quot;code_block&quot;&gt;
&lt;div class=&quot;good_code&quot;&gt;Good: Call SaveStudentData(strArrStudentDetails)&lt;/div&gt;
&lt;div class=&quot;bad_code&quot;&gt;Bad: Call SaveStudentData(strStudentName, iAge, iEnrollmentStatus, iStreetAddress, strSuburb, strZip, iCampus, iGender, iCourseCode)&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
If you have a recordset object, you’re better off passing it to a function &lt;i&gt;ByRef&lt;/i&gt; rather than sending a big list of parameters. For example:
&lt;br /&gt;&lt;br /&gt;
&lt;div class=&quot;code_block&quot;&gt;
Function DrawStudentSummaryList(ByRef objRecordSet)
&lt;/div&gt;
&lt;br /&gt;
When writing a new function, think about including some basic error checking if it makes sense. This is especially important when the function needs a passed value to work. For instance, imagine a SQL query like this within a function:
&lt;br /&gt;&lt;br /&gt;
&lt;div class=&quot;code_block&quot;&gt;
strSqlQuery = &quot;SELECT * FROM tbl_users WHERE (status = &quot; &amp; iStatus &amp; &quot;)
&lt;/div&gt;
&lt;br /&gt;
What would happen if the iStatus parameter was empty? You&#39;d get a script error. To avoid the danger of a crash,  you should add a line of code at the top of the function which looks like this: 
&lt;br /&gt;&lt;br /&gt;
&lt;div class=&quot;code_block&quot;&gt;
if (iStatus = &quot;&quot;) then Exit Function end if
&lt;/div&gt;
&lt;br /&gt;
When a function is created specifically to return a value, prefix it with the word &lt;code&gt;Get...()&lt;/code&gt;, for example:
&lt;br /&gt;&lt;br /&gt;
&lt;div class=&quot;code_block&quot;&gt;
Function GetAccountStatus()&lt;br /&gt;
Function GetNumberOfTickets()&lt;br /&gt;
Function GetUserFullNameByID()
&lt;/div&gt;
&lt;br /&gt;
Functions which perform some form of processing and then return a value should have a specific variable which has the data type plus the word &lt;code&gt;...RtnValue&lt;/code&gt;. For example:
&lt;br /&gt;&lt;br /&gt;
&lt;div class=&quot;code_block&quot;&gt;
strRtnValue&lt;br /&gt;
iRtnValue&lt;br /&gt;
bRtnValue
&lt;/div&gt;
&lt;br /&gt;
When a function is written to save a value of some kind, it should generally be prefixed with the word &lt;code&gt;Set...()&lt;/code&gt;, for example:
&lt;br /&gt;&lt;br /&gt;
&lt;div class=&quot;code_block&quot;&gt;
Function SetActiveMenuItem()&lt;br /&gt;
Function SetUserLastLoginTime()&lt;br /&gt;
&lt;/div&gt;
&lt;br /&gt;
If a function contains HTML code and is rendering front-end UI of some kind, it needs to be prefixed with either &lt;span class=&quot;code&quot;&gt;Render...()&lt;/span&gt; or &lt;span class=&quot;code&quot;&gt;Draw...()&lt;/span&gt;, and post-fixed it with the word ...HTML(). For example: 
&lt;br /&gt;&lt;br /&gt;
&lt;div class=&quot;code_block&quot;&gt;
RenderLoginBoxHTML()&lt;br /&gt;
DrawDateDropListHTML()
&lt;/div&gt;

&lt;br /&gt;

&lt;b&gt;Query Strings&lt;/b&gt;
&lt;br /&gt;
When creating query string variables to be passed via hyperlinks, they should be named all lowercase with underscores in place of spaces. If an ID is being passed, then the query string name should end with ...&lt;span class=&quot;code&quot;&gt;_id&lt;/span&gt; (e.g. &lt;span class=&quot;code&quot;&gt;blog.asp?blog_id=45&lt;/span&gt;). Query string variables should be descriptive, but generally no longer than 3-4 words in length:
&lt;br /&gt;&lt;br /&gt;
&lt;div class=&quot;code_block&quot;&gt;
&lt;div class=&quot;good_code&quot;&gt;Good example: &lt;code&gt;&amp;lt;a href=&quot;blog.asp?blog_id=1&quot;&amp;gt;Buying a Cat&amp;lt;/a&amp;gt; &lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;bad_code&quot;&gt;Bad example: &lt;code&gt;&amp;lt;a href=&quot;blog.asp?ID=1&quot;&amp;gt;Camping&amp;lt;/a&amp;gt; &lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;

&lt;b&gt;Form Controls&lt;/b&gt;
&lt;br /&gt;
Form fields should be named in a manner which gives an indication of their control type, for example:
&lt;br /&gt;&lt;br /&gt;
&lt;div class=&quot;code_block&quot;&gt;
&lt;code&gt;
&amp;lt;input type=&quot;text&quot; name=&quot;txt_age&quot; value=&quot;&quot; maxlength=&quot;8&quot; /&amp;gt;&lt;br /&gt;
&amp;lt;input type=&quot;checkbox&quot; name=&quot;chk_agree_to_terms&quot; value=&quot;1&quot; /&amp;gt;&lt;br /&gt;
&amp;lt;input type=&quot;radio&quot; name=&quot;rdo_gender&quot; value=&quot;1&quot; /&amp;gt;Male&lt;br /&gt;
&amp;lt;textarea name=&quot;txt_about_me&quot;&amp;gt;&amp;lt;/textarea&amp;gt;&lt;br /&gt;
&amp;lt;select name=&quot;drp_day&quot;&amp;gt;&amp;lt;option value=&quot;1&quot;&amp;gt;1&amp;lt;/option&amp;gt;&amp;lt;/select&gt;
&lt;/code&gt;
&lt;/div&gt;
&lt;br /&gt;
This naming convention can be useful when it comes to server-side logic. Knowing the control type helps with debugging or processing data before inserting it into the database.
&lt;br /&gt;&lt;br /&gt;
Notes: 
&lt;br /&gt;&lt;br /&gt;
&lt;div class=&quot;indent_block&quot;&gt;
1) textbox controls should always have their maxlength attribute set
2) textarea controls use the same prefix as textbox controls (it’s just text after all).
&lt;/div&gt;
&lt;br /&gt;
If you need to use an ID with a control due to JavaScript interactivity, the naming convention for IDs has the control type at the end rather than as a prefix. For example:
&lt;br /&gt;&lt;br /&gt;
&lt;div class=&quot;code_block&quot;&gt;
&lt;code&gt;
&amp;lt;input type=&quot;text&quot; name=&quot;txt_age&quot; value=&quot;&quot; id=&quot;age_textbox&quot; /&amp;gt;&lt;br /&gt;&lt;br /&gt;
&amp;lt;input type=&quot;checkbox&quot; name=&quot;chk_tax&quot; value=&quot;1&quot; id=&quot;tax_checkbox&quot; /&amp;gt;&lt;br /&gt;&lt;br /&gt;
&amp;lt;input type=&quot;radio&quot; name=&quot;rdo_join&quot; value=&quot;1&quot; id=&quot;join_radio&quot; /&amp;gt;Yes&lt;br /&gt;&lt;br /&gt;
&amp;lt;textarea name=&quot;txt_about_me&quot; id=&quot;about_me_textarea&quot;&amp;gt;&amp;lt;/textarea&amp;gt;&lt;br /&gt;&lt;br /&gt;
&amp;lt;select name=&quot;drp_day&quot; id=&quot;day_droplist&quot;&amp;gt;&amp;lt;option value=&quot;1&quot;&amp;gt;...
&lt;/code&gt;
&lt;/div&gt;
&lt;br /&gt;
Note: the ID attribute is named differently to the form control name to avoid confusion between the two.

&lt;br /&gt;&lt;br /&gt;
&lt;b&gt;File Names&lt;/b&gt;
&lt;br /&gt;
This section relates to the naming conventions used for all files found within the website’s folders.
&lt;br /&gt;&lt;br /&gt;
File names should always be all lower case and use underscores instead of spaces:
&lt;br /&gt;&lt;br /&gt;
&lt;div class=&quot;code_block&quot;&gt;
&lt;div class=&quot;good_code&quot;&gt;Good: database_connection.asp&lt;/div&gt;
&lt;div class=&quot;bad_code&quot;&gt;Bad: Database Connection.asp&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
Longer descriptive file names are preferable to short ones which give no indication of what the file is (within reason). Usually a maximum of 3-4 words will do:
&lt;br /&gt;&lt;br /&gt;
&lt;div class=&quot;code_block&quot;&gt;
&lt;div class=&quot;good_code&quot;&gt;Good: duplicate_username_check.asp&lt;/div&gt;
&lt;div class=&quot;bad_code&quot;&gt;Bad: dup_check.asp&lt;/div&gt;
&lt;div class=&quot;bad_code&quot;&gt;Bad: perform_duplicate_username_check_operation.asp &lt;span class=&quot;arrow_point_text&quot;&gt;&amp;larr; too long&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
These same rules apply for all other file types like JPEGs and PNGs (note: GIFs are rarely used these days, they’ve mostly been replaced by PNGs).
&lt;br /&gt;&lt;br /&gt;
The reason for descriptive file names is it helps when trying to identify what a particular file does amongst a larger list of files without having to open up the file.
&lt;br /&gt;&lt;br /&gt;

&lt;b&gt;Database&lt;/b&gt;
&lt;br /&gt;
This section covers conventions to be used when working with database tables and fields.
&lt;br /&gt;&lt;br /&gt;
The rules for naming database tables are as follows: 
&lt;br /&gt;&lt;br /&gt;
&lt;div class=&quot;indent_block&quot;&gt;
• use only lowercase characters &lt;br /&gt;
• use underscores in place of spaces&lt;br /&gt;
• table names are prefixed with the letters &lt;span class=&quot;code&quot;&gt;tbl_&lt;/span&gt;&lt;br /&gt;
• table names should rarely be more than 3-4 words in length&lt;br /&gt;
• tables should nearly always end in ‘s’ (indicating plural)
&lt;/div&gt;
&lt;br /&gt;
For example:
&lt;br /&gt;&lt;br /&gt;
&lt;div class=&quot;code_block&quot;&gt;
&lt;div class=&quot;good_code&quot;&gt;Good: tbl_students&lt;/div&gt;
&lt;div class=&quot;good_code&quot;&gt;Good: tbl_countries&lt;/div&gt;
&lt;div class=&quot;bad_code&quot;&gt;Bad: Error Code &lt;span class=&quot;arrow_point_text&quot;&gt;&amp;larr; should be: tbl_error_codes&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;bad_code&quot;&gt;Bad: UniversityStudentRecordDetails  &lt;span class=&quot;arrow_point_text&quot;&gt;&amp;larr; too long&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br/&gt;
Datababase fields should follow these rules:
&lt;br/&gt;&lt;br /&gt;
&lt;div class=&quot;indent_block&quot;&gt;
• use only lowercase characters &lt;br /&gt;
• use underscores in place of spaces&lt;br /&gt;
• primary and foreign keys must start with &lt;span class=&quot;code&quot;&gt;id_&lt;/span&gt;&lt;br /&gt;
• rarely be more than 3-4 words in length&lt;br /&gt;
&lt;/div&gt;
&lt;br/&gt;
For example:
&lt;br/&gt;&lt;br/&gt;
&lt;div class=&quot;code_block&quot;&gt;
&lt;div class=&quot;good_code&quot;&gt;Good: id_student&lt;/div&gt;
&lt;div class=&quot;good_code&quot;&gt;Good: first_name&lt;/div&gt;
&lt;div class=&quot;bad_code&quot;&gt;Bad: enrolmentStatus &lt;span class=&quot;arrow_point_text&quot;&gt;&amp;larr; should be: enrolment_status&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;bad_code&quot;&gt;Bad: recordID &lt;span class=&quot;arrow_point_text&quot;&gt;&amp;larr; should be: id_record&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br/&gt;
Note: one of the reasons why primary keys always start with id_ relates to protecting against SQL-injection hacks. You can have a wrapper function like &lt;code&gt;QStr()&lt;/code&gt; and &lt;code&gt;RForm()&lt;/code&gt; which strip the characters id_ from strings.
&lt;br/&gt;&lt;br/&gt;
When creating fields used to store a bool condition (e.g. yes/no, active/inactive, show photo/don’t show photo, etc) - use a tinyint data type rather than a bit. 1 is used to indicate true and 0 represents false. Using an int provides flexibility in case more conditions are added in future (e.g. 1 = active, 0 = inactive, 2 = suspended).




&lt;br /&gt;&lt;br /&gt;
&lt;img alt=&quot;Join RSS Feed&quot; src=&quot;http://www.bravoweb.com.au/other/icon_rss_feed.png&quot; style=&quot;padding: 0 3px 0 0; vertical-align: middle;&quot; /&gt;&lt;a href=&quot;http://feeds.feedburner.com/ProjectManagementForTheWeb&quot;&gt;Subscribe to RSS Feed&lt;/a&gt;.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img style=&quot;padding:0px; margin: 0px; border: none; margin-right: 4px; vertical-align: middle;&quot; src=&quot;http://www.bravoweb.com.au/other/icon_rss_feed.png&quot; alt=&quot;Join RSS Feed&quot;/&gt;&lt;a href=&quot;http://feeds.feedburner.com/ProjectManagementForTheWeb&quot;&gt;Subscribe to RSS Feed&lt;/a&gt;.&lt;/div&gt;</description><link>http://pm4web.blogspot.com/2014/04/programming-style-guide-for-classic-asp.html</link><author>noreply@blogger.com (Louis Marshall)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6566653093437934181.post-7184176870957672414</guid><pubDate>Wed, 05 Jan 2011 08:28:00 +0000</pubDate><atom:updated>2014-04-19T22:43:08.856+10:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Agile</category><category domain="http://www.blogger.com/atom/ns#">client</category><category domain="http://www.blogger.com/atom/ns#">protocol</category><category domain="http://www.blogger.com/atom/ns#">SDLC</category><category domain="http://www.blogger.com/atom/ns#">software development process</category><title>Agile: It&amp;#39;s Not All Sugar &amp;amp; Spice</title><description>&lt;i&gt;Why client education is needed when going Agile.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;There is a big internal battle raging within software development today; it&#39;s between satisfying the needs of the client and safe-guarding against disaster. This shouldn&#39;t inspire a paranoid outlook, but rather invite caution and awareness.&lt;br /&gt;&lt;br /&gt;The old way of making software, like what I was taught back at college, was to write everything down in a spec and treat that document like the stone tablets Moses brought back from the mountain. This &#39;big spec&#39; approach produced long boring documents no one wanted to read, let alone write. The spec was great for developers because it protected them, at any point of deviation programmers could tell a client &quot;if it&#39;s not in the spec, you can&#39;t have it - tough luck.&quot;&lt;br /&gt;&lt;br /&gt;But as you can see, that isn&#39;t exactly good customer service.&lt;br /&gt;&lt;br /&gt;Eventually Agile burst onto the scene, with its shinny snake-skin boots and promise of a better tomorrow. The method&#39;s greatest strength was its total appreciation and encouragement of the cyclic nature of software development. It was all about &#39;small chunking&#39; things, favoring less yet more stable features, and demonstrating continual momentum. But this article isn&#39;t a treatise on Agile; there are plenty of books out there on that. Instead, this article focuses on the need for better  education in an effort to improve a client&#39;s &#39;Agile experience.&#39;&lt;br /&gt;&lt;br /&gt;One of the biggest things Agile did was put power back in the client&#39;s hands by turning the process into a cyclical endeavor. Instead of writing up a huge spec, and then employing the &#39;freight train&#39; approach to coding where there&#39;s no stopping to take account of new information, little circles of development took place (i.e. &lt;i&gt;sprints&lt;/i&gt;).&lt;br /&gt;&lt;br /&gt;And here lies the first potential misconception; that Agile is about &#39;winging it&#39; because there&#39;s less documentation. Nothing could be further from the truth. If you gathered together all the email communiqués flying back and forth between developer and client, you&#39;d probably find there is quite a lot of documentation. Feeding, for want of a better word, a client small chunks of information is far more digestible. In practice, this could be as simple as sending an email containing a single screenshot and asking the client &quot;how does this look, do you need me to change anything?&quot;&lt;br /&gt;&lt;br /&gt;But, as with any system, there are downsides. Agile solves some problems, but introduces others. And the problems I have encountered are largely due to a lack of education. Although Agile is far more responsive to changes and gets the ball rolling sooner, it has the drawback of requiring the client to have a deeper understanding of SDLC. With waterfall model, clients didn&#39;t need to know as much.&lt;br /&gt;&lt;br /&gt;You still get problems with &#39;scope creep&#39; in Agile, mainly because the client doesn&#39;t understand how it works. And why should they? They&#39;re not programmers. Some people will take it on faith that &#39;this is the way it&#39;s done&#39;, and others will require an explanation. This explanation will obviously eat-up project time in the form of consultancy, and that&#39;s where the problem lies. The temptation will be to skip this investment in education (and the client is unlikely to ask either).&lt;br /&gt;&lt;br /&gt;You may encounter a situation where a client decides to willfully disregard established protocol (it doesn&#39;t happen often, but it can happen). Because the client isn&#39;t directly part of your team, your ability to get them back on board may be limited. For the sake of keeping the piece, you may begrudgingly decide to do a substantial amount of work for free, even though your contract says you are in the right. This may be a bitter (and costly) pill to swallow, but you either believe the customer is always right, or you don&#39;t. &lt;br /&gt;&lt;br /&gt;Mid-project is not a good time to air your grievances, in fact, no time is a good time. Your turn will come at the end of the project where you decide if you wish to keep the client or not. Or you may decide to hike-up their hourly rate to account for the increased risks involved in working with them.&lt;br /&gt;&lt;br /&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 400px; height: 132px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwo4956aqZB3kGkU07I5C2mwHJGrLvpTeeVVNa0hn8pMTc7yC0ErGDjKzzAE2sX0rFdCmn6IFkxrlPMhpY8KBhJQkfY3My3nMw_e1oLqh4GOkldNDaZRbcMMrmdOVHempSnEpI1TK83Ws/s400/dilbert_agile_programming.png&quot; border=&quot;0&quot; alt=&quot;Dilbert - Agile Programming&quot; id=&quot;BLOGGER_PHOTO_ID_5558621314921338914&quot; /&gt;&lt;br /&gt;&lt;br /&gt;The drive for better education is all about bringing the client into your world (i.e. software development). It&#39;s simply the logical counter-part of being brought into their world (i.e. their business domain). For the project to succeed, developers must have a more than passing understanding of the client&#39;s business. So it only makes sense that the reverse also be true. This has traditionally not been an expectation in the client-to-supplier relationship, but hey, things change.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.bravoweb.com.au/other/icon_rss_feed.png&quot; alt=&quot;Join RSS Feed&quot;/&gt;&lt;a href=&quot;http://feeds.feedburner.com/ProjectManagementForTheWeb&quot;&gt;Subscribe to RSS Feed&lt;/a&gt;.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img style=&quot;padding:0px; margin: 0px; border: none; margin-right: 4px; vertical-align: middle;&quot; src=&quot;http://www.bravoweb.com.au/other/icon_rss_feed.png&quot; alt=&quot;Join RSS Feed&quot;/&gt;&lt;a href=&quot;http://feeds.feedburner.com/ProjectManagementForTheWeb&quot;&gt;Subscribe to RSS Feed&lt;/a&gt;.&lt;/div&gt;</description><link>http://pm4web.blogspot.com/2011/01/agile-its-not-all-sugar-spice.html</link><author>noreply@blogger.com (Louis Marshall)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwo4956aqZB3kGkU07I5C2mwHJGrLvpTeeVVNa0hn8pMTc7yC0ErGDjKzzAE2sX0rFdCmn6IFkxrlPMhpY8KBhJQkfY3My3nMw_e1oLqh4GOkldNDaZRbcMMrmdOVHempSnEpI1TK83Ws/s72-c/dilbert_agile_programming.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6566653093437934181.post-339983062182332339</guid><pubDate>Fri, 19 Nov 2010 10:23:00 +0000</pubDate><atom:updated>2011-05-22T00:38:22.821+10:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">change control</category><category domain="http://www.blogger.com/atom/ns#">project management</category><category domain="http://www.blogger.com/atom/ns#">web development</category><category domain="http://www.blogger.com/atom/ns#">websites</category><title>10 Tips for Keeping Momentum on Web Projects</title><description>&lt;i&gt;Tricks for avoiding stagnation and block points on a web project.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;There are many hidden perils lurking in the midst of a web project. So many little devils which conspire against you delivering on time. The nature of a project is that it is a unique undertaking, so unless you can see into the future, chances are there will be hiccups along the way.&lt;br /&gt;&lt;br /&gt;If we know there is trouble on the horizon, then we can be prepared. The idea isn&#39;t just to have a plan ready for dealing with what maladies may befall your project, but also to use strategies to nip things in the bud before they become a problem.&lt;br /&gt;&lt;br /&gt;To that end, I present 10 techniques I use to keep things moving along smoothly on a project. Some of these may seem counter-intuitive at first, so you will have to use your best judgment about what approaches you feel comfortable using.&lt;br /&gt;&lt;br /&gt;Before I get into the meat of the article, I should say I&#39;m not covering obvious things like &#39;use a project schedule&#39; and &#39;write a spec&#39; - if you aren&#39;t already doing that, then no amount of clever tricks will save you.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;1. Get the ball rolling early on things involving third parties&lt;/i&gt; - a good example is live hosting, you can get seriously bogged down if you leave this until just prior to launch. If you don&#39;t have full control over the server it makes you heavily reliant on tech support to do things for you. Another example is e-commerce gateway integration. Do you really want to wait until the last minute to find out if your code is talking to the gateway provider&#39;s server properly?&lt;br /&gt;&lt;br /&gt;&lt;i&gt;2. Have settings accessible via the CMS&lt;/i&gt; - I&#39;ve found it&#39;s preferable to have settings adjustable via the CMS rather than have them in code or in a string table. Options like Google Analytics script code could be placed inside a &lt;i&gt;System Settings&lt;/i&gt; or &lt;i&gt;Website Configuration&lt;/i&gt; page. Doing this lets non-technical people deal with last minute changes.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;3. When there&#39;s two ways to code a simple feature, code them both rather than wait for approval&lt;/i&gt; - if the features each take only 15 minutes to implement, just code them both and enable one. You have a 50/50 chance of getting it right. If the client decides they&#39;d rather have it the other way around, you switch on the alternate option (preferably via a setting in the CMS). The amount of effort you would expend going back and forth to get a concrete decision from the client is probably going to exceed the 15 minutes it would take to just code the alternate feature.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;4. Put in the wrong content&lt;/i&gt; - this may sound counter-intuitive and you&#39;d expect it to lead to an unhappy customer every time (but it doesn&#39;t, &lt;i&gt;most&lt;/i&gt; of the time). This is &lt;i&gt;only for preview/staging versions of the client&#39;s project&lt;/i&gt;, not their live site. If the client hasn&#39;t made content available to you, then use the closest match. Something off their old website perhaps, or workable place-holder text. This does one of two things; the client may say &quot;hey, that&#39;s the wrong text&quot;, to which you reply &quot;OK, can you give me the correct text please?&quot;, or it gets them started by providing a basis to work from (as opposed to starting from scratch).&lt;br /&gt;&lt;br /&gt;&lt;i&gt;5. Have a change request budget&lt;/i&gt; - this concept is straight out of PRINCE2 methodology. It basically says when you make a fee proposal/tender, include a chunk of budget for unexpected features. So for an eighty hour project, I would have between 5-10 hours of change request budget. The good thing about this is when the client asks for something off-spec, you don&#39;t have to wait for approval or try and convince them to pay for it (they already have). It can also help cut down on admin tasks since you don&#39;t have to track the item for inclusion in a future invoice.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;6. Get clients thinking about what they hadn&#39;t thought about, early&lt;/i&gt; - a good example of this would be a social media strategy utilising Facebook (assuming it&#39;s appropriate for the business). A client may not have thought about Facebook, bringing it up early may have them saying &quot;hey, I hadn&#39;t thought of that&quot;. That gives you time to provide them with some advice or reading material. Leaving it to the last minute may throw them off, they may even decide to delay launch to consider social media options.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;7. Don&#39;t just offer options, offer a recommendation&lt;/i&gt; - if you talk to a client about a feature where there&#39;s two or more paths to choose from, first describe the available options, then the pros and cons for each, and finally make a recommendation on what&#39;s most suitable and why. This helps clients who are cautious of making a decision because they don&#39;t understand the technology at play. An example would be if a client asked whether its better to integrate a blog into their website or use a well-established one like &lt;i&gt;Blogger&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;8. Use a bug tracking system&lt;/i&gt; - scope creep can seriously side-track a project, potentially delaying the original launch date considerably. An issue management system lets you deal with off-spec features in a controlled way. If a client asks for a feature and you say no, that&#39;s just bad customer service. If you say yes to everything, you&#39;ll be coding forever. Instead, if you say &quot;yes, but its been flagged for post launch implementation&quot;, you should be able to segment off features for future coding. Unfortunately this doesn&#39;t always work, sometimes clients are adamant that a feature needs to be included immediately.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;9. Start early on tasks which require client approval&lt;/i&gt; - an example of this would be a storyboard for a Flash animation. The client may need a few days to review the document. Connected to this tip is starting early on things which only the client can do. A good example would be applying for an Internet merchant account. The bank will most likely only deal directly with the client due to security considerations.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;10. Begin some work before the project deposit arrives&lt;/i&gt; - if you&#39;re fairly certain the project is going to proceed, do a couple of hours work even before the deposit has arrived. This would be stuff like preparing the project folder, checking that the domain delegation details the client has provided actually work, minor things (but no coding). This gives you a head-start on the project, its creating momentum from the get-go.&lt;br /&gt;&lt;br /&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 392px; height: 126px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEii4Tfi_E8M2kO8WIXH5jhvFDE1qAooSqsQxoDlvw6w9Xpio2lGBzYePD6XcIIn0cQWITi81eSjVUhz79qLQ2OOeXjheDJTSOONfT4i8FaBTydXmOPQDkPCCGm2Ma9n9Fen4rSL9Enebxk/s400/project_plan_for_10_second_fix.png&quot; border=&quot;0&quot; alt=&quot;Dilbert - project plan for 10 second task&quot; id=&quot;BLOGGER_PHOTO_ID_5541398825886847714&quot; /&gt;&lt;br /&gt;&lt;br /&gt;Keeping momentum on a project isn&#39;t just about following documented procedures. The role of creativity and a willingness to take risks shouldn&#39;t be underestimated. Novel solutions which produce results are either praised or go unnoticed, whilst failures may attract negative feedback. The trick is for your successes to significantly outweigh your failures.&lt;br /&gt;&lt;br /&gt;&lt;img style=&quot;margin-right: 3px&quot; src=&quot;http://www.bravoweb.com.au/other/icon_rss_feed.png&quot; alt=&quot;Join RSS Feed&quot;/&gt;&lt;a href=&quot;http://feeds.feedburner.com/ProjectManagementForTheWeb&quot;&gt;Subscribe to RSS Feed&lt;/a&gt;.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img style=&quot;padding:0px; margin: 0px; border: none; margin-right: 4px; vertical-align: middle;&quot; src=&quot;http://www.bravoweb.com.au/other/icon_rss_feed.png&quot; alt=&quot;Join RSS Feed&quot;/&gt;&lt;a href=&quot;http://feeds.feedburner.com/ProjectManagementForTheWeb&quot;&gt;Subscribe to RSS Feed&lt;/a&gt;.&lt;/div&gt;</description><link>http://pm4web.blogspot.com/2010/11/10-tips-for-keeping-momentum-on-web.html</link><author>noreply@blogger.com (Louis Marshall)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEii4Tfi_E8M2kO8WIXH5jhvFDE1qAooSqsQxoDlvw6w9Xpio2lGBzYePD6XcIIn0cQWITi81eSjVUhz79qLQ2OOeXjheDJTSOONfT4i8FaBTydXmOPQDkPCCGm2Ma9n9Fen4rSL9Enebxk/s72-c/project_plan_for_10_second_fix.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6566653093437934181.post-7766202076838865598</guid><pubDate>Sat, 06 Nov 2010 07:02:00 +0000</pubDate><atom:updated>2014-04-20T11:17:56.354+10:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Absolute Unique Visitors</category><category domain="http://www.blogger.com/atom/ns#">Bounce Rate</category><category domain="http://www.blogger.com/atom/ns#">Google Analytics</category><category domain="http://www.blogger.com/atom/ns#">Time on Site</category><category domain="http://www.blogger.com/atom/ns#">Website Stats</category><title>Understanding Google Analytics Reports</title><description>&lt;i&gt;A primer on interpreting the statistics inside analytics PDF reports.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
This article will help you figure out what the statistics inside a &lt;i&gt;Google Analytics&lt;/i&gt; report mean. This is not to be confused with the full service provided when logged into the &lt;i&gt;Google Analytics&lt;/i&gt; website. From within the &lt;i&gt;Analytics&lt;/i&gt; website, you can set it to automatically email you a periodic summary report (e.g. once a week). The report itself arrives in your inbox as a PDF attachment.&lt;br /&gt;
&lt;br /&gt;
One last note before we move onto the interesting stuff; this article has been written to help non-technical people (e.g. an accountant who&#39;s just got their hands on their first website). So, if you are a computer science major, you may read parts of this article and think to yourself &quot;that&#39;s not entirely true&quot;. And you would be correct, but I have intentionally made a few generalizations for the sake of brevity.&lt;br /&gt;
&lt;br /&gt;
If we are going to talk about &lt;i&gt;Analytics&lt;/i&gt; stats, we need to first ask ourselves &quot;what&#39;s the point of all this data?&quot; Sure, the figures can demonstrate that a ROI has been achieved (e.g. &quot;was my money well spent, or should I have just gone down to the casino instead?&quot;). But information without application is largely useless. The statistics should &lt;i&gt;guide and shape the decisions you make in future&lt;/i&gt; (we&#39;ll cover some examples in a moment).&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Absolute Unique Visitors&lt;/b&gt;&lt;br /&gt;
Arguably the most important figure is contained on page 2 of the report; &lt;i&gt;Absolute Unique Visitors&lt;/i&gt;.&lt;br /&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsm6levbLTTEEztldTnPC25UXj46KE1rpOO9doQzrWo14CaaH6cRHpdmg-qYvSS1VLDhHEEdihJ42kYl9tZvqtgaWWXJ7n26yuEaJ_NpPIuveMit264GdNLUDOKyuIrkuIgWtfBb2n4k0/s400/absolute_unique_visitors.jpg&quot; id=&quot;BLOGGER_PHOTO_ID_5536334108069938578&quot; style=&quot;cursor: hand; cursor: pointer; height: 231px; width: 331px;&quot; /&gt;&lt;br /&gt;
This stat is largely self explanatory; it&#39;s the number of people coming to your website. For most people it&#39;s the number which says whether their website is being successful or not. When a website first launches this figure may be quite low since people don&#39;t know about the site yet. Over time you&#39;d expect this figure to increase, but don&#39;t be surprised if it plateaus eventually due to stagnant content and a lack of &lt;i&gt;Search Engine Optimization&lt;/i&gt; (SEO).&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Time on Site&lt;/b&gt;&lt;br /&gt;
Another stat worth keeping an eye on is &lt;i&gt;Time on Site&lt;/i&gt;.&lt;br /&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDBKuciCy8_iXGYfA4A-nHv1L8wwSTXbfFZxaB_TwyGfLPJHedMhi-6kvd4KdAOaIC-qxQBCcyu5DcS9_K76BN8ecdHs-voQf89S-Vx8UF1Awf79CXgX0j5J12uu4hSg-JFsaXCoXFtmE/s400/time_on_site.png&quot; id=&quot;BLOGGER_PHOTO_ID_5536334736324586610&quot; style=&quot;cursor: hand; cursor: pointer; height: 172px; width: 331px;&quot; /&gt;&lt;br /&gt;
This is the average amount of time people are spending looking around your site before they decide to go off and do something more important like watch Big Brother or floss their teeth. For most websites a low figure (e.g. 10-20 seconds), means something is seriously wrong. A low &lt;i&gt;Time on Site&lt;/i&gt; tells us people just aren&#39;t hanging around for some reason.&lt;br /&gt;
&lt;br /&gt;
There are some instances where a low &lt;i&gt;Time on Site&lt;/i&gt; is not necessarily a bad thing. Imagine a website with weather information, it doesn&#39;t take that long to check if it&#39;s going to rain or not.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Bounce Rate&lt;/b&gt;&lt;br /&gt;
&lt;i&gt;Bounce Rate&lt;/i&gt; appears on page 2 of the report and is of vital significance.&lt;br /&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEion-8twxiNsKA1QVbKvkeXkX1V7LT9u3Au-rqg_qsFu8-QRRuASJ8_dHiBIkf12L_90IQWm8ipB-c8qBLZA410KiWSFJbERpW8BmzmpoG7THk6Ry7Hl3XFuS5Zotl9n6ueW1b-6qK3TIc/s400/bounce_rate.png&quot; id=&quot;BLOGGER_PHOTO_ID_5536335228882048658&quot; style=&quot;cursor: hand; cursor: pointer; height: 176px; width: 331px;&quot; /&gt;&lt;br /&gt;
From a visitor&#39;s perspective, &lt;i&gt;Bounce Rate&lt;/i&gt; means: &#39;I came, I looked around, I left.&#39;&lt;br /&gt;
&lt;br /&gt;
So, a &lt;i&gt;high Bounce Rate means most visitors came and left straight away&lt;/i&gt;. In almost all circumstances this is a bad thing (especially if you are selling goods online). It indicates people simply aren&#39;t finding what they thought they would at your website. &lt;br /&gt;
&lt;br /&gt;
If you can&#39;t convince people to stick around, what hope do you have (even if you have bucket-loads of traffic)? This is why some would argue that this is the single most important metric to monitor, even above unique visitors.&lt;br /&gt;
&lt;br /&gt;
Unfortunately you can&#39;t make everyone stay at your website (unless you&#39;re willing to stand behind them with a cattle prod). Simply put, if you don&#39;t have what they want, they will leave. If you can maintain a &lt;i&gt;Bounce Rate&lt;/i&gt; of around 40%, that&#39;s good.&lt;br /&gt;
&lt;br /&gt;
There are rare occasions when a high &lt;i&gt;Bounce Rate&lt;/i&gt; isn&#39;t as damning as you may think. An example would be news aggregate site where there are headlines linking off to other websites.&lt;br /&gt;
&lt;br /&gt;
You can go much deeper into how &lt;i&gt;Bounce Rate&lt;/i&gt; metrics work, but that&#39;s beyond the scope of an introductory guide such as this one.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Top Traffic Sources&lt;/b&gt;&lt;br /&gt;
&lt;i&gt;Top Traffic Sources&lt;/i&gt; can be found on page 3 of the Analytics report. &lt;br /&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiualGxPiq9wOxNeQyE0_oP1IkpV1S66HplcjP66rvU78b6ygKT9QSdGopksUZkIQMoR2TiJps2RPeOQfUm7bLk2vCN01qoDSMEaUBJD3hPA-KKtQ7CJkyUUwCcxCqUCkitCR2Xv9lugsk/s400/top_traffic_sources.png&quot; id=&quot;BLOGGER_PHOTO_ID_5536335829899527938&quot; style=&quot;cursor: hand; cursor: pointer; height: 171px; width: 400px;&quot; /&gt;&lt;br /&gt;
This shows you where your traffic is coming from, or another way to look at it is how people are getting to your website.&lt;br /&gt;
&lt;br /&gt;
You&#39;ll see something called &lt;i&gt;Direct Traffic&lt;/i&gt; or &lt;i&gt;(direct) ((none))&lt;/i&gt;, this refers to people who actually type &lt;i&gt;www.acme.com&lt;/i&gt; into the browser address bar (i.e. they &lt;i&gt;didn&#39;t&lt;/i&gt; find you through Google). &lt;br /&gt;
&lt;br /&gt;
The &lt;i&gt;google.com (referral)&lt;/i&gt; stat shows people coming from Google sources other than their search engine (e.g. &lt;i&gt;Google Groups&lt;/i&gt;).&lt;br /&gt;
&lt;br /&gt;
It&#39;s not unusual for a large portion of your traffic to originate from Google. People are searching for a particular term and Google is presenting your site as the best possible match.&lt;br /&gt;
&lt;br /&gt;
The organic part in &lt;i&gt;google (organic)&lt;/i&gt; means &#39;not paid for&#39;. You got that traffic from Google on the merit of having good useful content people want. Traffic stemming from an &lt;i&gt;AdWords&lt;/i&gt; click wouldn&#39;t be counted as organic.&lt;br /&gt;
&lt;br /&gt;
The reason why traffic sources is worth paying attention to is because it can show how successful promotional efforts have been.&lt;br /&gt;
&lt;br /&gt;
Take the &lt;i&gt;PM4Web&lt;/i&gt; blog (which you are reading at the moment). I spent hours searching the &lt;i&gt;Stack Overflow&lt;/i&gt; forum for posts on topics I have written about. If someone was asking for recommendations on what project scheduling method they should use, I would give a few suggestions plus refer them back to my full blog article. &lt;br /&gt;
&lt;br /&gt;
The next week my &lt;i&gt;Analytics&lt;/i&gt; data showed a distinct surge in traffic originating from the &lt;i&gt;Stack Overflow&lt;/i&gt; domain. This meant that the time I invested in promoting my blog had paid off.&lt;br /&gt;
&lt;br /&gt;
Traffic sources are also significant if you are spending money advertising on another website. If you are paying $200 a week to be listed on a directory site specific to your industry and no traffic is coming from that source, then you know to stop wasting your money and invested it in commemorative stamps instead.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Keywords&lt;/b&gt;&lt;br /&gt;
The &lt;i&gt;Keywords&lt;/i&gt; segment is located on page 3 of the &lt;i&gt;Analytics&lt;/i&gt; report.&lt;br /&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhImLgRTrD7WR33zSS-jB7qrpbDFatKdKRtoAb28QBcvB5m8nevSK1rY7suskNW-Twie_QZ4fV7Cjm_t_UmDwkVjvnehrhnX9M-KO4OJG7MgKaPoI4Bumg6RyncYuB0THpSo018yyqdd-I/s400/keywords.png&quot; id=&quot;BLOGGER_PHOTO_ID_5536336549713705730&quot; style=&quot;cursor: hand; cursor: pointer; height: 117px; width: 400px;&quot; /&gt;&lt;br /&gt;
This basically says: &#39;what words did people type into Google to cause it to send them to me.&#39;&lt;br /&gt;
&lt;br /&gt;
How is this information useful? If lots of people are coming to your website because of a particular topic, then it would make sense to encourage additional traffic by providing more of the same kind of content (i.e. give people more of what they like).&lt;br /&gt;
&lt;br /&gt;
This may also affect your writing style, especially with regard to &lt;i&gt;Keyword Density&lt;/i&gt;. Say you had a page on your website where you talk about roof repairs. On this page you use the word &#39;restoration&#39; 16 times, and the word &#39;repair&#39; 4 times. If your &lt;i&gt;Analytics&lt;/i&gt; showed that most people found your site using the word &#39;repair&#39; (rather than &#39;restoration&#39;), that would be a good reason to go back and change things around. The theory being you should see an increase in future traffic since the page is now keyword rich for the term &#39;repair&#39;.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Country/Territory&lt;/b&gt;&lt;br /&gt;
Page 4 of the &lt;i&gt;Analytics&lt;/i&gt; report contains data about which country people are visiting from.&lt;br /&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsruokpU37TPFFS8KGD7or8_g0X4nCUizs6xnz9-2nuxcsSIyFiCwJKVjFNksSDkSOpjGb7hv7B3fAmW2lSk-kknSVGtgnwuLXrxyKT3exKMgvhRvicJhD7VBAcXy_X11vcPkvAfwjSj0/s400/country_territory.png&quot; id=&quot;BLOGGER_PHOTO_ID_5536336713947758930&quot; style=&quot;cursor: hand; cursor: pointer; height: 137px; width: 400px;&quot; /&gt;&lt;br /&gt;
For some people this information is largely irrelevant. To illustrate this point; imagine you repair motorcycles, chances are your target market is going to be mostly local.&lt;br /&gt;
&lt;br /&gt;
For others, this information can be very significant. Take this blog for example; I&#39;m in Melbourne, Australia, but most of my readers are in the United States (yes, I am riding a Kangaroo as I type this article). To accommodate my primary audience I use American spelling instead of UK English (e.g. &#39;summarize&#39; instead of &#39;summarise&#39;). In addition, I adapt the language I use. I would say &#39;cell phone&#39; rather than &#39;mobile&#39; (&#39;mobile&#39; is our term for a cellular phone).&lt;br /&gt;
&lt;br /&gt;
This data can be valuable for people selling goods online. If your current policy is to only ship within your own region, but you find most your traffic is coming from overseas, that could be a trigger to seriously reconsider your shipping practices.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Top Content&lt;/b&gt;&lt;br /&gt;
On the report&#39;s last page there&#39;s a segment called &lt;i&gt;Top Content&lt;/i&gt;. These are the pages most people looking at.&lt;br /&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVkmZoxKDHeFCZGKWHrdhwaYWJifvbsmRIvuWaVMbfS1gn_UR4bD8Z_TSdZvbPPjg9kUZLaOaSdCCqRviyQJA-jKU8ZDrqc5Ky22_2WB0j_6a5mHu5GTZcuEnGu9_3jBlZXSilwujx8W8/s400/top_content.png&quot; id=&quot;BLOGGER_PHOTO_ID_5536336968038937890&quot; style=&quot;cursor: hand; cursor: pointer; height: 146px; width: 400px;&quot; /&gt;&lt;br /&gt;
Analyzing this data is important for a number of reasons. If you&#39;ve just spent a great deal of time or money on a page, you can verify if it was a worthwhile endeavor by checking if people are visiting it.&lt;br /&gt;
&lt;br /&gt;
The other major reasons is this: if people like something in particular, why not give them more?&lt;br /&gt;
&lt;br /&gt;
This data can be helpful when deciding how to direct future upgrade efforts. If you had a very basic gallery page on your website and found that it was becoming increasingly popular, these statistics could be enough to justify upgrading it to something fancier.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;The &#39;who Cares&#39; Figures&lt;/b&gt;&lt;br /&gt;
There&#39;s some areas of the &lt;i&gt;Analytics&lt;/i&gt; report which are hard to get excited about. For most people, knowing what browsers people are visiting with or their broadband speed is of little value.&lt;br /&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsUu9GMRawWMdj6MNgytIUwVjge5w_-rxwO6E6F1eyaDIqx-2cKloC5uRbakKuXaSKw2y1EaYfk0TinxzvYlq4cdROhWgwia4DWKABw3XApmuRxBiMpEceFkIRUY7j9nYanwa5mF-JGEA/s400/browser.png&quot; id=&quot;BLOGGER_PHOTO_ID_5536338107783760994&quot; style=&quot;cursor: hand; cursor: pointer; height: 117px; width: 400px;&quot; /&gt;&lt;br /&gt;
There are situations where this can be important. Say if you found most of your visitors were on a really slow connection (cavemen or the Amish). This may prompt you to re-compress all the JPEGs on your gallery page, bringing the average photo size down from 60KB to 35 KB. That would be of little consequence to broadband users, but a significant improvement in user experience for dial-up visitors.&lt;br /&gt;
&lt;br /&gt;
I&#39;m being a little flippant implying that the &lt;i&gt;Analytics&lt;/i&gt; report contains &#39;useless figures&#39;, we all know Google does an excellent job with the services they provide, all the figures in the report are going to be useful to someone.&lt;br /&gt;
&lt;br /&gt;
The bottom line is to let the data educate and guide you. Making informed decisions based on metrics is always going to yield better results then guess-work alone.&lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;Join RSS Feed&quot; src=&quot;http://www.bravoweb.com.au/other/icon_rss_feed.png&quot; style=&quot;border: 0px; margin-right: 4px; vertical-align: middle;&quot; /&gt;&lt;a href=&quot;http://feeds.feedburner.com/ProjectManagementForTheWeb&quot;&gt;Subscribe to RSS Feed&lt;/a&gt;.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img style=&quot;padding:0px; margin: 0px; border: none; margin-right: 4px; vertical-align: middle;&quot; src=&quot;http://www.bravoweb.com.au/other/icon_rss_feed.png&quot; alt=&quot;Join RSS Feed&quot;/&gt;&lt;a href=&quot;http://feeds.feedburner.com/ProjectManagementForTheWeb&quot;&gt;Subscribe to RSS Feed&lt;/a&gt;.&lt;/div&gt;</description><link>http://pm4web.blogspot.com/2010/11/understanding-google-analytics-reports.html</link><author>noreply@blogger.com (Louis Marshall)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsm6levbLTTEEztldTnPC25UXj46KE1rpOO9doQzrWo14CaaH6cRHpdmg-qYvSS1VLDhHEEdihJ42kYl9tZvqtgaWWXJ7n26yuEaJ_NpPIuveMit264GdNLUDOKyuIrkuIgWtfBb2n4k0/s72-c/absolute_unique_visitors.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6566653093437934181.post-5774590694879974725</guid><pubDate>Sun, 11 Jul 2010 11:26:00 +0000</pubDate><atom:updated>2014-04-17T10:30:25.857+10:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Facebook</category><category domain="http://www.blogger.com/atom/ns#">Social Media Strategy</category><category domain="http://www.blogger.com/atom/ns#">Social Networking</category><category domain="http://www.blogger.com/atom/ns#">Twitter</category><title>Basic Social Media Strategy - Part 1 (Twitter)</title><description>&lt;i&gt;Developing a social media strategy to suit the needs of a specific business.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;border: 1px solid rgb(204, 204, 204); padding: 5px; margin-left: 5px; margin-right: 25px; font-size: 11px;&quot;&gt;Due to the length of this guide it has been broken-up into two parts; part one focuses on Twitter, part 2 deals with Facebook.&lt;/div&gt;&lt;br /&gt;The Internet is awash with tales of how Twitter and Facebook have helped businesses improve their bottom line. This is peculiar considering that neither of these tools was expressly designed for business use. Thanks to the ever-increasing push for innovative marketing techniques and down-right creativity by some boffins, these social networking mediums are slowly being commandeered by businesses. Far-fetched you say? Remember that the Internet first started as a military tool, than transitioned to an education tool, now it&#39;s largely about business, information-sharing, and self-expression.&lt;br /&gt;&lt;br /&gt;What makes Twitter and Facebook so apt for business promotion? Is it the novelty, is it because of its low cost nature, or is it because it&#39;s &#39;trendy with the kids&#39; (potentially prying open untapped markets)? Or, could it be because it&#39;s so well suited to guerrilla marketing tactics, what business doesn&#39;t like cheap advertising which gets too hard to reach customers? I&#39;d say it&#39;s too early to begin speculating on why social media is gaining so much popularity with businesses (who knows, could it be just another fad?). &lt;br /&gt;&lt;br /&gt;Whatever the reason for the meteoric rise of social media as a marketing mechanism, it can&#39;t be denied that people are increasingly asking &quot;how do I put Facebook and Twitter on my website?&quot; This brings us to the reason for this article; how do you develop a basic social media strategy tailored to the specific needs of a client? This guide is best suited to small businesses who are perhaps just launching their website, or are ready to get a bit more serious about marketing (but not serious about the expense of traditional marketing avenues; e.g. magazine ads, etc).&lt;br /&gt;&lt;br /&gt;Like SEO, customers know about Facebook and Twitter, but don&#39;t necessarily understand how they work or how they can be utilized effectively for business purposes. They may have an appreciation for its importance, but don&#39;t really know where to begin. This is a good starting point, but it does require stepping back to provide context before delving into the intricacies of Twitter and Facebook.&lt;br /&gt;&lt;br /&gt;It&#39;s important to point out early on in the exercise that a social media strategy has two major aspects to it. There is the work you will do as a technology supplier to develop the strategy (e.g. setup Twitter, etc); then there is the continual  commitment the client will need to make to keep it all going. If a client is under the impression that Twitter and Facebook are &#39;fire and forget&#39;, they are sorely mistaken. Like puppies, Twitter and Facebook aren&#39;t just for Christmas. Clients need to be prepared to commit time every week to keep it fresh, and perhaps keep going for months before expecting to see some form of tangible return.&lt;br /&gt;&lt;br /&gt;Now onto the actual pragmatics of the social media strategy. Because social media as a marketing tool is so new, I believe a face-to-face meeting with a presentation is warranted. I have developed a series of 11 PowerPoint slides. You can expect the meeting to go for one to two hours (depending on how often you stop to answer questions). One important factor of the slide-show is that it needs to be tailored each time to be specific to the business. If it was generic, it wouldn&#39;t be a consultative service. So it does take preparation before-hand to think about how Facebook and Twitter relate to your customer&#39;s particular business.&lt;br /&gt;&lt;br /&gt;The entire slide series can be summarized as follows:&lt;br /&gt;&lt;div style=&quot;border: 1px solid rgb(204, 204, 204); padding: 5px; margin-left: 5px; margin-right: 25px; font-size: 11px;&quot;&gt;1. Introduction&lt;br /&gt;2. The Basics: What is Twitter? &lt;br /&gt;3. Let&#39;s Go Deeper: Twitter&lt;br /&gt;4. Twitter for Business&lt;br /&gt;5. Setting Up Twitter&lt;br /&gt;6. Tips for Using Twitter&lt;br /&gt;7. The Basics: What is Facebook?&lt;br /&gt;8. Let&#39;s Go Deeper: Facebook&lt;br /&gt;9. Facebook for Business&lt;br /&gt;10. Setting Up Facebook&lt;br /&gt;11. Tips for Using Facebook&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Roughly half the presentation focuses on Twitter, the other half covers Facebook (nb. this is discussed in part 2 of this article). Some of the information in the slides may seem obvious and simplistic to you, but remember that the target audience is someone who knows little about social networking tools. The slides are meant to serve as triggers for discussion, rather than definitive sources of information. As you progress from one slide to the next, be prepared to stop as needed to discuss topics in more detail.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Introduction&lt;/i&gt;&lt;br /&gt;&lt;img style=&quot;width: 400px; height: 309px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqC7nlB2M6Kjc2A-PiiPRjGzTgcGzsMSazeR1Gv8qlh_CWA4jhcrA3bOnr7PcpkJFubp2Vzosv1Krr_ukQHnbjn7NqHmr6JES24VssgavRodNW47vFHYCvjVGGOCNCYLrokayMOW5b6hw/s400/screenshot_0459.png&quot; border=&quot;0&quot; alt=&quot;Introduction&quot; id=&quot;BLOGGER_PHOTO_ID_5492611750427965506&quot; /&gt;&lt;br /&gt;The first slide sets the scene for things to come, outlining what will be discussed during the course of the presentation.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;The Basics: What is Twitter?&lt;/i&gt;&lt;br /&gt;&lt;img style=&quot;width: 400px; height: 306px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghSB4sQtz8y7R2YH2T2s6oJoqg-naAvE5zBE0A0STzmmhbqu2klxm0zEcV1magArL1tagc8uUtndwlcOVhnaMhgHfks5N5CqMgUygyATQgmJX4c1SK4ums-_Zkjvl72d7puPTGd3GNSL8/s400/screenshot_0451.png&quot; border=&quot;0&quot; alt=&quot;Twitter - the basics&quot; id=&quot;BLOGGER_PHOTO_ID_5492622376591164642&quot; /&gt;&lt;br /&gt;This is a rudimentary introduction of what Twitter is. Some common Twitter terminology is also mentioned on this slide.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Let&#39;s Go Deeper: Twitter&lt;/i&gt;&lt;br /&gt;&lt;img style=&quot;width: 400px; height: 309px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieDCWgGIVgTYqvF71q925Ss2W-oxMjnJ02H52EyPKVRaQA3HFzCMqfYm4Kk2m7udy571wPGXgYQKQSCaRjYxwjbnkT1zqs_y1MwCdhDU5DD8oRm_N_Ui3mxWiH59QlxkKdCbHPG9T0ksY/s400/screenshot_0453.png&quot; border=&quot;0&quot; alt=&quot;Twitter - lets go deeper&quot; id=&quot;BLOGGER_PHOTO_ID_5492622557996257362&quot; /&gt;&lt;br /&gt;This builds on the previous slide by mentioning more terminology associated with Twitter. The number of Twitter users world-wide is highlighted as a demonstration of the traction it has garnered amongst Internet users.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Twitter for Business&lt;/i&gt;&lt;br /&gt;&lt;img style=&quot;width: 400px; height: 307px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4gL3FDtYlivkg-rghfVXrjAHtlK9h9_lVa4OIV8ZGPev5qaU9wy32HVMsKvBr6VlZebBeaDzwMUmh7wiPkRtYXmNx0AtziyAhZoZyl1k8Ix3DFS-SxvJawUt_Gf2DoqTJElk0xcirXKQ/s400/screenshot_0454.png&quot; border=&quot;0&quot; alt=&quot;Twitter for business&quot; id=&quot;BLOGGER_PHOTO_ID_5492622954434142114&quot; /&gt;&lt;br /&gt;By this point the introductory portion of the presentation has concluded. You can begin to discuss Twitter&#39;s application as a business tool. It&#39;s important to draw some distinctions between Twitter and traditional forms of marketing.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Setting Up Twitter&lt;/i&gt;&lt;br /&gt;&lt;img style=&quot;width: 400px; height: 308px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKFDqF0xkDprxq4luRKFPrsuCo7NxwEN-g0SWecAZ01tu48Z47-l73qIY2nzN7Dt36QxvkTsu93MDXQeV4MfGvoa3bK7a6DRI4uAFrMb82y2btBg7WayE9TU2rA-FobLelZxiZFURp7qE/s400/screenshot_0455.png&quot; border=&quot;0&quot; alt=&quot;setting up Twitter&quot; id=&quot;BLOGGER_PHOTO_ID_5492623132606339954&quot; /&gt;&lt;br /&gt;Knowledge without application is largely useless; so this is where you list the actual work that needs to be carried out to make the social media strategy a reality. The name next to each task clearly shows who&#39;s meant to undertake the task (i.e. you or the client).&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Tips for Using Twitter&lt;/i&gt;&lt;br /&gt;&lt;img style=&quot;width: 400px; height: 307px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmFwz5HqY6eBDz0wttGUZmM_fNYCsVbyK6ShEXM5BdoR8KESaWVNG0V86vmRmRrtUZqLyEN32INJ-Vt_CXsgOjMYE-3tOOhblCJADABUX5hPQ62TvbviTLhT-NaZJgunNFNVHqL89Emls/s400/screenshot_0458.png&quot; border=&quot;0&quot; alt=&quot;Tips for using Twitter&quot; id=&quot;BLOGGER_PHOTO_ID_5492623382087699906&quot; /&gt;&lt;br /&gt;The last slide puts forward some suggestions for getting the most out of Twitter.&lt;br /&gt;&lt;br /&gt;&lt;img style=&quot;width: 400px; height: 126px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhp8GAK_NfpMVA48O3SuoVtFzXSdzsytLGmvyq_iNIRRPjdLACg-U1m9rx_d4D9sluV30hNelnBeJVUk9gh8mrghPFrbijQh293NPjgzE-ycI6QeMxxBX3zcTr31lvjKqrypGUDI01GtqI/s400/dilbert_twitter_riboflavin.png&quot; border=&quot;0&quot; alt=&quot;Dilbert - Twitter &quot; id=&quot;BLOGGER_PHOTO_ID_5492610985770725890&quot; /&gt;&lt;br /&gt;&lt;br /&gt;One thing you may have noticed with the slides is they act as an information funnel. They begin quite general and narrow down to pin-point the actual application of the concepts in real-world terms (i.e. what work actually needs to be done to make it all happen).&lt;br /&gt;&lt;br /&gt;Read part 2: &lt;span style=&quot;color: #ccc;&quot;&gt;&lt;u&gt;Basic Social Media Strategy - Part 2 (Facebook)&lt;/u&gt;&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Download the &lt;a href=&quot;http://www.bravoweb.com.au/other/basic_social_media_strategy_acme.ppt&quot;&gt;PowerPoint presentation&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img style=&quot;padding-right: 2px; vertical-align: middle;&quot; src=&quot;http://www.bravoweb.com.au/other/icon_rss_feed.png&quot; alt=&quot;Join RSS Feed&quot;/&gt;&lt;a href=&quot;http://feeds.feedburner.com/ProjectManagementForTheWeb&quot;&gt;Subscribe to RSS Feed&lt;/a&gt;.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img style=&quot;padding:0px; margin: 0px; border: none; margin-right: 4px; vertical-align: middle;&quot; src=&quot;http://www.bravoweb.com.au/other/icon_rss_feed.png&quot; alt=&quot;Join RSS Feed&quot;/&gt;&lt;a href=&quot;http://feeds.feedburner.com/ProjectManagementForTheWeb&quot;&gt;Subscribe to RSS Feed&lt;/a&gt;.&lt;/div&gt;</description><link>http://pm4web.blogspot.com/2010/07/basic-social-media-strategy-part-1.html</link><author>noreply@blogger.com (Louis Marshall)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqC7nlB2M6Kjc2A-PiiPRjGzTgcGzsMSazeR1Gv8qlh_CWA4jhcrA3bOnr7PcpkJFubp2Vzosv1Krr_ukQHnbjn7NqHmr6JES24VssgavRodNW47vFHYCvjVGGOCNCYLrokayMOW5b6hw/s72-c/screenshot_0459.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6566653093437934181.post-3830676757386995671</guid><pubDate>Fri, 25 Jun 2010 04:41:00 +0000</pubDate><atom:updated>2014-04-19T15:19:32.310+10:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Google</category><category domain="http://www.blogger.com/atom/ns#">off-page SEO</category><category domain="http://www.blogger.com/atom/ns#">on-page SEO</category><category domain="http://www.blogger.com/atom/ns#">search engine optimization</category><category domain="http://www.blogger.com/atom/ns#">SEO</category><category domain="http://www.blogger.com/atom/ns#">SERP</category><title>SEO 101 - What to Tell Non-technical Clients</title><description>&lt;i&gt;Explaining the absolute basics of SEO to non-technical clients&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;This article was born as a result of a question I&#39;m often asked by clients. The question is usually along the lines of &quot;how do I get my site to rank well on Google?&quot; People generally know SEO is important, but they often don&#39;t understand how it relates to their own website.&lt;br /&gt;&lt;br /&gt;A caveat before I go any further; I do take some creative license when explaining SEO. The liberties I take may cause a web developer to say &quot;hey, that&#39;s not strictly accurate&quot;. Please keep in mind my explanations and examples are designed for lay people, not a lecture hall full of computing students.&lt;br /&gt;&lt;br /&gt;Sometimes to answer a question you have to take a step back (in order to provide context). I believe this is the case when explaining SEO. Once a decent foundation is laid, the chances for an explanation to sink-in improve greatly.&lt;br /&gt;&lt;br /&gt;So where do you begin when a client asks &quot;how do I do SEO on my website?&quot; As technology suppliers we often take for granted just how comfortable we have become with the web. Living in an online world can almost become second nature for some of us. This is the first key when explaining SEO to someone new to the topic - don&#39;t assume they&#39;re as comfortable with technology as you are.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.amazon.com/Words-That-Work-What-People/dp/1401302599/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1277370559&amp;sr=8-1&quot;&gt;&lt;img style=&quot;float: right; width: 128px; height: 195px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizqRKmwzejx94aIL3jpXjbgC9ZJSUQIvAH3P4Vs07Roq9ffcIXARo7_MN0IVzfAcr76iJew9_NFX_6Z7y_e5XHZ3j8n1pRexNOa7bswMKtJ6JslNWWF0jecpEXGnpZCd-65H2D_93Q6Qk/s400/words_that_work.jpg&quot; border=&quot;0&quot; alt=&quot;Words that Work&quot; id=&quot;BLOGGER_PHOTO_ID_5486570923499253410&quot; /&gt;&lt;/a&gt;The second rule may seem obvious, but it should be stated none-the-less; you don&#39;t want to be condescending when explaining SEO. There definitely is an art to teaching without making someone feel stupid. The specifics of this are beyond the scope of this article, but a good starting point is a book by &lt;i&gt;Frank Luntz&lt;/i&gt; called &lt;a href=&quot;http://www.amazon.com/Words-That-Work-What-People/dp/1401302599/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1277370559&amp;sr=8-1&quot;&gt;Words that Work&lt;/a&gt; (it&#39;s about marketing and how successful communication is achieved).&lt;br /&gt;&lt;br /&gt;A good place to start is by identifying the two major aspects of SEO: on-page and off-page SEO. Much of what happens with on-page SEO is controlled by the web developer. When a website is being created the idea is to code pages in a way which &#39;pleases&#39; Google. &lt;br /&gt;&lt;br /&gt;Google periodically comes along and &lt;i&gt;spiders&lt;/i&gt; every website it can find (nb. sites generally have to be submitted to Google for indexing). &lt;i&gt;Spidering&lt;/i&gt; is the process by which Google trawls through all the pages it can reach and catalogues them for searching purposes. The amount of time between spidering can vary from weeks (for a new website) to hours (for a popular website).&lt;br /&gt;&lt;br /&gt;You won&#39;t be able to explain all the techniques available for achieving good on-page SEO, you would be there forever if you tried. Instead, you need to give a couple of examples. Examples are paramount when attempting to explain a topic that&#39;s completely new to a person. For instance, you could say page titles need to be unique and descriptive. If a website has details about a cell phone, a page title like &#39;Nokia N97 mini&#39; would be better than &#39;Cell Phone Specs&#39;.&lt;br /&gt;&lt;br /&gt;This is a good point at which to make a distinction between what a developer does to achieve good on-page SEO and what a client needs to do. Arguably the most important concept to discuss is &lt;i&gt;keyword richness&lt;/i&gt;. Again, this is best conveyed with a simple example. You could make-up a scenario about a website which sells hammers. In one version of the scenario the website&#39;s homepage has the following text: &quot;our hammers are made with the finest materials. They are award winning and manufactured at our plant in Belgium&quot;. The other version of the text would read as follows: &quot;our hammers are manufactured with the finest materials. Winner of the 2009 best hammer award and created at our factory in Belgium especially designed for producing the best hammers in the world&quot;. Notice how many more times the word &#39;hammer&#39; is used in the second version. The name of the product (or service) being promoted should be mentioned on the website as often as possible - &lt;i&gt;within reason&lt;/i&gt;. Be sure to warn of the dangers of &lt;i&gt;keyword-stuffing&lt;/i&gt;. Going overboard with keywords could actually have a detrimental effect on search engine ranking (i.e. Google can actually detect when someone is over using keywords on a page). &lt;br /&gt;&lt;br /&gt;If you wanted to recommend a simple on-page SEO strategy for increasing traffic, you could suggest providing &#39;value add&#39; information. This would be information which may not be directly related to the client&#39;s business making money, but which would be helpful to their customers. For example, if the client sells bikes, they could provide maps of cycling tracks around the local area. Each time a person comes to the site for track information, there is the potential to show them products available for purchase.&lt;br /&gt;&lt;br /&gt;To explain off-page SEO, you could start by saying it&#39;s about getting the word out there, getting known on the Internet. The more websites that talk about you, the more you move up in Google&#39;s ranking. Also, it&#39;s better to be name-dropped by a &#39;relevant&#39; website than one that has nothing to do with your industry.&lt;br /&gt;&lt;br /&gt;What do I mean by relevant? By way of comparison, imagine you have a bike store; if another bike shop refers to you, that carries more weight than say a furniture manufacturer referring to you. Google is aware of logical similarities, it &#39;knows&#39; that tables and chairs have little to do with bikes.&lt;br /&gt;&lt;br /&gt;Being name dropped by someone prominent and relevant is what&#39;s needed for good ranking. The trick is figuring out ways to get other related, preferably high-profile, websites to mention your website. Obviously, a direct competitor won&#39;t want to mention you on their website (that wouldn&#39;t make sense), but someone who would benefit from mentioning you would. For example, a tourism related website may be very interested in talking about you if you own a motel and are running a special offer.&lt;br /&gt;&lt;br /&gt;&lt;img style=&quot;width: 400px; height: 127px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoABb4bVlANEgG612-C0sb6Mr8b4QbA7mGXlwfwGkO9q4uZiX3DNxgfqMkctlw2Vo0oZqNnuw-gSmkN8LvBHcVK8LAf4NWStNYSXbEL90FbfIBX4SaWfp_bJ4v5cdLP24xnovuk96Lcac/s400/dilbert_seo.png&quot; border=&quot;0&quot; alt=&quot;dilbert - seo&quot; id=&quot;BLOGGER_PHOTO_ID_5486570630402385682&quot; /&gt;&lt;br /&gt;&lt;br /&gt;In simple terms, it boils down to this: if everyone is talking about you on the web, than you must be the best source of information for your chosen area. If you are the &#39;go-to&#39; person for your industry, Google will direct people to your website. After-all, Google only succeeds as a search engine if it&#39;s sending people to the right place.&lt;br /&gt;&lt;br /&gt;&lt;img style=&quot;border: 0xp; margin-right: 3px;&quot; src=&quot;http://www.bravoweb.com.au/other/icon_rss_feed.png&quot; alt=&quot;Join RSS Feed&quot;/&gt;&lt;a href=&quot;http://feeds.feedburner.com/ProjectManagementForTheWeb&quot;&gt;Subscribe to RSS Feed&lt;/a&gt;.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img style=&quot;padding:0px; margin: 0px; border: none; margin-right: 4px; vertical-align: middle;&quot; src=&quot;http://www.bravoweb.com.au/other/icon_rss_feed.png&quot; alt=&quot;Join RSS Feed&quot;/&gt;&lt;a href=&quot;http://feeds.feedburner.com/ProjectManagementForTheWeb&quot;&gt;Subscribe to RSS Feed&lt;/a&gt;.&lt;/div&gt;</description><link>http://pm4web.blogspot.com/2010/06/seo-101-what-to-tell-non-technical.html</link><author>noreply@blogger.com (Louis Marshall)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizqRKmwzejx94aIL3jpXjbgC9ZJSUQIvAH3P4Vs07Roq9ffcIXARo7_MN0IVzfAcr76iJew9_NFX_6Z7y_e5XHZ3j8n1pRexNOa7bswMKtJ6JslNWWF0jecpEXGnpZCd-65H2D_93Q6Qk/s72-c/words_that_work.jpg" height="72" width="72"/><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6566653093437934181.post-3403935589645239484</guid><pubDate>Mon, 14 Jun 2010 03:22:00 +0000</pubDate><atom:updated>2014-04-20T11:18:43.700+10:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">broadband</category><category domain="http://www.blogger.com/atom/ns#">interface design</category><category domain="http://www.blogger.com/atom/ns#">Internet trends</category><category domain="http://www.blogger.com/atom/ns#">UI</category><title>Why Users Demand a Top-Notch Interface These Days</title><description>&lt;i&gt;How UI and usability are changing the focus of software development.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Let&#39;s take a trip down memory lane. I knew years ago I wanted to be involved in UI design. Back at university I enjoyed making &#39;pretty interfaces&#39;, and for some reason had an inexplicable ability to retain information about design patterns. Sometimes my aptitude for UI design gave people the impression that it came easy to me, but like most people who&#39;ve gotten good at something, there&#39;s a lot of hard work behind it all. The truth of the matter is that the skills had to be refined with long hours of research, reading, experimentation, and most importantly &lt;i&gt;doing&lt;/i&gt; interface design. &lt;br /&gt;
&lt;br /&gt;
By far, experience has been my biggest teacher. I&#39;ve learned that it&#39;s &#39;not done until it&#39;s done&#39;; if a UI design has to go though 14 revisions - so be it (and this has happened to me!). If something can be done with 2 clicks instead of 3, than that&#39;s my goal (than, I start thinking about how it can be done with just 1 click). I could tell years ago that companies would one day be scrambling for people with &lt;i&gt;Interaction Design&lt;/i&gt; (IxD) skills. When software development began shifting away from desktop applications and towards web-based systems, it was clear a fundamental change was on its way (in terms of how we use computers). A number of other trends gave strength to this revolution, including; pervasive broadband uptake, mobile/wireless broadband becoming reasonably priced, and &lt;i&gt;Apple&lt;/i&gt; consistently changing peoples&#39; technology-use behavior.&lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;The World is Flat (book cover)&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3QSnftz6JUsbjvwROjTZJGw4shSO_gnbUg6UvMPGmE9Hj0nb8iyBDu5glDBxj20tJCQvtkbKhABunn43CCKQ-Nb3ADrbepizCOVNHKs3lrmabtszA-2XNu5ETvjXZprEij2MuMSKMAIE/s400/the_world_is_flat_book_cover.png&quot; id=&quot;BLOGGER_PHOTO_ID_5482465749303823858&quot; style=&quot;float: right; margin-left: 5px;&quot; /&gt;One of the driving forces behind this fundamental shift was surely everyone getting access to low-cost &#39;always on&#39; broadband. Without this, it simply could not have happened.  If you&#39;ve had the pleasure of reading &lt;i&gt;Thomas Friedman&#39;s&lt;/i&gt; &lt;a href=&quot;http://www.amazon.com/World-Flat-History-Twenty-first-Century/dp/0374292884&quot;&gt;The World Is Flat&lt;/a&gt;, you&#39;ll see that the reason we ended up with pervasive broadband was partly due to the optic fiber &#39;fire sale&#39; which took place after the dot com crash. In a nutshell; what happened was businesses invested heavily in expensive optic fiber cable. Then they went broke and were forced to sell their assets. Other companies came along and snapped up all this cheap cable at a bargain price (which in turn, they passed on the savings to customers).&lt;br /&gt;
&lt;br /&gt;
Technology wasn&#39;t the only catalyst for change. Another big factor was the shift towards the &lt;i&gt;Application Service Provider&lt;/i&gt; revenue model. Finally the industry had found a way to stop software piracy dead in its tracks (i.e. host the software online and get users to pay a subscription fee for access to the service). &lt;br /&gt;
&lt;br /&gt;
Personally, I think that thanks to companies like &lt;i&gt;Microsoft&lt;/i&gt;, &lt;i&gt;Google&lt;/i&gt;, and &lt;i&gt;Apple&lt;/i&gt; the average Internet user has become spoiled rotten in terms of the UI and user experience they expect.  The bar has been set very high, but people don&#39;t appreciate that &lt;i&gt;Google&lt;/i&gt; and others pour millions of dollars into their interface design efforts. People now expect this level of quality from all their Internet enabled software. This is probably a good thing since it forces companies to produce software the way it should be; designed for normal human beings, self-evident (i.e. no manual required), and suitable for a broad audience.&lt;br /&gt;
&lt;br /&gt;
So why is it that Internet users demand such high standards from their online software today? I&#39;d say it&#39;s because &#39;doing things online&#39; has become a cultural norm, or even a borderline necessity. Gone are the days when paying bills online or booking airline tickets was something only nerds did. Would you not look at a colleague  sideways if they said &quot;I&#39;m just popping down to the post office to pay a bill&quot; (as opposed to paying it online)? The reality is people still are clinging to the old way of doing things (e.g. people still physically go down to the bank). &lt;br /&gt;
&lt;br /&gt;
The next stage of &#39;doing things online&#39; could coincide with the dissolution of the traditional outlets of commerce. For instance; there are ISPs now who expect you to sign-up online, and they only accept payment via automated electronic mechanisms (e.g. monthly direct debit). Is it so far-fetched to think that in the not too distant future we will be voting in elections via a website?&lt;br /&gt;
&lt;br /&gt;
The media has also played a pivotal role in this transition. Notice how every poster at a bus stop these days has the &lt;i&gt;Facebook&lt;/i&gt; and &lt;i&gt;Twitter&lt;/i&gt; logo on it? Mainstream media&#39;s ability to shape social habits shouldn&#39;t be underestimated.&lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;Dilbert - confusing user interfaces&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMBGCJqijUfL4rS1-X1b0od3ncp-FdItdbnUoEGkOFY_txpfyCuwIuJFUQUp09_2UyEZ9GgXLGC4dW8f9oiqPvf3hkx4nVYy0i5dZaivgoGRronff2OeRYU3sCOjSIpnZAawAm6KyZBe8/s400/dilbert_vp_of_marginally_legal_activities.png&quot; id=&quot;BLOGGER_PHOTO_ID_5482466182315734658&quot; style=&quot;height: 129px; width: 400px;&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
As more of the traditional physical outlets of commerce disappear in favor of their lower-cost online variants, it&#39;s as though the general public is being forced to do things online. If that really is the case, than the number of non-tech savvy users will skyrocket. This is what causes the demand for high quality interfaces, because large numbers of people who wouldn&#39;t normally do things online are beginning to convert. The companies that can deliver ease of use will no doubt prosper whilst those slow adapt will fall by the wayside.&lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;Join RSS Feed&quot; src=&quot;http://www.bravoweb.com.au/other/icon_rss_feed.png&quot; style=&quot;border: 0px; margin-right: 3px;&quot; /&gt;&lt;a href=&quot;http://feeds.feedburner.com/ProjectManagementForTheWeb&quot;&gt;Subscribe to RSS Feed&lt;/a&gt;.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img style=&quot;padding:0px; margin: 0px; border: none; margin-right: 4px; vertical-align: middle;&quot; src=&quot;http://www.bravoweb.com.au/other/icon_rss_feed.png&quot; alt=&quot;Join RSS Feed&quot;/&gt;&lt;a href=&quot;http://feeds.feedburner.com/ProjectManagementForTheWeb&quot;&gt;Subscribe to RSS Feed&lt;/a&gt;.&lt;/div&gt;</description><link>http://pm4web.blogspot.com/2010/06/why-users-demand-top-notch-interface.html</link><author>noreply@blogger.com (Louis Marshall)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3QSnftz6JUsbjvwROjTZJGw4shSO_gnbUg6UvMPGmE9Hj0nb8iyBDu5glDBxj20tJCQvtkbKhABunn43CCKQ-Nb3ADrbepizCOVNHKs3lrmabtszA-2XNu5ETvjXZprEij2MuMSKMAIE/s72-c/the_world_is_flat_book_cover.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6566653093437934181.post-250883338416579516</guid><pubDate>Wed, 14 Apr 2010 02:00:00 +0000</pubDate><atom:updated>2014-04-20T11:19:22.262+10:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">programmer briefing</category><category domain="http://www.blogger.com/atom/ns#">requirements review meeting</category><category domain="http://www.blogger.com/atom/ns#">tech briefing</category><category domain="http://www.blogger.com/atom/ns#">technical briefing</category><title>Conducting a Tech Briefing Session</title><description>&lt;i&gt;Reviewing the spec with programmers before they code.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
A business analyst or project manager often gains a deep understanding of a client&#39;s business during the scoping phase. Probing questions during this process create a contextual back-drop for the project. Why is context so important? Because it makes you care, otherwise it&#39;s just another IT project. Having context mixed with experience and intuition results in the right questions being asked. If these questions aren&#39;t asked early on, trouble may ensue later down the track. For example, a paper-based task which the client takes for granted may in fact be a technical nightmare to implement (potentially jeopardizing the feasibility of the project).&lt;br /&gt;
&lt;br /&gt;
Unfortunately, programmers often miss-out on this context. Developers are stuck in the office cutting code whilst analysts are out hobnobbing with clients. It would be unrealistic to expect programmers to attend all these client scoping meetings, if they did than who&#39;d be back in the office doing the actual work? This is not even factoring in that documenting requirements is a particular skill-set, something a programmer may not have cultivated by this point or even be interested in.&lt;br /&gt;
&lt;br /&gt;
The standard in most teams is to relay requirements to developers via specification documents. Whether that&#39;s a separate functional and technical spec, or just one document, in either case this document forms the basis by which a programmer turns concept into reality. But handing a spec to a programmer and saying &quot;here, code this&quot; isn&#39;t enough in my opinion. A spec often won&#39;t have context, sure, user cases help a lot, but they can often be limited, and a printed spec doesn&#39;t answer questions a programmer may have.&lt;br /&gt;
&lt;br /&gt;
This is where a technical briefing comes in to fill the gap. The attendees would be the project manager, the business analyst, and any programmers who have been assigned tasks on the project. As to how much time will be needed, that depends on how big the spec is. What you are doing is going through the spec screen by screen, reviewing each interface in detail, discussing underlying functionality, stopping to answer questions, and providing contextual background which may be missing from the spec (e.g. what the client&#39;s business does, what systems they currently have in place, etc).&lt;br /&gt;
&lt;br /&gt;
What&#39;s wrong with just giving programmers the specification and asking them to read it - you do trust your developers don&#39;t you? This is an important point; a briefing meeting may send the message that you lack faith in your technical team. The meeting does seem like a hand-holding exercise. Personally, I hate taking any action as a PM which diminishes a developer&#39;s chance for self-autonomy. But I hate failing at a project even more. &lt;br /&gt;
&lt;br /&gt;
At the end of the day, if you hand a spec to a programmer and say &quot;here, read this&quot;, they may very well read it. Or they may not. A programmer&#39;s primary focus is to cut code. They may be over-worked and under pressure themselves. Sending programmers in to code without arming them with context is like sending your troops to capture a machine gun bunker without weapons. They are part of the team, so why wouldn&#39;t you do everything in your power to set them up for success?&lt;br /&gt;
&lt;br /&gt;
Another reason to undertake technical briefing sessions is because of the impact it will have on the type of bugs logged during the QA cycle. Without a tech briefing session, you will find a significant amount of bugs being logged for missed features (i.e. features in the spec which weren&#39;t coded). When enough &#39;missed feature&#39; bugs are logged, you can start to deduce a pattern. A pattern that indicates that the programmer didn&#39;t absorb enough of the specification - they may have read it, but it just didn&#39;t sink in.&lt;br /&gt;
&lt;br /&gt;
Once inside a tech briefing meeting, programmers can&#39;t escape; they have no choice but to sit there and absorb the business domain. A tech briefing done right will drastically reduce bugs which occur because of blank areas in a programmer&#39;s understanding of the system (anecdotal proof for this can be found during the project post-mortem bug analysis).  The time alone spent on not having to fix these kinds of bugs makes up for the time the programmers spend in the meeting.&lt;br /&gt;
&lt;br /&gt;
So is a technical briefing session just about not trusting programmers? No, it isn&#39;t. It&#39;s also about buy-in and caring. If programmers care about a client&#39;s business, they are more likely to do a good job. As I mentioned earlier, a BA or PM has had the benefit of many meetings with a client, a programmer hasn&#39;t. The tech briefing session gives you the opportunity to transfer some of this knowledge to the technical team. It&#39;s likely you will be able to condense this knowledge and feed it to programmers at a more concentrated level. &lt;br /&gt;
&lt;br /&gt;
A typical agenda for a technical briefing would look something like this:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border: 1px solid rgb(204, 204, 204); font-size: 11px; margin-left: 5px; margin-right: 25px; padding: 5px;&quot;&gt;
10.00am - 10.05am: greetings and hellos (Everyone)&lt;br /&gt;
10.05am - 10.20am: background on client&#39;s business (PM/BA)&lt;br /&gt;
10.20am - 11.20am: screen-by-screen review of wireframes (PM/BA)&lt;br /&gt;
11.20am - 11.45am: programmer Q&amp;amp;A session (Programmers)&lt;/div&gt;
&lt;br /&gt;
The real magic happens during the screen-by-screen wireframe review. This is where you can inject a great deal of unseen detail. You can spend a few minutes talking about the rationale behind a particular screen. This could be a big deal because without it, a programmer could be looking at a complex wireframe and not even realize how critical it is to the operation of a business.&lt;br /&gt;
&lt;br /&gt;
In terms of location and format for the meeting, ideally you would want to book the board room for a couple of hours, but if that&#39;s not available, any quite room away from computers will do. If you can get your hands on a projector to display the mock-ups for everyone to see, great. If not, big A3 color print-outs of the mock-ups will do. Should programmers be required to take notes during the meeting? I don&#39;t think so, leave it up to them to note down whatever they want. The main point is for them to listen rather than bury their heads in a notepad or laptop.&lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;Dilbert - tech briefings&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtIpxJ9GhWQ_QtMKJxPQ_ipHrjyxa7kZqYX0n4ZB4Y0NjwktmurnYCie_FxxBrcq-OQQYaxqTFJ2GzVzZvpyfrbxqprN1Aqxv68Zylec-hBmt8vhVeYWJnGFFX9xGA7Vu4IZawMsyJu-M/s400/dilbert-zeros-and-ones-b&amp;w.gif&quot; id=&quot;BLOGGER_PHOTO_ID_5460137592786963426&quot; style=&quot;cursor: hand; cursor: pointer; height: 125px; width: 400px;&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
The sort of returns you can expect from conducting a tech briefing session aren&#39;t realised until the end of the project. The time you spend early on relaying context to developers will more than pay for itself later down the track. Programmers won&#39;t need to approach BAs or PMs as often to ask questions, they probably already asked the question during the Q&amp;amp;A segment of the briefing meeting. Fewer bugs related to missed features will be logged, and programmers are less likely to make bad assumptions about ambiguous features considering they have some understanding of the business rationale behind their work.&lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;Join RSS Feed&quot; src=&quot;http://www.bravoweb.com.au/other/icon_rss_feed.png&quot; style=&quot;border: none; padding-right: 5px;&quot; /&gt;&lt;a href=&quot;http://feeds.feedburner.com/ProjectManagementForTheWeb&quot;&gt;Subscribe to RSS Feed&lt;/a&gt;.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img style=&quot;padding:0px; margin: 0px; border: none; margin-right: 4px; vertical-align: middle;&quot; src=&quot;http://www.bravoweb.com.au/other/icon_rss_feed.png&quot; alt=&quot;Join RSS Feed&quot;/&gt;&lt;a href=&quot;http://feeds.feedburner.com/ProjectManagementForTheWeb&quot;&gt;Subscribe to RSS Feed&lt;/a&gt;.&lt;/div&gt;</description><link>http://pm4web.blogspot.com/2010/04/conducting-tech-briefing-session.html</link><author>noreply@blogger.com (Louis Marshall)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtIpxJ9GhWQ_QtMKJxPQ_ipHrjyxa7kZqYX0n4ZB4Y0NjwktmurnYCie_FxxBrcq-OQQYaxqTFJ2GzVzZvpyfrbxqprN1Aqxv68Zylec-hBmt8vhVeYWJnGFFX9xGA7Vu4IZawMsyJu-M/s72-c/dilbert-zeros-and-ones-b&amp;w.gif" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6566653093437934181.post-75320152965433148</guid><pubDate>Mon, 22 Mar 2010 04:52:00 +0000</pubDate><atom:updated>2014-04-25T06:50:35.659+10:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">fee proposal</category><category domain="http://www.blogger.com/atom/ns#">project proposal</category><category domain="http://www.blogger.com/atom/ns#">quote</category><category domain="http://www.blogger.com/atom/ns#">tenders</category><title>Writing Short, Easy to Read Fee Proposals (Part 1)</title><description>&lt;i&gt;Creating fee proposals which are quick to write &amp; easy to understand.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;border: 1px solid rgb(204, 204, 204); font-size: 11px; margin-left: 5px; margin-right: 25px; padding: 5px;&quot;&gt;Due to the length of this article, it has been split into two separate but related parts. The first article provides the reasoning behind the proposal style. The &lt;a href=&quot;http://pm4web.blogspot.com/2010/04/writing-short-easy-to-read-fee_04.html&quot;&gt;second part&lt;/a&gt; describes the various sections of the proposal structure in more detail.&lt;/div&gt;&lt;br /&gt;A while back I wrote an article called &lt;a href=&quot;http://pm4web.blogspot.com/2008/07/writing-fee-proposals.html&quot; target=&quot;_blank&quot;&gt;Writing Fee Proposals&lt;/a&gt;, since than I have learnt a few things which have led me to produce a new streamlined fee proposal structure (or tenders as many refer to them).&lt;br /&gt;&lt;br /&gt;What prompted me to develop a better proposal structure? I had an experience last year where I lost out on a new contract. The client said I didn&#39;t get the job because my proposal was &quot;too complicated&quot;. Up to that point I had thought being thorough and documenting everything in painful detail was a good thing - I guess not (at least not for everyone).&lt;br /&gt;&lt;br /&gt;The biggest driving force behind the development of this new proposal structure was this thought: &quot;people are busy, give them the facts and let them get on with their work&quot;. To achieve this goal, the proposal had to be short (generally 4-5 pages), it had to use the military principle B.L.U.F or &lt;i&gt;Bottom Line Up Front&lt;/i&gt; (where facts are favored over &#39;fluff&#39;), and it had to use language which would be universally understandable.&lt;br /&gt;&lt;br /&gt;One of the major themes of the new proposal is setting up expectations. You&#39;ve probably heard someone say &quot;you have to manage customer expectations&quot;. Ideally, you want to lay down the ground rules for how a project is going to be run early on. What better point to do this than before the project has even started? I have seen projects in all sorts of trouble because it wasn&#39;t explained to a client early on that &quot;this is how we run a technology project at our company&quot;. Trying to explain protocols once a project is underway is an uphill battle (not impossible, just harder than necessary).&lt;br /&gt;&lt;br /&gt;I personally believe a proposal should tell a client exactly what they are getting for their buck. Seeing a line item like &#39;development cost&#39; or &#39;consultancy service fee&#39; is really no help to anyone. Having vague line items like these in a proposal just tells a client you aren&#39;t listening and don&#39;t recognize their specific business needs. Better line items would be &#39;development of shopping cart mechanism&#39; and &#39;consultancy regarding off-page SEO strategy&#39;.&lt;br /&gt;&lt;br /&gt;One thing to keep in mind is that this structure is mainly suited to small to medium sized projects (e.g. 20 to 150 hours). I don&#39;t believe it is appropriate to use this format for bigger projects. You would risk under-pricing the project since you don&#39;t have enough detail to produce good estimates.&lt;br /&gt;&lt;br /&gt;Let&#39;s take a brief look at the overall structure of the new proposal style (nb. &lt;a href=&quot;https://www.blogger.com/blogger.g?blogID=6566653093437934181&quot;&gt;part 2&lt;/a&gt; of this &lt;a href=&quot;http://www.s1articles.com/&quot;&gt;article&lt;/a&gt; series goes into more detail about each section).&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;border: 1px solid rgb(204, 204, 204); font-size: 11px; margin-left: 5px; margin-right: 25px; padding: 5px;&quot;&gt;&lt;i&gt;The First Page&lt;/i&gt;&lt;br /&gt;&lt;div style=&quot;height: 7px;&quot;&gt;&lt;/div&gt;• Big bold document title (e.g. Fee Proposal - ACME Website)&lt;br /&gt;• Subtle note saying supplier &amp; contractor details are in the appendix&lt;br /&gt;• A single line describing what the document&#39;s purpose is&lt;br /&gt;• A &lt;i&gt;Cost Summary&lt;/i&gt; table (including the project&#39;s total budget)&lt;br /&gt;• &lt;i&gt;Change of Requirements&lt;/i&gt; block - this sets out important ground-rules&lt;br /&gt;• &lt;i&gt;Project engagement sign-off&lt;/i&gt; box - client&#39;s signature goes here&lt;br /&gt;&lt;div style=&quot;height: 7px;&quot;&gt;&lt;/div&gt;&lt;i&gt;All this should fit on the first page, it&#39;s like a big executive summary.&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;border: 1px solid rgb(204, 204, 204); font-size: 11px; margin-left: 5px; margin-right: 25px; padding: 5px;&quot;&gt;&lt;i&gt;Appendix&lt;/i&gt;&lt;br /&gt;&lt;div style=&quot;height: 7px;&quot;&gt;&lt;/div&gt;• Introduction&lt;br /&gt;- Purpose of the Website - briefly state the project goals&lt;br /&gt;- Client Background - demonstrate you were paying attention &amp; care&lt;br /&gt;- Technology to be Used - what language &amp; database will be used&lt;br /&gt;- Project Schedule (not the actual schedule, mention one will be used)&lt;br /&gt;- Non-requirements (saying what isn&#39;t included in the project budget)&lt;br /&gt;- Contractor &amp; client &lt;a href=&quot;http://astroalloys.com.au/shop/&quot;&gt;details&lt;/a&gt;&lt;br /&gt;- Project Team (brief history &amp; qualifications of people doing the work)&lt;br /&gt;• Costs&lt;br /&gt;- Change of Requirements - affect of adding new features mid-project&lt;br /&gt;- Budgeting for Additional Features - prepare client for extra costs&lt;br /&gt;- Third Party Costs - (e.g. hosting fees aren&#39;t included in the budget)&lt;br /&gt;- Payment Stages - when milestone payments will be triggered&lt;br /&gt;• Terms - when invoices need to be paid, that a deposit is required&lt;br /&gt;• Software Warranty - describing what happens when bugs are found&lt;br /&gt;- Logging of Bugs - describing how bugs are to be reported&lt;br /&gt;• Content Management System - CMS license details&lt;/div&gt;&lt;br /&gt;The most radical change is that I shifted nearly everything into an appendix. If it wasn&#39;t absolutely critical for the client to know something straight away, than it got shifted to the appendix. What this meant was that the client could potentially read just the first page and approve the project from that (not advisable of course). From the client&#39;s point of view, the first page contains arguably the two most important pieces of information; what am I getting, and how much will it cost? From a technology supplier&#39;s point of view, the first page lays forth the most important rules for the project (e.g. how feature additions will be dealt with).&lt;br /&gt;&lt;br /&gt;The reason why the majority of the document is in the appendix is because it&#39;s hard to say what&#39;s most important to a potential client after stating what the costs and deliverables are. Delivery date would be high on the list too, but you can&#39;t know that until you&#39;ve done the project schedule. The appendix contains many sections which probably fall under the category of &quot;who cares&quot; as far as the client is concerned, but nearly everything in the appendix is a bureaucratic must.&lt;br /&gt;&lt;br /&gt;With regard to the language used in the proposal, you have to remember that the client may not be that tech-savvy. This means you can&#39;t just drop words like &#39;SEO&#39; without explaining them, you have to at least expand the term to &#39;Search Engine Optimization&#39;. Being overly technical isn&#39;t the only pitfall to watch out for. The single biggest thing which will improve the overall readability of your document is to use short sentences (don&#39;t be stingy with your full stops). If you really want to improve your writing, I suggest you look into something called the &lt;i&gt;Flesch Reading Ease Test&lt;/i&gt; and &lt;i&gt;Flesch-Kincaid Grade Level Test&lt;/i&gt;. Microsoft Word has features built into it which support these metrics. You will have to Google this if you want a deeper explanation since it&#39;s beyond the scope of this article. Suffice it to say I use both these tests prior to posting any &lt;a href=&quot;http://sophitrader.com/&quot;&gt;article&lt;/a&gt; to this blog.&lt;br /&gt;&lt;br /&gt;After submitting a proposal, it&#39;s good practice to make a follow-up call (or arrange a follow-up meeting). Once sent, let at least a day pass so the client has a chance to read the document, than ring up to ask how they went with the proposal (e.g. &quot;hi Bob, it&#39;s Tony. I&#39;m just ringing to see how you went with the proposal, check if you had any questions I could help with&quot;). This does a few things: 1) it keeps you at the forefront of the client&#39;s mind (a good thing if you are vying for a project amongst other competitors), 2) the client may have not understood things in your proposal (so you have a chance to clarify), and 3) the client may be very busy with their business, so they may not have time to call you - you are proactively pushing along the project. On larger projects, with more granular break-downs of project deliverables, its best to organize a meeting to go through the proposal and explain things step-by-step. That way the client will know exactly what they are getting for their money.&lt;br /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeadzRuZs8gDiCnh1NruntdCH30OJvm2JpiIZxTijxPL4877YEfJLzTzB4EUL40u_k08uykXpLaEU4GiwV7W6QedPnNWfFj_KcZUWWumBbolxfnpVNaUTPmV2n8YTZYAVsKs9Xp7QMx7w/s400/dilbert_caring_about_the_budget.gif&quot; id=&quot;Dilbert: caring about project budget&quot; style=&quot;cursor: hand; cursor: pointer; height: 127px; width: 400px;&quot; /&gt;&lt;br /&gt;&lt;br /&gt;One last thought about clients and how they view proposals. Consider that people have different learning styles (e.g. some are more visual learners, others are auditory learners, etc), the same may be true for how clients relate to different styles of proposals. Certain styles will appeal to some but not others. One client may like a detailed break-down of exactly what they are getting, because they want to know exactly where every dollar is going. Other clients may not care about the fine details of the project; they just want to know what the grand total is. This phenomenon poses a tricky question; do you tailor proposals structures to suit individual client tastes? I haven&#39;t tried this out, but there may be merit to the idea if it means the difference between locking in a contract or losing it. Obviously there are some draw-backs, including: 1) it would be a time investment to maintain multiple proposal documents, and 2) how do you even know which structure is best suited to a client you haven&#39;t had much time with yet?&lt;br /&gt;&lt;br /&gt;Read &lt;a href=&quot;http://pm4web.blogspot.com/2010/04/writing-short-easy-to-read-fee_04.html&quot;&gt;Writing Short, Easy to Read Fee Proposals (Part 2)&lt;/a&gt; for a detailed break-down of each section in the proposal.&lt;br /&gt;&lt;br /&gt;&lt;img alt=&quot;Join RSS Feed&quot; src=&quot;http://www.bravoweb.com.au/other/icon_rss_feed.png&quot; style=&quot;border: none;&quot; /&gt;&lt;a href=&quot;http://feeds.feedburner.com/ProjectManagementForTheWeb&quot;&gt;Subscribe to RSS Feed&lt;/a&gt;.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img style=&quot;padding:0px; margin: 0px; border: none; margin-right: 4px; vertical-align: middle;&quot; src=&quot;http://www.bravoweb.com.au/other/icon_rss_feed.png&quot; alt=&quot;Join RSS Feed&quot;/&gt;&lt;a href=&quot;http://feeds.feedburner.com/ProjectManagementForTheWeb&quot;&gt;Subscribe to RSS Feed&lt;/a&gt;.&lt;/div&gt;</description><link>http://pm4web.blogspot.com/2010/04/writing-short-easy-to-read-fee.html</link><author>noreply@blogger.com (Louis Marshall)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeadzRuZs8gDiCnh1NruntdCH30OJvm2JpiIZxTijxPL4877YEfJLzTzB4EUL40u_k08uykXpLaEU4GiwV7W6QedPnNWfFj_KcZUWWumBbolxfnpVNaUTPmV2n8YTZYAVsKs9Xp7QMx7w/s72-c/dilbert_caring_about_the_budget.gif" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6566653093437934181.post-2728645217943757660</guid><pubDate>Sun, 14 Mar 2010 21:39:00 +0000</pubDate><atom:updated>2014-04-20T11:20:23.473+10:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">fee proposal</category><category domain="http://www.blogger.com/atom/ns#">project proposal</category><category domain="http://www.blogger.com/atom/ns#">quote</category><category domain="http://www.blogger.com/atom/ns#">tenders</category><title>Writing Short, Easy to Read Fee Proposals (Part 2)</title><description>&lt;i&gt;Creating fee proposals which are quick to write &amp;amp; easy to understand.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border: 1px solid rgb(204, 204, 204); font-size: 11px; margin-left: 5px; margin-right: 25px; padding: 5px;&quot;&gt;
Due to the length of this article, it has been split into two separate but related parts. &lt;a href=&quot;http://pm4web.blogspot.com/2010/04/writing-short-easy-to-read-fee.html&quot;&gt;The first article&lt;/a&gt; provides the reasoning behind the proposal style. This part describes the various sections of the proposal structure in more detail.&lt;/div&gt;
&lt;br /&gt;
You may be wondering why I haven&#39;t taken down my old article &lt;a href=&quot;http://pm4web.blogspot.com/2008/07/writing-fee-proposals.html&quot;&gt;Writing Fee Proposals&lt;/a&gt;. After all, if I think this format is better, why bother keeping the old one? I think it&#39;s important to remember where you came from, and the things which helped you get there. In addition, there is still relevant information in that article, and who knows, the older format may appeal more to some people.&lt;br /&gt;
&lt;br /&gt;
Now it&#39;s time to delve deeper into the new structure, with some concrete examples to help get things moving. In big-picture terms, the document is broken down into two major sections: 1) the first page - this acts as a high level executive summary, and 2) the Appendix - everything else goes here.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Big bold document title&lt;/i&gt;&lt;br /&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5II7c0ulkCV19nxt_9oDHQrJpZZPdfa1OifyYWnc1zVDE2REW6EWRXbe2vVchrXOqA0_DjZ_8RA1ixsRMWlJ8RSV0NcBcscIxwo8XSz3tT80LY3vZ_kO8merOyd0uePaEusZLCT8LI6o/s400/screenshot_01.png&quot; id=&quot;BLOGGER_PHOTO_ID_5479154699978917938&quot; style=&quot;border: 0px; cursor: hand; cursor: pointer; height: 124px; width: 330px;&quot; /&gt;&lt;br /&gt;
When someone picks up the document, they will know what it is immediately. I always start with the word &#39;Fee Proposal&#39;, but there&#39;s nothing wrong with calling it &#39;Tender&#39; or &#39;Quote&#39;. I follow with the company name and than what the system is (e.g. &#39;ACME Website&#39;, &#39;ACME Online Booking System&#39;, etc).&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Say where supplier &amp;amp; contractor details are located&lt;/i&gt;&lt;br /&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqd04cCZeoQpFXFItykj1tm14KWioK2jIVRxSI1EPG5O78elQoQrPQUI3lu-L80sTCoeILYUHUGt4gpkrkfb2cKPgt4Ppei1IPO_tsx4me7jbv-KJHrUroqI8SVFh_y6KrVi69qu9A8oI/s400/screenshot_02.png&quot; id=&quot;BLOGGER_PHOTO_ID_5479154940362209186&quot; style=&quot;border: 0px; cursor: hand; cursor: pointer; height: 58px; width: 329px;&quot; /&gt;&lt;br /&gt;
This is a single line saying that contractor and supplier details are located in the appendix. This information is often put on the front page but I don&#39;t believe its value justifies occupying such prime real-estate.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Document purpose&lt;/i&gt;&lt;br /&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgE-UoIVE-aAGpsu-PyiPQiqFRa0iY7lCN4ZJRpfhEdosq0M0TLNPc28rA7Z_4xwGF5-9psMgyiPEDBNFDlC0oE3Ju0euONvKrBXL4hRYh_hpyqlMIfQ6VCOyaistJqtj_uTNkIZdrIoec/s400/screenshot_03.png&quot; id=&quot;BLOGGER_PHOTO_ID_5479155160017825410&quot; style=&quot;border: 0px; cursor: hand; cursor: pointer; height: 58px; width: 314px;&quot; /&gt;&lt;br /&gt;
One line describing what the document is about. You can use a standard line like: &#39;Document purpose: to outline the work &amp;amp; costs involved in undertaking the ACME project&#39;. This will be helpful to anyone picking up the document for the first time.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Cost Summary&lt;/i&gt;&lt;br /&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyAcGhFA2rdhZW_K5gpu8MbHLMywQLkm74v5XmrmO5noagLlhQUIDvqlEIcXJ1C3i28ReA8FFUL53_cxVyzdoACHW2YwQgZy55WfPYWwOvcMb5dRfVsIqf0MBOZ_Fe3dKZKnlbXz_-qRw/s400/screenshot_0166.png&quot; id=&quot;BLOGGER_PHOTO_ID_5479155404713268610&quot; style=&quot;border: 0px; cursor: hand; cursor: pointer; height: 146px; width: 328px;&quot; /&gt;&lt;br /&gt;
Arguably the most important part of the document (at least from a client&#39;s perspective). This is where you present what you plan to deliver and what it will cost. At the bottom of the table, you have the project&#39;s total budget. The key here is brevity; you should be able to get things onto a single line most of the time. There will be times when it goes beyond one line, for instance; if you&#39;re listing specific web pages you intend to deliver (e.g. About Us, Products, etc.)&lt;br /&gt;
&lt;br /&gt;
There are line items which are common to most web projects, these include: creation of wireframes, requirements gathering, integration &amp;amp; customization of the CMS, creation of a specification document, and quality control/testing.&lt;br /&gt;
&lt;br /&gt;
You also need to capture tasks which aren&#39;t technology related, but which you spend time on anyway. For instance, people commonly forget to charge for the time it took to create the fee proposal, or the time it takes to generate and send-out invoices. This is time you are spending on the client&#39;s behalf, why shouldn&#39;t you be remunerated for it?&lt;br /&gt;
&lt;br /&gt;
Some commonly missed items include: client communication (status updates, further requirements gathering, etc), setting up the live hosting environment, bug management and support.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that the person reading the document may not be tech-savvy. Explain things as much as possible, instead of saying &#39;PayPal integration&#39;, expand this to: &#39;Paypal integration (service used for taking &amp;amp; retrieving online payments).&#39;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Change of Requirements&lt;/i&gt;&lt;br /&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMRhJReAF0sy-HWgqUOwzJyvr_nDF38Yihf801WVL1hON-q-EXmtByRGWCw6TADtjddpFEc3uvuPp-LC-MTq-PDMfVrc_ChIBZXceUSP9oZrk2payRUPDzznUQCQ-zBcVUr0UVI6XRHMg/s400/screenshot_0167.png&quot; id=&quot;BLOGGER_PHOTO_ID_5479156287906236050&quot; style=&quot;border: 0px; cursor: hand; cursor: pointer; height: 116px; width: 319px;&quot; /&gt;&lt;br /&gt;
This section is very important from a supplier&#39;s point of view. It sets out the ground-rules for the development process. Scope-creep is known to be a massive project killer, that&#39;s why this is the ideal point to make it known to the client what happens if they change their mind. The two points to emphasize are; 1) additional features increase the budget, and 2) that adding features once the project is underway will push-back the delivery date. &lt;br /&gt;
&lt;br /&gt;
I can&#39;t stress the importance of having this block on the first page, it is just good professional practice to make these vital points known to the client before the project begins. I also mention that the proposal only covers the cost of features described in this document, and nothing more. &lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Project Engagement Sign-off&lt;/i&gt;&lt;br /&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixt5oTiChK-Af3DEsiQbac2j58iZWN18Xd20o0jb5C47EzBO13kS2-qdiM5NHU_5sg31n88AJRDHqjzBIIxj9F5xWQSWz5Z22XtEp8ASHUWxxOXTqDPrE4IzabCbG3D0_ZA03vhb2LJYk/s400/screenshot_0168.png&quot; id=&quot;BLOGGER_PHOTO_ID_5479156504505819154&quot; style=&quot;border: 0px; cursor: hand; cursor: pointer; height: 148px; width: 293px;&quot; /&gt;&lt;br /&gt;
The project engagement sign-off seals the deal between both parties. The head stake-holder from the client&#39;s side signs here, as do you. For large projects, it&#39;s very risky, and down-right unprofessional to not get this physically signed. For smaller projects, an email from the client is enough, something like this will suffice: &quot;I&#39;m happy with the costings in the fee proposal, please proceed with the project. - ACME&quot;&lt;br /&gt;
&lt;br /&gt;
This covers the contents of the first page. Everything else goes into the appendix.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Introduction&lt;/i&gt;&lt;br /&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1tGvf_rE6WXCu23JhPi_A8xgWIzgyJxJnuAob0K03NeFD3Q2-7tfNxCOrhtyxjthBlHq8tiOuBAJfvW7D6v4oQ3tgtyy9KwEc9-Y93a_gtH2XDJE1HEZk2l-kV85-ppZBQLyMY1yzRWQ/s400/screenshot_0169.png&quot; id=&quot;BLOGGER_PHOTO_ID_5479156857722932322&quot; style=&quot;border: 0px; cursor: hand; cursor: pointer; height: 204px; width: 286px;&quot; /&gt;&lt;br /&gt;
The appendix is split into a number of sub-headings. Begin with 2-3 bullet points describing the over-arching objectives of the project. This will go some way towards demonstrating that you&#39;ve paid attention to the client&#39;s requirements.&lt;br /&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQ60WSy4i60JtNUrKVoiwC1l1Mjr-wbxPktshDaDgIp5GsOpX0FlwGwZaHISOsLBsA6yhGtu94JR4y-KXW2TtBdsufcBlgPAbrQn1ALbucHXjkTlEqCfGIYJP7hOLg7901mrvBbi_Wros/s400/screenshot_0171.png&quot; id=&quot;BLOGGER_PHOTO_ID_5479157080419925394&quot; style=&quot;border: 0px; cursor: hand; cursor: pointer; height: 101px; width: 247px;&quot; /&gt;&lt;br /&gt;
The client background section demonstrates that you&#39;ve been paying attention and care about the client&#39;s business. One paragraph will suffice, succinctly state what the business does, perhaps who their target audience is, what their market segment is, what service or product they are known for - that sort of thing.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Technology to be used&lt;/i&gt;&lt;br /&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPD4yq0BuoMTn7iXEEXET9zEzo2zmEgZp7WO6eHxICb3izcMHZj98MhPbi4rQtelQryKn2CUcFPRU6xZ_SUOP_3wE6K6FLKVUIFpXLYI4EJaeTqSKXd6ULva8XP-Do4yuBTtgWJ4sB4bI/s400/screenshot_0172.png&quot; id=&quot;BLOGGER_PHOTO_ID_5479158081089536690&quot; style=&quot;border: 0px; cursor: hand; cursor: pointer; height: 96px; width: 218px;&quot; /&gt;&lt;br /&gt;
This is a good place to make a statement about what programming language you intend to employ. Also, you should mention what database system will be implemented. This information could be significant as there may be third party costs or performance issues the client needs to be aware of (e.g. &lt;i&gt;MS SQL Server&lt;/i&gt; has to be hosted on a Windows server and costs more, &lt;i&gt;MS Access&lt;/i&gt; only supports so many concurrent users, etc). If a CMS is being used, this is where you would say which one. You should also make a brief statement about what browsers will be supported.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Project Schedule (or production checklist)&lt;/i&gt;&lt;br /&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-Xuay1P3PKTff-QNtmyLqQj1JGr4tkt1mY2uFCaB4h2srM9BF6Pu4Uw6GuTYtRaJ1Y1_jMQWsIY_Tr9Et3nhtXJQ5U6_OVwdRe5hTNb78Tay2NvvfqVPDlengi4kbBESLURgxVe7hKqs/s400/screenshot_0173.png&quot; id=&quot;BLOGGER_PHOTO_ID_5479158329781469666&quot; style=&quot;border: 0px; cursor: hand; cursor: pointer; height: 92px; width: 218px;&quot; /&gt;&lt;br /&gt;
Mention that a project schedule will be used to track tasks and resources. When smaller budgets are involved (e.g. 40 hours or less), I tend to use a production checklist instead. This is a checklist of tasks and a percentage marker to indicate the status of the task.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Non-requirements&lt;/i&gt;&lt;br /&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDLPBrvkV8cDAJtJoFqKeeyw9N7GxvkiijiM7x1fo64NewkrzZkE_rpVEto6cwgdnziq6pYcKPD-FtBtAzbD-IJ-7xkrdlah9VXd8tq1pDp48c7t5yAQL5WFWThnrUnoXstAz8v-BEhFg/s400/screenshot_0174.png&quot; id=&quot;BLOGGER_PHOTO_ID_5479158679372457010&quot; style=&quot;border: 0px; cursor: hand; cursor: pointer; height: 112px; width: 248px;&quot; /&gt;&lt;br /&gt;
A fee proposal says what a client will get for their money, but it&#39;s just as important to say what they aren&#39;t getting. This section goes a long way towards squashing assumptions before they become a problem. For instance; if you&#39;re building an online shop, you should say if international purchases won&#39;t be supported. Imagine if the client assumed they would be able to sell their goods world-wide, but you haven&#39;t coded it that way. All of a sudden you are in a situation where you could be pressured into undertaking a significant amount of unpaid work. &lt;br /&gt;
&lt;br /&gt;
There is another situation where this section is of vital importance. It may happen that during scoping discussions the client brings up a feature they really have their heart set-on. For whatever reason, you decide it can&#39;t be done (perhaps for technical reasons, or maybe because of budget). This is a big danger. 3-4 months may pass, and the client may ask &quot;hey, where&#39;s the user satellite tracking feature?&quot;, you reply &quot;don&#39;t you remember, we discussed this and agreed it wouldn&#39;t be included?&quot;, client: &quot;no&quot;. This could be a problem. You would be in a much safer position if you could say &quot;the non-requirements section of the proposal says it&#39;s not included&quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Contractor &amp;amp; client details&lt;/i&gt;&lt;br /&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbDYpmVi03yeo8K1_z19UqKMYOg0NrjluvNIZq9PqvCQjb8K61eDKgUXhqIdf36pit_7mA0_q4Wr_E9Z3J-gDj-do3dO2apKtskC_xbSCXnZ4BYhbAcUkrsaGtxKXpeoLKUAc5diPIGos/s400/screenshot_0188.png&quot; id=&quot;BLOGGER_PHOTO_ID_5479158862234300850&quot; style=&quot;border: 0px; cursor: hand; cursor: pointer; height: 114px; width: 296px;&quot; /&gt;&lt;br /&gt;
This section holds information about the client&#39;s business and contact details. Your information as a supplier goes in here too. There is a degree of personal taste at work here, it&#39;s not a big deal to do this differently or to leave it out entirely. I also sneak in some information about the date the proposal was created, and how long it will remain valid for.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Project Team&lt;/i&gt;&lt;br /&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDQBIUh1A7EGrbbRte37cgWg7dfnu61NkqU_kffxys0qSuII_4Ar_Xdfkts8f_nD2NCsykfk9YytFCQH7pnTgfZ-4T6qYa5CSAz_TYXia1E0One1W0chTBzya_C-1uDzpE19jbc7lUukc/s400/screenshot_0189.png&quot; id=&quot;BLOGGER_PHOTO_ID_5479159193029702818&quot; style=&quot;border: 0px; cursor: hand; cursor: pointer; height: 97px; width: 261px;&quot; /&gt;&lt;br /&gt;
A short paragraph describing key members of the development team (e.g. a word or two about their qualifications). You could leave this out if you wanted, to a degree it&#39;s a matter of personal taste. I like to put this in for the sake of credibility, so your client at least knows they are getting a qualified person for this money, not some kind of code monkey.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Costs&lt;/i&gt;&lt;br /&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIwZXRaiYCwBFL1linYuqXxDf6GxhlT9tPxm2N_Qg8rlYb4Uen9q2aB30jT47z_KpPtcJ_cVPqEYW00dbADG5vWXDYb7y5CWdrWy2Km2EVSfW7LRVqotFPqm1zZ9TXU3wjDTZRKaEAGRU/s400/screenshot_0190.png&quot; id=&quot;BLOGGER_PHOTO_ID_5479159359652455218&quot; style=&quot;border: 0px; cursor: hand; cursor: pointer; height: 115px; width: 263px;&quot; /&gt;&lt;br /&gt;
This section doesn&#39;t need to be more than half a page. It does however cover some very important points which the client needs to be made aware of. &lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Change of Requirements&lt;/i&gt; - there was brief mention of this on the first page, but it&#39;s so important a topic that it bears repeating. Again, you need to spell it out that the fee proposal only covers items described in the proposal document, and that if new features are added, they will cost more and may push out the delivery date.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Budgeting for Additional Features&lt;/i&gt; - this is something which is often omitted. As developers we know that not everything will be thought of during the planning phase. Therefore it&#39;s important to tell the client to set aside money for unforeseen features they require. As a rule-of-thumb, I tell clients that they will need an additional 10% of the project&#39;s total budget in reserve.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Third Party Costs&lt;/i&gt; - this helps avoid any surprises. Let the client know in advance if they  need to budget for things like hosting, or a SSL certificate.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Payment Stages&lt;/i&gt; - in this section you set-out the payment milestones for the project. My personal preference is to take a 20% deposit before the project begins in earnest, than a 70% payment when the project reaches 90% completion, and the final 10% upon sign-off. &lt;br /&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVL67_7koLeqg5kNTIuKDtkdLfKHWYLX2H_XQuthq9lOYZmVQtNSfnWIfYCiDu0drGUWqNvTuAaFuMYWMlwWKnyPLDMR7gPESn3vlwmEjea7wBte6qj2bBrv-U7ungKxPbQqZ5tqbVbO8/s400/screenshot_0191.png&quot; id=&quot;BLOGGER_PHOTO_ID_5479159782724102402&quot; style=&quot;border: 0px; cursor: hand; cursor: pointer; height: 127px; width: 229px;&quot; /&gt;&lt;br /&gt;
Deciding how to set out your payment milestones is a topic in itself, one which is beyond the scope of this article (see &lt;a href=&quot;http://pm4web.blogspot.com/2009/03/payment-structure-on-small-projects.html&quot;&gt;Payment Structure on Small Projects&lt;/a&gt; if you&#39;d like to learn more).&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Terms&lt;/i&gt;&lt;br /&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidCRJ8h52419mS5Ecf5BZrZmrnGDAaF39jfbkYYYb2hJU51EQJznMrcptCZKc-6sRY9JPEjioBU-Gl7SPWK6MaCrqbO5ypKo9AVy9-NfnOEk3Sn233sXGrGPYJyX8m68UQ9E5R6TwPsbQ/s400/screenshot_0192.png&quot; id=&quot;BLOGGER_PHOTO_ID_5479160106340782466&quot; style=&quot;border: 0px; cursor: hand; cursor: pointer; height: 140px; width: 302px;&quot; /&gt;&lt;br /&gt;
My terms and conditions section is relatively short, but this is likely to change on the next large project I do. This is in order to protect myself from clients that willfully disregard SDLC ground-rules established at the beginning of a project. &lt;br /&gt;
&lt;br /&gt;
One of the important points I mention here is that the project won&#39;t begin until the start-up deposit is received. Other terms include: how much time a client has to pay an invoice once its sent, CMS licensing information, and &#39;development staging&#39; of the website. &lt;br /&gt;
&lt;br /&gt;
Development staging means that the site is up live and available for the client to review, but it&#39;s not easily accessible to the public (e.g. a place-holder index.html page takes precedence over the default.aspx page). A site is only launched (or taken out of staging) once final payment is made.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Software Warranty&lt;/i&gt;&lt;br /&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtuHEFsKiAIWUSdpZjt195wrA7f2GlsLCGeLOCfzz2ULcGwjklUdZSesMKrusIPDEQVVl__Zc1eI5tNlwTtLiL8rK32rYKn8PjXdx4gxuk7znVQW9VljTLqB3pOa6jzVV-qj747o64Prs/s400/screenshot_0193.png&quot; id=&quot;BLOGGER_PHOTO_ID_5479160274725298002&quot; style=&quot;border: 0px; cursor: hand; cursor: pointer; height: 118px; width: 271px;&quot; /&gt;&lt;br /&gt;
In this section, I describe the warranty I provide with my work. Generally I commit to fixing bugs for free for a period of 6 months after launch. I know some people provide bug fixing for an indefinite period of time, and others that only do it for 3 months. You will have to find a time period that suits you. It is also very important to state just what a bug is, in your mind that may be very clear, but skip this definition at your own peril.&lt;br /&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4PauGWPLyxwUNKjLF3qA4GaW8zrITpgQFzKyeT75ubvRxzUYg_JUrK44GmPLW9JPVUPJ1R60UFBzD8NdUygmA0BdsRLak2e9MuEDDgIOzqiHiprD7sL3GUzHj1TrFKuxPQPMvmrjfH6I/s400/screenshot_0194.png&quot; id=&quot;BLOGGER_PHOTO_ID_5479160423487198706&quot; style=&quot;border: 0px; cursor: hand; cursor: pointer; height: 103px; width: 310px;&quot; /&gt;&lt;br /&gt;
&lt;i&gt;Logging of Bugs&lt;/i&gt; - I have a couple of lines stating that bugs need to be reported via a bug tracking mechanism. If you want any hope of getting clients to use your bug tracking software, you must discuss this early on in the project. Even then, it may be an uphill battle getting them to use it.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Content Management System&lt;/i&gt;&lt;br /&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgP927So-cEd__Dl35bgbac13NENW371MoJ8yPUH_NrFTXsUyr7D8yGF5EK_ALe8f9luKlZIcin_TmKkFoHo9wUEdIhIu7Nh13JUS0HC-wg8feIKrSoPsYlAO2ffPJHu26MW9wsnlIf_JA/s400/screenshot_0195.png&quot; id=&quot;BLOGGER_PHOTO_ID_5479160603737327554&quot; style=&quot;border: 0px; cursor: hand; cursor: pointer; height: 145px; width: 301px;&quot; /&gt;&lt;br /&gt;
This section is optional, depending on whether you offer a CMS as part of the project. Nearly all of my private contracting work comes with a proprietary CMS I built called &lt;i&gt;AURON&lt;/i&gt;. I have an example screenshot of the CMS in this section, along with a very basic description of what a CMS is. I also make note of the limitations of the CMS, mainly that it has no &lt;i&gt;WYSIWYG&lt;/i&gt; editing capabilities.&lt;br /&gt;
___&lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;Dilbert - development methodology&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheyz_qp9ExX8CSfhRrq18RqaqGl27hM8ckNExLCeZqytlUKP4PeEHn1p6X6l_aqmR-mBrzXo_zCGNxNryEt4YGzVt9wZLvN4-bJEEZ4wryi6rzWWJoUvgJwWb5-8naTiotH0BTc-rwPDg/s400/dilbert_cartoon.png&quot; id=&quot;BLOGGER_PHOTO_ID_5479153990729936754&quot; style=&quot;cursor: hand; cursor: pointer; height: 132px; width: 400px;&quot; /&gt;&lt;br /&gt;
A quick note about document style, you may have noticed from screenshots in this article that my word documents are very plain and unsexy - &#39;straight meat and potatoes&#39; if you will. I have seen many fancy document templates at companies, branded with the company logo and lots of &#39;useful&#39; information in the footer.&lt;br /&gt;
&lt;br /&gt;
I understand the reasoning behind this, but I take a different path. The reason why I don&#39;t put logos, colored headings, footers with copyright notices, etc in my documents is to make it easier for new people to pick-up the document and run with it. When a person picks-up a foreign-looking document for the first time, they have to make an investment to get their head around it, decide what to ignore and what&#39;s of value. This may seem like heresy to a marketing or business person, and I doubt I would get broad support on this topic. I admit there is an element of personal taste/opinion at work here too.&lt;br /&gt;
&lt;br /&gt;
There may be things about my proposal document structure which you don&#39;t like, and that&#39;s OK; just take the parts you like and adapt them to suit your needs and personal tastes. One strange thing I do is not bother including a table of contents (&quot;sacrilege!&quot; I hear you say), but hear me out. What need is there for a table of contents when a document is so short that you can just flick through it looking at bold headings to find what you want? What need is there for a table of contents now that we have Ctrl+F (i.e. the Windows search dialogue)?&lt;br /&gt;
&lt;br /&gt;
Read &lt;a href=&quot;http://pm4web.blogspot.com/2010/04/writing-short-easy-to-read-fee.html&quot;&gt;part 1&lt;/a&gt; for the background reasoning behind the new proposal structure.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border: 1px solid rgb(204, 204, 204); font-size: 11px; margin-left: 5px; margin-right: 25px; padding: 5px;&quot;&gt;
Special thanks to Moin uz Zaman and Petras Surna for providing input and feedback during the development of the new proposal structure.&lt;/div&gt;
&lt;br /&gt;
&lt;img alt=&quot;Join RSS Feed&quot; src=&quot;http://www.bravoweb.com.au/other/icon_rss_feed.png&quot; style=&quot;border: none;&quot; /&gt;&lt;a href=&quot;http://feeds.feedburner.com/ProjectManagementForTheWeb&quot;&gt;Subscribe to RSS Feed&lt;/a&gt;.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img style=&quot;padding:0px; margin: 0px; border: none; margin-right: 4px; vertical-align: middle;&quot; src=&quot;http://www.bravoweb.com.au/other/icon_rss_feed.png&quot; alt=&quot;Join RSS Feed&quot;/&gt;&lt;a href=&quot;http://feeds.feedburner.com/ProjectManagementForTheWeb&quot;&gt;Subscribe to RSS Feed&lt;/a&gt;.&lt;/div&gt;</description><link>http://pm4web.blogspot.com/2010/04/writing-short-easy-to-read-fee_04.html</link><author>noreply@blogger.com (Louis Marshall)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5II7c0ulkCV19nxt_9oDHQrJpZZPdfa1OifyYWnc1zVDE2REW6EWRXbe2vVchrXOqA0_DjZ_8RA1ixsRMWlJ8RSV0NcBcscIxwo8XSz3tT80LY3vZ_kO8merOyd0uePaEusZLCT8LI6o/s72-c/screenshot_01.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6566653093437934181.post-2908859382798551134</guid><pubDate>Sun, 07 Mar 2010 21:17:00 +0000</pubDate><atom:updated>2011-05-22T00:32:12.856+10:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">end of project report</category><category domain="http://www.blogger.com/atom/ns#">lessons learned report</category><category domain="http://www.blogger.com/atom/ns#">lessons learnt</category><category domain="http://www.blogger.com/atom/ns#">project debriefings</category><category domain="http://www.blogger.com/atom/ns#">project post-mortem</category><title>Super-Quick Project Post-mortems</title><description>&lt;i&gt;The project post-mortem you do when you don&#39;t have time for a project post-mortem.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;border: 1px solid rgb(204, 204, 204); padding: 5px; margin-left: 5px; margin-right: 25px; font-size: 11px;&quot;&gt;Good judgment comes from experience, and experience comes from bad judgment. - Mulla Nasrudin&lt;/div&gt;&lt;br /&gt;&quot;Don&#39;t you already have &lt;a href=&quot;http://pm4web.blogspot.com/2008/07/project-post-mortems.html&quot;&gt;a blog article on project post-mortems&lt;/a&gt;?&quot; Yes, I do. You may be wondering why I&#39;m writing another article on the same topic. It&#39;s not because I have an improved version to share, and it&#39;s not because I don&#39;t believe in the structure I previously devised, in fact, I don&#39;t even like this structure I&#39;m about to describe. But just because I don&#39;t like something doesn&#39;t mean it doesn&#39;t have value. The bottom line is that some form of project post-mortem is better than no post-mortem at all.&lt;br /&gt;&lt;br /&gt;This leads me to the question; in what situations is this style of report useful? The answer is when you don&#39;t have time to run a thorough debriefing at the end of a project. Using this style of report, you can prepare a post mortem document in under 3 hours. So what&#39;s my problem with this format than? It&#39;s very subjective, it makes no numeric analysis of the bug log, and it doesn&#39;t gather input from the developers who worked on the project. That said, it is super fast to produce, so I begrudgingly bow my head to it.&lt;br /&gt;&lt;br /&gt;The report format is loosely based on the &lt;i&gt;PRINCE2&lt;/i&gt; lessons learned report protocol. I recall when the structure was first proposed by the lead project manager, I was quite against it, I said my piece, and then waited for a rubbish report to be produced. To my surprise, the report wasn&#39;t rubbish, it was quite insightful. It was a good lesson for me too, in flexibility and &#39;giving things a chance&#39;. The other area of merit this format possesses is that it has room for describing what went well on a project. All too often people want to focus on the negative, but I think its important to speak about the successful aspects of a project too.&lt;br /&gt;&lt;br /&gt;The real beauty of the report is that it was written in about 2 hours. This was done in coordination with the lead project manager. I had tried to get approval from the managing director to get the hours needed to do the more &lt;a href=&quot;http://pm4web.blogspot.com/2008/07/project-post-mortems.html&quot;&gt;in-depth style of project post-mortem&lt;/a&gt; I like, but there wasn&#39;t enough time.&lt;br /&gt;&lt;br /&gt;Now onto the structure of the report. The original report I produced was a &lt;i&gt;PowerPoint&lt;/i&gt; presentation, but a &lt;i&gt;Word&lt;/i&gt; document is fine too. Each page is made up of a main title signifying the area under analysis (e.g. Management, or Technical). Most pages have a sub-heading along the lines of &#39;what went well&#39; or &#39;what went badly&#39; (I like the straight-forwardness of these titles, there&#39;s no sugar-coating). Each page contains bullet points rather than paragraphs of text.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Title page&lt;/i&gt; - a title like &#39;ACME Project Post Mortem&#39; in large font, than the date of the report and the start and finish date of the project.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Management - what went well&lt;/i&gt; - on this page you describe good management practices employed during the course of the project. Describe strategies and protocols which were seen to pay dividends. For example: &quot;low number of post-launch bug reports. This indicates effective QA protocols&quot;, &quot;team commitment was good - everyone contributed time after hours to finish the project.&quot;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Management - what went badly&lt;/i&gt; - a description of management practices used through-out the project which caused hardship or didn&#39;t come out as expected. For example: &quot;the wrong prototyping tool was chosen for creating wireframes&quot;, &quot;formal approvals not taken from client, resulting in lost revenue and rework.&quot;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Management - what was lacking&lt;/i&gt; - this section gives you a chance to discuss what practices would of helped the project along (i.e. &quot;things would of gone better if we...&quot;). For example: &quot;we should of done technical briefing sessions with programmers before they started to code&quot;, &quot;we should of spent more time analyzing the spec to produce better time estimates for the project schedule.&quot;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Events&lt;/i&gt; - a summary of abnormal events which caused deviations on the project (this could be deviations in budget or delivery date). Examples would be: &quot;delays and disruptions caused by staff turn-over&quot;, &quot;delays in project progress caused when entire team was moved to a new office location.&quot;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Technical - what went well&lt;/i&gt; - describe what technical decisions turned out to be a good choice. Examples would be: &quot;the bug tracking system helped manage and control bug reports&quot;, &quot;the CMS we chose for the project was simple to install and configure, and easy to teach the client how to use.&quot;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Technical - what went badly&lt;/i&gt; - a few bullet points about what technology choices hampered the progress of the project. For example: &quot;a lot of the bugs logged were UI related, indicating a lack of attention to detail&quot;, &quot;a XML data-store was chosen for the product catalogue when a database implementation would have been better.&quot;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Recommendations&lt;/i&gt; - arguably the most important section of the document, you can&#39;t get to this until you&#39;ve laid out the proceeding pages of the report. Here is where you bring it all together, look for overall patterns and pose suggestions for how things can be done better on the next project. Some examples would be: &quot;ensure developers get a technical briefing before they code&quot;, &quot;development tools should not be changed mid-project if a functioning tool is already in place.&quot;&lt;br /&gt;&lt;br /&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 400px; height: 129px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBXOrsKABwFn5PDJWTjYZEiR15Tsd_nfvp9NCuYVhH8YPv4BN4EgyCcc5xCqH2sulWV11BOLWa9vTa89BtDEJXxplATOpwQ9hCmjR8asK8pDtM9SSCOy2QQ2_qV_zDlLrDGlNJk-0GW9U/s400/dilbert_shuttle_to_space.gif&quot; border=&quot;0&quot; alt=&quot;Lessons Learned Report&quot; id=&quot;BLOGGER_PHOTO_ID_5456782704258053618&quot; /&gt;&lt;br /&gt;&lt;br /&gt;How long will the report be? Perhaps 10-15 &lt;i&gt;PowerPoint&lt;/i&gt; slides for a medium to large-sized project (e.g. 160-300 hours).&lt;br /&gt;&lt;br /&gt;As an interesting side-note, you&#39;ll probably find that on projects which didn&#39;t meet their set objectives, went over budget, or were delivered late, the &lt;i&gt;Management - what went badly&lt;/i&gt; section will probably be the biggest. The good thing about this is it somewhat objectively shows management practices are what derailed the project (rather than technical decisions).&lt;br /&gt;&lt;br /&gt;The witch-hunt factor. I don&#39;t believe the purpose of the post-mortem report is to lay blame and point fingers at individuals. That kind of activity serves no one. At its root, the post-mortem should lead to &#39;kaizen&#39;, a Japanese principle which is all about continuous improvement. Will a post-mortem radically change the processes used on the next project? Maybe, but it doesn&#39;t have to. It should at least lead to some improvements, some kind of change for the better, otherwise it&#39;s a useless exercise.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://www.bravoweb.com.au/other/icon_rss_feed.png&quot; alt=&quot;Join RSS Feed&quot; style=&quot;border: none;&quot;/&gt;&lt;a href=&quot;http://feeds.feedburner.com/ProjectManagementForTheWeb&quot;&gt;Subscribe to RSS Feed&lt;/a&gt;.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img style=&quot;padding:0px; margin: 0px; border: none; margin-right: 4px; vertical-align: middle;&quot; src=&quot;http://www.bravoweb.com.au/other/icon_rss_feed.png&quot; alt=&quot;Join RSS Feed&quot;/&gt;&lt;a href=&quot;http://feeds.feedburner.com/ProjectManagementForTheWeb&quot;&gt;Subscribe to RSS Feed&lt;/a&gt;.&lt;/div&gt;</description><link>http://pm4web.blogspot.com/2010/03/super-quick-project-post-mortems.html</link><author>noreply@blogger.com (Louis Marshall)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBXOrsKABwFn5PDJWTjYZEiR15Tsd_nfvp9NCuYVhH8YPv4BN4EgyCcc5xCqH2sulWV11BOLWa9vTa89BtDEJXxplATOpwQ9hCmjR8asK8pDtM9SSCOy2QQ2_qV_zDlLrDGlNJk-0GW9U/s72-c/dilbert_shuttle_to_space.gif" height="72" width="72"/><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6566653093437934181.post-2483778142312278880</guid><pubDate>Sun, 04 Oct 2009 02:18:00 +0000</pubDate><atom:updated>2014-04-20T11:21:05.971+10:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Agile</category><category domain="http://www.blogger.com/atom/ns#">conflict resolution</category><category domain="http://www.blogger.com/atom/ns#">customer service</category><category domain="http://www.blogger.com/atom/ns#">project management</category><category domain="http://www.blogger.com/atom/ns#">SDLC</category><category domain="http://www.blogger.com/atom/ns#">software design</category><category domain="http://www.blogger.com/atom/ns#">waterfall model</category><title>Making Customers Part of the Development Process</title><description>&lt;i&gt;Helping customers understand and get involved with their software project.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
The importance of talking to customers about how you will be building their software shouldn’t be underestimated. If you wait until the project is under way to begin managing a customer’s expectations, you&#39;ll find it’s too late; expectations have already been set (not necessarily in a good way either).&lt;br /&gt;
&lt;br /&gt;
You can generally assume that in a client&#39;s mind, the methodology you use is unimportant minutiae, they are not interested in the nuts and bolts of the process. They only care that the project gets done. This is not to say that the SDLC approach used is trivial; some clients are more suited to an Agile approach whilst others will be happier with classic waterfall. In the case of B2B, where a client may have a technical stake-holder directly involved with the project, keep in mind that there’s no point being ‘agile’ if your client doesn&#39;t buy into this too.&lt;br /&gt;
&lt;br /&gt;
Whether developers use Agile or waterfall model is beside the point from a client’s perspective, these are purely internal processes. The only time a client needs to know about the process is &lt;i&gt;at their interaction points&lt;/i&gt;. This is like encapsulation in object oriented programming; all a coder needs to know is what the interface looks like and how to interact with it. The inner workings of the function are not his concern.&lt;br /&gt;
&lt;br /&gt;
The key to involving clients with the development process is to only discuss processes which involve them directly. Clients need to know ahead of time what they&#39;re getting into and what to expect. Surprising a client with new information half-way through a project often sounds like an excuse. Some development houses use a &#39;client education pack&#39;. I believe this is a good idea as long as a project manager walks the client through it either in person or over the phone. Assuming a client will want to read a 20 page process manual you send them is just wishful thinking. The client needs to be part of the development process at any point where their input is required. Examples of this would be: meeting with you to describe what the software is meant to do, providing content for their website, approvals (e.g. design sign-off, UAT, etc). &lt;br /&gt;
&lt;br /&gt;
Arguably the most important point to bring up with a client is the effect of adding features to a project already under way (i.e. ‘scope creep’). There&#39;s more to this than just saying &quot;if its not in the spec, it will cost extra&quot;. There are implications relating to delivery date and more subtle dangers like new features breaking previously working ones. You may have techniques for dealing with these issues such as incorporating a change request budget into the fee proposal or requiring that non-critical features be implemented after initial release. &lt;br /&gt;
&lt;br /&gt;
Another important topic is the interconnected nature of features. Functional dependencies aren’t just confined to the realm of coding, they may extend to tasks requiring a client’s involvement. For instance; a client may not know that credit card transactions can’t be processed on their ecommerce-enabled website until they get an Internet Merchant Account and sign-up with a credit card clearing service.&lt;br /&gt;
&lt;br /&gt;
It’s unrealistic to think business interactions will go smoothly 100% of the time with all customers. That would be like thinking you can please everyone; you can&#39;t. This brings up the subject of choosing your clients, or even dropping troublesome ones. Dropping a client would seem counter-intuitive, after all, a business is there to make money, so turning away a paying customer seems kind of crazy. &lt;br /&gt;
&lt;br /&gt;
The reality is that on occasion you will encounter clients who are inflexible or uncompromising. The author &lt;i&gt;Stephen Covey&lt;/i&gt; perceptively described the outcomes of interpersonal conflict in his famous book &lt;i&gt;Seven Habits of Highly Effective People&lt;/i&gt;. They generally follow this structure: win/win, win/lose, or no deal. In terms of conflict with a client, the win/lose situation would be: 1) developer insists on following their internal process but angers the client (win/lose), 2) developer compromises their process to keep the client happy, but delivers a shoddy product (lose/win), 3) the developer drops the client (no deal). Ideally you would go for win/win situations as much as possible, where both parties get what they want without taking away from the other. A win/win solution is nearly always possible if both parties sincerely commit to working on a solution until an amicable outcome is achieved.&lt;br /&gt;
&lt;br /&gt;
It&#39;s important to keep the big picture in mind, if it’s only a trivial point, it’s best to let it slide. For example; a client may insist on red flashing text on their homepage. In such a case all that needs to be said is: &quot;this is a usability concern, I can still change it for you if you like but it will hurt the quality of your website.&quot; &lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;Dilbert - clients and development methodology&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaXv15hD22wMZaC5eDT2v3m7zMoH05L9xjS_6sAnOb1JcbtHuh2o1zcqzLjTR-b3I_5tYIT36zttTphW9mruX0guzxkxHwQbDr1wWueyzeYZeMZy-PryQw8Dnpln6RAyS-jknI8Rb72tM/s400/dilbert-crazy-talk.gif&quot; id=&quot;BLOGGER_PHOTO_ID_5388564495557980514&quot; style=&quot;cursor: hand; cursor: pointer; height: 132px; width: 400px;&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
At the end of the day it&#39;s not the responsibility of the client to understand software development, or anything else for that matter. Their primary responsibility is ensuring that enough budget is available to bring the product to fruition. The  technology supplier’s part is to deliver on what’s been promised. Using the hottest development methodology doesn&#39;t mean anything if you’re losing business or ruffling your client&#39;s feathers. Software development is a service industry; clients aren&#39;t concerned with how teams or projects are managed to an intricate level, they care about what they&#39;ve paid for: results. &lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;Join RSS Feed&quot; src=&quot;http://www.bravoweb.com.au/other/icon_rss_feed.png&quot; style=&quot;border: none; margin-right: 4px; margin: 0px; padding: 0px; vertical-align: middle;&quot; /&gt;&lt;a href=&quot;http://feeds.feedburner.com/ProjectManagementForTheWeb&quot;&gt;Subscribe to RSS Feed&lt;/a&gt;.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img style=&quot;padding:0px; margin: 0px; border: none; margin-right: 4px; vertical-align: middle;&quot; src=&quot;http://www.bravoweb.com.au/other/icon_rss_feed.png&quot; alt=&quot;Join RSS Feed&quot;/&gt;&lt;a href=&quot;http://feeds.feedburner.com/ProjectManagementForTheWeb&quot;&gt;Subscribe to RSS Feed&lt;/a&gt;.&lt;/div&gt;</description><link>http://pm4web.blogspot.com/2009/10/making-customers-part-of-development.html</link><author>noreply@blogger.com (Louis Marshall)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaXv15hD22wMZaC5eDT2v3m7zMoH05L9xjS_6sAnOb1JcbtHuh2o1zcqzLjTR-b3I_5tYIT36zttTphW9mruX0guzxkxHwQbDr1wWueyzeYZeMZy-PryQw8Dnpln6RAyS-jknI8Rb72tM/s72-c/dilbert-crazy-talk.gif" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6566653093437934181.post-544710335432401781</guid><pubDate>Wed, 09 Sep 2009 04:06:00 +0000</pubDate><atom:updated>2014-06-07T01:25:14.044+10:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">design brief</category><category domain="http://www.blogger.com/atom/ns#">graphic design</category><category domain="http://www.blogger.com/atom/ns#">requirements gathering</category><title>Writing a Design Brief</title><description>&lt;i&gt;Questions to ask before undertaking any creative project.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Comedian Chris Rock mused in one of his stand-up shows that &quot;you can drive a car with your feet if you want to; it don&#39;t mean it&#39;s a good idea!&quot; The same can be said for starting a creative endeavor without first taking down a design brief; you can certainly do it, but that doesn&#39;t make it a good idea.&lt;br /&gt;&lt;br /&gt;What&#39;s a design brief meant to do? The idea behind the design brief process is to tease out what the client has in mind. It&#39;s meant to &lt;i&gt;extract the visual communication requirements of the project&lt;/i&gt;. Whether it&#39;s the creation of a website or a brochure, the questions answered during the process will act as a guide for the development of the end product.&lt;br /&gt;&lt;br /&gt;Why is a design brief even needed you may ask, can&#39;t we just &#39;wing it&#39; and see how it turns out? After all, creativity shouldn&#39;t be constrained by bureaucratic procedure. This is definitely true, you don&#39;t want to apply stringent protocols to a creative endeavor, it can actually stifle the flow of creative juices. That said, a design brief is about moving from a vague idea to something firm that everyone can agree on. It&#39;s about moving away from &quot;I&#39;ll know what I like when I see it&quot; to a shared sense of the project&#39;s purpose.&lt;br /&gt;&lt;br /&gt;Should you run into the attitude of &quot;just get on with it&quot;, it falls upon you to explain the importance of undertaking the briefing session. Something along these lines should suffice: &quot;the design brief session takes about 15-25 minutes. It needs to be done so I can produce a high quality &lt;a href=&quot;http://www.astroecotech.com.au&quot;&gt;product&lt;/a&gt; for you.&quot;&lt;br /&gt;&lt;br /&gt;So what does a design brief document look like, and how do you conduct the briefing session? The template I use is a simple Word document about a page and a half long. It consists of 15 questions. There is also a preamble section with a short paragraph describing the document&#39;s purpose and another one on why the design brief is needed. On average, the briefing session itself takes about 20-30 minutes to complete. It can be done in the board room or at a cafe, it makes no difference since its an interview-style format.&lt;br /&gt;&lt;br /&gt;Let&#39;s take a look at some of questions you may want to include in your own design brief document. I should state that this template is best suited to smaller projects, like the creation of a ad for a niche magazine, or the development of a business website presence. It won&#39;t cut it for that Coca-Cola campaign you&#39;re pitching for. It&#39;s simple enough for anyone to use, not just professional graphic designers.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Target audience&lt;/i&gt; - You are trying to find out who the material is intended for. You want to know things like the audiences&#39; age, gender ratio, locality (national vs. international), occupation, etc. Why would such information be relevant? Take age for instance, if you were making a business card which is destined to be handed to seniors, it wouldn&#39;t be a good idea to use a tiny font on it.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Organization background&lt;/i&gt; - you should have a basic understanding of what your client&#39;s business does. Getting a brief history of your client&#39;s business will give context to the work you are doing.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Communication objectives&lt;/i&gt; - what message is are you trying to convey? What feeling or metaphors reflect the spirit of the &lt;a href=&quot;http://astroalloys.com.au/my-account/&quot;&gt;product&lt;/a&gt; or company? For example; is the client going for a corporatey image or something more fun and friendly?&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Market positioning&lt;/i&gt; - this connects closely to communication objectives. Is the client trying to appear like a big established company or an innovative new-comer? Do they want to appear as an international player or something more exclusive?&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Business objectives&lt;/i&gt; - what is the client actually trying to do with this piece of marketing material? Is it meant to act as a sales tool, is it meant to encourage inquires, or is it meant to promote brand awareness?&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Overall design goals&lt;/i&gt; - is the client going for continuity with their existing marketing material or are they trying to establish a new brand or product?&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Keywords indicative of the product&lt;/i&gt; - this is an opportunity to get some alignment with what your client has in mind. For example; you may ask &quot;what are some words that describe the logo I&#39;m designing for you?&quot;, the client may come back with &quot;simple, credible, professional&quot;.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Colors&lt;/i&gt; - is there a company style guide you need to follow? It could be that the client has some particular colors they wants you to try out. Otherwise, you would state you intend to stick with the existing corporate branding color scheme.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Hierarchy of information&lt;/i&gt; - what should grab the audience&#39;s attention first? This question is especially relevant for websites. Take a website selling a new product, you would expect the &#39;call to action&#39; to have a very prominent position on the homepage.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Where to find inspiration&lt;/i&gt; - ask the client to show you examples of work similar to the style they want used for the project. With a website, you may ask &quot;can you show me some websites you like?&quot; &lt;br /&gt;&lt;br /&gt;&lt;i&gt;Design examples&lt;/i&gt; - it’s not enough to just see the examples, you want to find out what the client likes or dislikes about them (e.g. &quot;its a simple design, I like that&quot; or &quot;our competitors website is cluttered with text&quot;). There could be many aspects which appeal to your client, including: color, imagery, typography, atmosphere, etc.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Artwork and content readiness&lt;/i&gt; - its best to find out early if things like logos are available in a high-res digital format, or if the copy text is ready. This often serves as a heads-up to the client, letting them know they have work to do as well (i.e. preparing the content for their website). It may also act as a signal to indicate a copywriter is needed on the project.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Time constraints&lt;/i&gt; - its vital to know when the work has to be ready. Your client may have an expo coming up which requires brochures to be printed and ready before-hand.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Budget and resource constraints&lt;/i&gt; - how much time and money is available for the project? There has to be some kind of alignment between your client&#39;s expectations and what you can deliver based on their budget and deadline. You may even find you can&#39;t take on the project, better to know this early on than commit to something you can&#39;t achieve.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Language to use&lt;/i&gt; - should the text appearing in the product be informal, corportey, inspirational, emotive? This may not be relevant to you if a copywriter is involved in the project.&lt;br /&gt;&lt;br /&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 400px; height: 127px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhx9VaFLspHgz5iwxyt58xlgGgQfguSArbR3Rn_ibZzbQgOo7ttdSOy7o8RST2zVmjKcNdIyULziXzamjrGpMvwo2KjJjxZ6z3YCvBB0KLQrD2UyfrnDHiO0x5oW77ymxpCuqiv_8CwKVQ/s400/dilbert_graphic_dept_logo.png&quot; border=&quot;0&quot; alt=&quot;Dilbert, graphic design department rushed&quot; id=&quot;BLOGGER_PHOTO_ID_5379315462600834802&quot; /&gt;&lt;br /&gt;&lt;br /&gt;As mentioned earlier, the design brief acts as a guide. It should be looked at periodically at various stages of the project to make sure you&#39;re on track. It should also be reviewed when the product is completed, to check that the original objectives of the project have truly been met.&lt;br /&gt;&lt;br /&gt;&lt;img style=&quot;padding:0px; margin: 0px; border: none; margin-right: 4px; vertical-align: middle;&quot; src=&quot;http://www.bravoweb.com.au/other/icon_rss_feed.png&quot; alt=&quot;Join RSS Feed&quot;/&gt;&lt;a href=&quot;http://feeds.feedburner.com/ProjectManagementForTheWeb&quot;&gt;Subscribe to RSS Feed&lt;/a&gt;.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img style=&quot;padding:0px; margin: 0px; border: none; margin-right: 4px; vertical-align: middle;&quot; src=&quot;http://www.bravoweb.com.au/other/icon_rss_feed.png&quot; alt=&quot;Join RSS Feed&quot;/&gt;&lt;a href=&quot;http://feeds.feedburner.com/ProjectManagementForTheWeb&quot;&gt;Subscribe to RSS Feed&lt;/a&gt;.&lt;/div&gt;</description><link>http://pm4web.blogspot.com/2009/09/writing-design-brief.html</link><author>noreply@blogger.com (Louis Marshall)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhx9VaFLspHgz5iwxyt58xlgGgQfguSArbR3Rn_ibZzbQgOo7ttdSOy7o8RST2zVmjKcNdIyULziXzamjrGpMvwo2KjJjxZ6z3YCvBB0KLQrD2UyfrnDHiO0x5oW77ymxpCuqiv_8CwKVQ/s72-c/dilbert_graphic_dept_logo.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6566653093437934181.post-3241235712825155877</guid><pubDate>Sun, 26 Jul 2009 13:26:00 +0000</pubDate><atom:updated>2014-04-20T11:21:33.113+10:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">HCI</category><category domain="http://www.blogger.com/atom/ns#">interface design</category><category domain="http://www.blogger.com/atom/ns#">usability</category><category domain="http://www.blogger.com/atom/ns#">usability testing</category><category domain="http://www.blogger.com/atom/ns#">user-centered design</category><title>Conducting a Usability Review</title><description>&lt;i&gt;An approach for unearthing usability issues in web-based systems&lt;/i&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border: 1px solid rgb(204, 204, 204); font-size: 11px; margin-left: 5px; margin-right: 25px; padding: 5px;&quot;&gt;
You don&#39;t see the spots before your eyes until they are there.&lt;br /&gt;
&lt;div style=&quot;height: 5px;&quot;&gt;
&lt;/div&gt;
&lt;i&gt;- Chinese proverb&lt;/i&gt;&lt;/div&gt;
&lt;br /&gt;
These days people expect so much from a user interface. Thanks to companies like &lt;i&gt;Google&lt;/i&gt;, &lt;i&gt;Microsoft&lt;/i&gt;, &lt;i&gt;37Signals&lt;/i&gt; and many others, web surfers have come to expect a world-class user experience no matter what application they use. People don&#39;t care if a multi-million dollar budget is available or not, the &#39;big boys&#39; have spoiled them rotten and exceptions are high. This is bad news if you don&#39;t have a skilled UI person on your development team (or if you don&#39;t have the budget to hire someone for a short-term contract).&lt;br /&gt;
&lt;br /&gt;
The consequence of sub-standard usability on a website may be subtle. For instance; if your online shop crashes when a person adds an item to their basket, they may be inclined to tell you about it. But if it’s something seemingly innocuous like locating contact details inside your &#39;About Us&#39; page (instead of within a dedicated contact page), there&#39;s a good chance visitors wont even be able to find contact details to let you know something&#39;s gone wrong.&lt;br /&gt;
&lt;br /&gt;
This is where a usability review comes in (or usability audit if you prefer). Conducting a usability review requires a certain kind of knowledge and expertise not common to all IT professionals. The same way a person may have a knack for SEO or picking up new programming languages, such is the nature of UI design. The intuitive aspects of usability and HCI analysis, like any other skill, can be learned, but not everyone is inclined to do so. Therefore, some kind of guiding template would be useful to those not willing to commit vast amounts of time to mastering the discipline. A usability review can provide just this kind of structure.&lt;br /&gt;
&lt;br /&gt;
What sort of project would benefit from a usability review? Pretty much any system which has been developed without the direct input of a usability expert from the start. If a usability specialist has been engaged from the onset of the project, chances are good that many usability best-practices have already been implemented. In this situation, you&#39;d be better off spending time conducting usability testing instead of investing time in a usability review (e.g. watching end-users directly interact with the system).&lt;br /&gt;
&lt;br /&gt;
So what does a usability review look like? The structure is quite simple; it’s just a Word document full of bullet points describing two things: what the problem is, and a suggestion for fixing it.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border: 1px solid rgb(204, 204, 204); font-size: 11px; margin-left: 5px; margin-right: 25px; padding: 5px;&quot;&gt;
&lt;ul&gt;
&lt;li&gt;Use of ‘click here’ hyperlinks - this is dated and passé (also poor in terms of SEO).&lt;br /&gt;&lt;b&gt;Fix:&lt;/b&gt; remove instances where ‘click here’ is used with hyperlink (e.g. ‘&lt;a href=&quot;http://www.google.com/&quot;&gt;click here&lt;/a&gt; for sales enquiries&#39; would become &#39;make a &lt;a href=&quot;http://www.google.com/&quot;&gt;sales enquiry&lt;/a&gt;&#39;).&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;br /&gt;
You may wish to create a few sections within the Word document to make it more manageable (e.g. Interface Issues, Visual Communication &amp;amp; Branding, Information Architecture, Error Messages, Content &amp;amp; Language, etc).&lt;br /&gt;
&lt;br /&gt;
The big question of course is; what to look for when conducting your review. This is a tricky question because in truth, the answer is far beyond the scope of a simple blog article like this. That said, I have prepared a basic list of a few common UI errors to keep an eye out for:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border: 1px solid rgb(204, 204, 204); font-size: 11px; margin-left: 5px; margin-right: 25px; padding: 5px;&quot;&gt;
&lt;ul style=&quot;margin-left: 0; padding-left: 0; padding-left: 15px;&quot;&gt;
&lt;li&gt;Flag distracting animations as a usability issue (e.g. Flash)&lt;/li&gt;
&lt;li&gt;Show the file size of downloads (e.g. Annual Report PDF - 200 KB)&lt;/li&gt;
&lt;li&gt;Watch for poor typography usage (e.g. small fonts for headings)&lt;/li&gt;
&lt;li&gt;Keep an eye out of misaligned controls and UI elements.&lt;/li&gt;
&lt;li&gt;Review online forms for consistency (e.g. widths of textboxes)&lt;/li&gt;
&lt;li&gt;Be watchful for unintuitive error messages written by programmers&lt;/li&gt;
&lt;li&gt;Is there online help for complicated forms or interactive tasks?&lt;/li&gt;
&lt;li&gt;Should form fields marked as required be optional instead?&lt;/li&gt;
&lt;li&gt;Are required fields obviously marked in some way?&lt;/li&gt;
&lt;li&gt;Can some labels on forms be shortened (e.g. &#39;Phone&#39; to &#39;Ph.&#39;)&lt;/li&gt;
&lt;li&gt;Should some labels be expanded to become more understandable?&lt;/li&gt;
&lt;li&gt;Are large images used which do nothing other than add load time?&lt;/li&gt;
&lt;li&gt;Are JavaScript pop-ups used for error messages?&lt;/li&gt;
&lt;li&gt;Is a &#39;No records found&#39; message shown for unsuccessful searches?&lt;/li&gt;
&lt;li&gt;Can a user tell where they are within the website?&lt;/li&gt;
&lt;li&gt;Is the navigation structure unnecessarily deep (&amp;gt;3 levels is bad)?&lt;/li&gt;
&lt;li&gt;Are there graphics anomalies (e.g. overly compressed JPEGs).&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;br /&gt;
How long does a usability review usually take? Unfortunately, the deeper you go into a flawed system, the more problems you&#39;re likely to uncover. There is sort of a snowball effect, so you do have to decide a cut-off point; how long you are willing to spend reviewing each screen (e.g. 45 minutes per page, including writing up corrective notes). The number of problems you unearth is also a function of your skill level, if you&#39;re good at it, UI issues will jump out the screen at you. Another thing to consider is this; there&#39;s no point conducting a usability review unless you&#39;ve done at least the most basic of QA testing (e.g. checking for broken links, alerts for required fields on forms, cross-browser compatibility, etc). &lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;Ratbert for QA Group&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitnAgUnb1LrqYXGKYXEWrJg5S1w2Ou1Z12AqEWASx71nTk62WxJbfqgJe62HKBTogV6dAGzZ7nH8n4mvPZt6lTURJOpAxApYM_-RnVtIIxVPS3AunCI09_vKVrUqyFpN-so5xBYm1_Ehs/s400/rabert_for_qa_group.png&quot; id=&quot;BLOGGER_PHOTO_ID_5362942192427482434&quot; style=&quot;cursor: hand; cursor: pointer; height: 141px; width: 400px;&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
If you are interested in going further into the realm of usability, I would suggest &lt;i&gt;Steve Krug&#39;s&lt;/i&gt; book &lt;a href=&quot;http://www.amazon.com/Dont-Make-Me-Think-Usability/dp/0321344758/ref=sr_1_1?ie=UTF8&amp;amp;qid=1248604888&amp;amp;sr=8-1&quot;&gt;Don&#39;t Make Me Think&lt;/a&gt;. As far as online resources go, you can&#39;t pass up &lt;a href=&quot;http://www.smashingmagazine.com/&quot;&gt;Smashing Magazine&lt;/a&gt; (although this is heavily targeted towards graphic designers). There is also &lt;i&gt;Jakob Nielsen&#39;s&lt;/i&gt; &lt;a href=&quot;http://www.useit.com/&quot;&gt;useit.com&lt;/a&gt; website and &lt;i&gt;Joel Spolsky&#39;s&lt;/i&gt; &lt;a href=&quot;http://www.joelonsoftware.com/&quot;&gt;Joel on Software&lt;/a&gt; website.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border: 1px solid rgb(204, 204, 204); font-size: 11px; margin-left: 5px; margin-right: 25px; padding: 5px;&quot;&gt;
&lt;b&gt;Article Adjunct&lt;/b&gt;&lt;br /&gt;
&lt;ul style=&quot;margin-left: 0px; margin-top: 10px; padding-left: 0px; padding-left: 15px;&quot;&gt;
&lt;li&gt;Usability reviews should be done &lt;i&gt;after&lt;/i&gt; conducting at least basic/ad-hoc usability testing with a few users. &lt;/li&gt;
&lt;li&gt;What you find during user testing should dictate what issues you address first (before a usability audit).&lt;/li&gt;
&lt;li&gt;As a developer or system architecture working with the software on a daily basis for long periods of time, it becomes easy to miss problems staring you right in the face (i.e. you can&#39;t see the forest for the trees).&lt;/li&gt;
&lt;li&gt;If the usability report is expected to be seen by non-technical stake-holders, it&#39;s a good idea to include a short summary at the beginning of the document. This would outline the most important findings of the usability audit.&lt;/li&gt;
&lt;li&gt;The suggested fixes contained in the audit should also under-go user testing. It&#39;s always possible that the suggested fixes don&#39;t solve the problem (or they may even introduce new ones).&lt;/li&gt;
&lt;li&gt;Ideally, the best time to conduct a usability review is early and at multiple stages throughout the SDLC (not just as an after-thought at the end of a project). &lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;height: 5px;&quot;&gt;
&lt;/div&gt;
&lt;i&gt;- Contributed by Moin Uz Zaman, Senior Usability Specialist&lt;/i&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;Join RSS Feed&quot; src=&quot;http://www.bravoweb.com.au/other/icon_rss_feed.png&quot; style=&quot;border: none; margin-right: 4px; margin: 0px; padding: 0px; vertical-align: middle;&quot; /&gt;&lt;a href=&quot;http://feeds.feedburner.com/ProjectManagementForTheWeb&quot;&gt;Subscribe to RSS Feed&lt;/a&gt;.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img style=&quot;padding:0px; margin: 0px; border: none; margin-right: 4px; vertical-align: middle;&quot; src=&quot;http://www.bravoweb.com.au/other/icon_rss_feed.png&quot; alt=&quot;Join RSS Feed&quot;/&gt;&lt;a href=&quot;http://feeds.feedburner.com/ProjectManagementForTheWeb&quot;&gt;Subscribe to RSS Feed&lt;/a&gt;.&lt;/div&gt;</description><link>http://pm4web.blogspot.com/2009/07/conducting-usability-review.html</link><author>noreply@blogger.com (Louis Marshall)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitnAgUnb1LrqYXGKYXEWrJg5S1w2Ou1Z12AqEWASx71nTk62WxJbfqgJe62HKBTogV6dAGzZ7nH8n4mvPZt6lTURJOpAxApYM_-RnVtIIxVPS3AunCI09_vKVrUqyFpN-so5xBYm1_Ehs/s72-c/rabert_for_qa_group.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6566653093437934181.post-2819629009915225235</guid><pubDate>Sun, 21 Jun 2009 22:27:00 +0000</pubDate><atom:updated>2014-06-07T05:15:31.591+10:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">limited resources.</category><category domain="http://www.blogger.com/atom/ns#">project management</category><category domain="http://www.blogger.com/atom/ns#">SDLC</category><category domain="http://www.blogger.com/atom/ns#">tight budget</category><category domain="http://www.blogger.com/atom/ns#">under-resourced</category><title>Surviving An Under-resourced Project</title><description>&lt;i&gt;How to cut development time on web projects that have a tight budget.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;In the competitive world of web development, it&#39;s not unusual to be handed a project where the resources available are not adequate enough to achieve the results expected by the client.&lt;br /&gt;&lt;br /&gt;A common reason why an under-priced project has been approved in the first place is because someone was desperate to sell a solution to the client. The result is a tight budget where features must be culled and SDLC processes streamlined.&lt;br /&gt;&lt;br /&gt;For the sake of illustration, let’s say a client is given a proposal stating that their project will cost $20,000 to build. The client then comes back saying &quot;that’s too much, I have a budget of $16,000 at most.&quot;  It&#39;s not unusual for the person who wrote the proposal to be told &quot;adjust the quote so it comes out to $16,000. We want this work.&quot;&lt;br /&gt;&lt;br /&gt;We now have a situation where the project has to be undertaken with less money than is ideal. A tight budget isn’t necessarily a bad thing, but sometimes a project can be so drastically under-priced that it is plainly a bad business decision to accept the project in the first place (i.e. a doomed project). There are boundaries where it just becomes ridiculous; if the client were to say &quot;my budget is $4,000&quot;, then the company couldn’t possibly take on the project. &lt;br /&gt;&lt;br /&gt;Is there any difference in managing a project with a tight budget vs. a amply funded one? The answer is yes. In an under-resourced project all tasks which aren’t absolutely necessary are jettisoned. A big reason for this is so the company has some chance of making a profit or breaking even. Because of these cut-backs, an under-resourced project is often in danger of suffering serious quality consequences.&lt;br /&gt;&lt;br /&gt;Since there is no such thing as a project with unlimited resources , the question then becomes a matter of what are the indicators of an under-resourced project. Let’s take a look at some typical tell-tale signs:&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;border: 1px solid rgb(204, 204, 204); font-size: 11px; margin-left: 5px; margin-right: 25px; padding: 5px;&quot;&gt;&lt;ul style=&quot;margin-left: 0; padding-left: 0; padding-left: 15px;&quot;&gt;&lt;li&gt;Bare minimum amount of time allotted to QA&lt;/li&gt;&lt;li&gt;Overly bureaucratic process for change requests and off-spec work&lt;/li&gt;&lt;li&gt;Change request budget may be small or non-existent&lt;/li&gt;&lt;li&gt;Formalized processes get dropped to use time for development&lt;/li&gt;&lt;li&gt;No time for value-add QA like grammar or spell checking&lt;/li&gt;&lt;li&gt;No allowance for hallway usability testing&lt;/li&gt;&lt;li&gt;No on-site installation or support (phone or email support only)&lt;/li&gt;&lt;li&gt;No budget for writing user documentation &lt;/li&gt;&lt;li&gt;No face-to-face user training&lt;/li&gt;&lt;li&gt;Documentation which is out-dated&lt;/li&gt;&lt;li&gt;No technology research (&#39;good enough&#39; coding will have to do)&lt;/li&gt;&lt;li&gt;No time to produce a risk analysis document&lt;/li&gt;&lt;li&gt;Poor or barely existent project schedule&lt;/li&gt;&lt;li&gt;Coders don&#39;t track their actual time taken for tasks in the schedule&lt;/li&gt;&lt;li&gt;Company perks disappear (e.g. food, beverages, etc)&lt;/li&gt;&lt;li&gt;No down time - time sheets reflect 100% allocation to project work&lt;/li&gt;&lt;li&gt;Progress updates for clients become infrequent and rudimentary&lt;/li&gt;&lt;li&gt;Less time is spent understanding the business domain&lt;/li&gt;&lt;li&gt;Programmer have to work unpaid overtime&lt;/li&gt;&lt;li&gt;A project post-mortem isn&#39;t conducted (i.e. lessons learned )&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;br /&gt;You may notice many of the compromises are quite minor. And there is a reason for this. Under-resourced projects exists at the border line between a project not going ahead at all, and one just barely being ratified. If resources and processes were cut to an extreme level, then the project would be destined to fail no matter what (e.g. a project with no functional spec or project schedule isn’t under-resourced, it’s just plain old crazy).&lt;br /&gt;&lt;br /&gt;For project managers finding themselves at the helm of an under-resourced project, there are a few strategies which can be used to not only deliver the project, but also maintain an acceptable level of quality:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Minimize iterations&lt;/i&gt; - the more it goes back to the client for feedback, the longer it takes. I know this flies in the face of modern &lt;i&gt;Agile practices&lt;/i&gt;, but what I’m saying is to limit the feedback cycle, not abolish it. What does this mean in practical terms?  It equates to establishing ground rules with the client early on (e.g. only allowing three iterations to get the wireframes correct). Could this be construed as under-servicing the client, perhaps. But it may also force the client to be decisive rather than relying on iterations.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Use informal sign-offs&lt;/i&gt; - use email as much as possible as a sign-off medium. For example; you may send the client a JPEG of their website design and ask them to reply with something along these lines: &quot;I approve the design&quot;.  It’s a simple time saving strategy because it always takes longer to get a physical signature from a client. Getting informal sign-offs also reduces iterations since the client knows they are officially locking in a decision.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Maintain a production checklist&lt;/i&gt; - on a smaller project involving just one or two people, time can be saved by using a production checklist rather than a full-fledged project schedule. A production checklist is just two items in an excel sheet; task and percentage complete. It says nothing about estimated hours. Couldn’t you just drop the production checklist completely and save even more time? Sure you could, but then the chances of missing something becomes a real danger. Back-tracking to include a forgotten task could take more time then the investment in making the production checklist in the first place.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Use passive reporting&lt;/i&gt; - instead of chasing programmers to ask where they&#39;re at with their tasks, get them to come to you. This can be achieved by asking team members to update their areas in the online project schedule twice a week. Another way is to get team members to email you when they have a deliverable to report (e.g. &quot;the SSL certificate has been installed. I have a confirmation email from the hosting provider&quot;).&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Propose staged development&lt;/i&gt; - if a client has a big project but not enough money to get it done, then suggest they break up the project into a number of stages. The initial or &#39;core&#39; stage would include the most vital features which they simply couldn’t do without. Later stages would bring in the nice-to-haves and value-add features. &lt;br /&gt;&lt;br /&gt;&lt;i&gt;Use a bug tracking system&lt;/i&gt; - generally speaking, you should be using a bug tracking system anyway. But it becomes particularly important in under-resourced projects since all time expenditure needs to be allocated with great precision (i.e. there is little room for error).&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Use mini-specs&lt;/i&gt; - once coding begins, chances are good new features will be requested at intermittent points during development. Rather than adding features during the main development cycle, gather them together into a mini-spec. The items in the mini-spec would be implemented after the originally scoped product is delivered (possibly taking it to version 1.1). By not adding features in drips and drabs, you are optimizing integration.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Do &#39;feature triage&#39;&lt;/i&gt; - be harsh on what features really need to be included in the initial release of the product. It may be painful for a client to accept that they can’t have the world on a shoe-string budget, but something&#39;s got to give.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Trim unnecessary tasks&lt;/i&gt; - instead of doing two rounds of system testing, do one. Instead of allowing for two on-site visits to conduct user acceptance testing, do one visit and the rest via phone. Do you really need to spend an hour worth of travel for another face-to-face meeting with the client or will a phone call do? If you are observant, creative, and ruthless, you will see many opportunities where time can be trimmed. Of course, hacking away too much will mar the product’s quality and just require time be re-invested for fixes.&lt;br /&gt;&lt;br /&gt;&lt;img alt=&quot;Dilbert - estimating project cost&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcYIL1bj0TZquWn9ocJX5vwcXTeHRq_Vx6zKxWNAoT1RLaWRtCP_c0_A2ov5bBSk_BRatvjdIJbTNr3uxtWIDF45RkscY8me5A3S7_I60pLXMrK4BSiH-q31Yns4dwwr2Fz8zLf5M5QpQ/s400/dilbert_cost_estimation_adjusted.png&quot; id=&quot;BLOGGER_PHOTO_ID_5349912497391129618&quot; style=&quot;cursor: hand; cursor: pointer; height: 363px; width: 400px;&quot; /&gt;&lt;br /&gt;&lt;br /&gt;A question which surely beckons attention is what impact a tight budget has on &lt;a href=&quot;http://astroalloys.com.au/my-account/&quot;&gt;product&lt;/a&gt; quality. A client isn&#39;t going to accept an excessively buggy &lt;a href=&quot;http://www.astroecotech.com.au&quot;&gt;product&lt;/a&gt; in either a well funded project nor one with tight resources. &lt;br /&gt;&lt;br /&gt;You can still attain a level of quality closely approaching a well-funded project. What it comes down to is things like how  polished the system looks (e.g. amateurish icons vs. professionally designed ones). There could also be less relationship building with the client since there isn’t as much time for face-to-face meetings. A reduced QA cycle may uncover fewer errors, so the system gets launched with dormant bugs that surface later down the track. Successfully delivering a under-resourced project isn’t impossible, the trick is knowing what to trim and what to keep.&lt;br /&gt;&lt;br /&gt;&lt;img alt=&quot;Join RSS Feed&quot; src=&quot;http://www.bravoweb.com.au/other/icon_rss_feed.png&quot; style=&quot;border: none; margin-right: 4px; margin: 0px; padding: 0px; vertical-align: middle;&quot; /&gt;&lt;a href=&quot;http://feeds.feedburner.com/ProjectManagementForTheWeb&quot;&gt;Subscribe to RSS Feed&lt;/a&gt;.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img style=&quot;padding:0px; margin: 0px; border: none; margin-right: 4px; vertical-align: middle;&quot; src=&quot;http://www.bravoweb.com.au/other/icon_rss_feed.png&quot; alt=&quot;Join RSS Feed&quot;/&gt;&lt;a href=&quot;http://feeds.feedburner.com/ProjectManagementForTheWeb&quot;&gt;Subscribe to RSS Feed&lt;/a&gt;.&lt;/div&gt;</description><link>http://pm4web.blogspot.com/2009/06/surviving-under-resourced-project.html</link><author>noreply@blogger.com (Louis Marshall)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcYIL1bj0TZquWn9ocJX5vwcXTeHRq_Vx6zKxWNAoT1RLaWRtCP_c0_A2ov5bBSk_BRatvjdIJbTNr3uxtWIDF45RkscY8me5A3S7_I60pLXMrK4BSiH-q31Yns4dwwr2Fz8zLf5M5QpQ/s72-c/dilbert_cost_estimation_adjusted.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6566653093437934181.post-245465743186325417</guid><pubDate>Sun, 07 Jun 2009 09:01:00 +0000</pubDate><atom:updated>2013-11-10T12:08:44.248+11:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">business analyst role</category><category domain="http://www.blogger.com/atom/ns#">business development manager</category><category domain="http://www.blogger.com/atom/ns#">process improvement</category><category domain="http://www.blogger.com/atom/ns#">project management</category><category domain="http://www.blogger.com/atom/ns#">requirements gathering</category><category domain="http://www.blogger.com/atom/ns#">scoping</category><category domain="http://www.blogger.com/atom/ns#">software development process</category><category domain="http://www.blogger.com/atom/ns#">system analysis</category><title>From Requirements to Production</title><description>&lt;i&gt;Reviewing the process which takes place from requirements gathering all the way up to production.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Every small web development agency is unique in some way, this is usually what gives them some kind of competitive advantage. Part of that uniqueness is the process they use to convert what a client wants into reality (e.g. a website). This article discusses that process in a big picture kind way, the main focus is on roles - or who does what. &lt;br /&gt;&lt;br /&gt;I&#39;ve seen a few versions of this process at different companies I&#39;ve worked at, but they mostly involve the same players each time (e.g. a sales rep, a project manager, etc).&lt;br /&gt;&lt;br /&gt;Most small web agencies could say their work is divided into two arenas: small web projects and custom development. Small web projects would be basic websites such a business web presence. A custom software build covers all other scenarios (e.g. where a lot of code is written to account for the client’s unique business rules).&lt;br /&gt;&lt;br /&gt;The processes described in this article are most relevant to the small web projects stream, mainly because this kind of work is generally the same thing over and over again (e.g. client: &quot;I would like an about us page, and a contact page...&quot;).&lt;br /&gt;&lt;br /&gt;&lt;i&gt;The players&lt;/i&gt; – before we begin the discussion in earnest, we should establish the roles in the process, or &#39;who does what&#39;. Job responsibilities often go hand-in-hand with a job title, but not always. So, lets introduce the players:&lt;br /&gt;&lt;br /&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 320px; height: 170px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgo9PZW_bm3IEPp3USXi8zs6UOa2jDS6SMMyp3tTRIZYu-Umw78HCEM2fKo2jLHr176UXtSdoog1ynsjOzKDcTkRyaQYZjfW5PuhN8w8H-VzWyyNMrdqJUMAPg7yKqRErpCV8ZlL21-uLc/s400/the_players.png&quot; border=&quot;0&quot; alt=&quot;The Players&quot; id=&quot;BLOGGER_PHOTO_ID_5344514983562420770&quot; /&gt;&lt;br /&gt;&lt;br /&gt;In the first approach, which I like to call the &lt;i&gt;split-role approach&lt;/i&gt;, the process unfolds as follows:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;BDM sells web solution to client.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Business Analyst contacts the client to take-down their requirements (and then hands that over to the Project Manager)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The Project Manager organises production resources.&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 320px; height: 300px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi94IubL5eeCvafZtdZOZS7SS12WK-5yYoNiGcn2_i_Zv0PNpNp6zKHC5FtXL_w3gA3YjVrkL0-PMUFpYMQbTZOGqcxWxLiM-BVKNHrrCm4H6gFXYWAfHvaOKr1PTNw0B9hrJFR0XHEkLM/s400/split_role_approach.png&quot; border=&quot;0&quot; alt=&quot;Split-role approach&quot; id=&quot;BLOGGER_PHOTO_ID_5344514981119867666&quot; /&gt;&lt;br /&gt;&lt;br /&gt;The alternative method is called the &lt;i&gt;dual-role approach&lt;/i&gt;, which looks like this:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;BDM sells web solution to client.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;BDM gathers requirements from client and hands it over to the Project Manager.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;PM/BA reviews requirements (and often asks BDM to gather a few more details).&lt;/li&gt;&lt;br /&gt;&lt;li&gt;PM organises resources and ensures delivery&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 320px; height: 365px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEir2df92yodzfI4zii6Fk-2sWHoZxsKJSyA5EB1DQAOV4scHfWpKYOrt62TwxsgfAUDOAk6GdQS7lvrSdUCqlXP9d6YZZmdCZV8kJ-OwCZWMG4nc9-gRMzd12L5Zuac9R1aIbF57GYPXIc/s400/dual_role_approach.png&quot; border=&quot;0&quot; alt=&quot;Dual-role approach&quot; id=&quot;BLOGGER_PHOTO_ID_5344514977284168274&quot; /&gt;&lt;br /&gt;&lt;br /&gt;I should mention that I specifically haven’t represented the iterative nature of development in either diagram (for the sake of simplifying the diagram).&lt;br /&gt;&lt;br /&gt;Each approach has certain strengths and weaknesses. The most obvious difference between the two structures is that the dual-role approach combines the jobs of a Business Analyst and PM into one individual. The benefit of this is it cuts out one communication channel. The downside is it can be hard to find an employee with evenly matched business analysis and project management skills.&lt;br /&gt;&lt;br /&gt;The dual-role approach also requires that the BDM have business analyst-like abilities, not as refined as a true business Analyst, but pretty savvy none-the-less. The fact that the BDM is capturing basic requirements takes a load off the PM/BA combined role, allowing them to effectively manage more concurrent projects. &lt;br /&gt;&lt;br /&gt;Since the BDM is acting as a watered-down Business Analyst, its likely that the Project Manager/Business Analyst will often need to get clarifications on the requirements which have been gathered. For instance, the BDM may write down: &quot;the client wants to put their products online&quot;, to which the PM/BA may say &quot;does the client want to sell their products online, or do they just want an online product catalogue?&quot; &lt;br /&gt;&lt;br /&gt;The biggest concern for the BDM/BA combined role is that the skills needed to be a good BDM &lt;i&gt;and&lt;/i&gt; a good Business Analyst aren&#39;t the same. Most BDMs aren&#39;t as structured in their thinking (which is needed to gather solid requirements), but then again most BAs don’t have the soft-skills a BDM generally has.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Pricing considerations&lt;/i&gt; - since we are dealing with basic website builds here, it is fine for a BDM to provide a client with a ball-park estimate at the initial client meeting. The final pricing does need to be settled by a proper Business Analyst though, they are the only ones that can cost the project with the least amount of risk.&lt;br /&gt;&lt;br /&gt;There is also the issue of up-selling and business re-engineering. On the one-hand, a Business Analyst consulting directly with a client may improve the technology solution by making useful suggestions (split-role approach). The flip side would be a BDM is more likely to get a greater budgetary commitment from the client, due to  their selling expertise (the dual-role solution).&lt;br /&gt;&lt;br /&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 400px; height: 132px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpyW_nF1UTPzxgudgSUZSeoHjYMePUQRwQ3VN_ardwZpPt-wRlzXtJgU85PHmvHxKFIju6wNwKbnl-7LmsHwlcOiQFJV0RRiklSRS3ShQZKoJIEFfVAfNVN3LZVWUstJZFQIwcC0p9PKs/s400/dilbert_sales_engineer.png&quot; border=&quot;0&quot; alt=&quot;Dilbert - Sales Engineer&quot; id=&quot;BLOGGER_PHOTO_ID_5344514973990362578&quot; /&gt;&lt;br /&gt;&lt;br /&gt;Personally I prefer the duel-role approach since it reduces the number of communication channels (or &#39;integration points&#39;). The more communication channels, the greater the risk of losing information or misinterpretations. In addition, small companies generally can&#39;t afford to hire specialists (i.e. a specific person for a Business Analyst role, another person for the PM role). I can however appreciate that the split-role approach offers some degree of scalability since there is more division of labour.&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;border: 1px solid rgb(204, 204, 204); padding: 5px; margin-left: 10px; margin-right: 25px; font-size: 11px; font-style:italic;&quot;&gt;Special thanks to members of the &lt;a href=&quot;http://stackoverflow.com/&quot; target=&quot;_blank&quot;&gt;Stack Overflow&lt;/a&gt; community for their contributions towards this article.&lt;/div&gt;&lt;br /&gt;&lt;img style=&quot;padding:0px; margin: 0px; border: none; margin-right: 4px; vertical-align: middle;&quot; src=&quot;http://www.bravoweb.com.au/other/icon_rss_feed.png&quot; alt=&quot;Join RSS Feed&quot;/&gt;&lt;a href=&quot;http://feeds.feedburner.com/ProjectManagementForTheWeb&quot;&gt;Subscribe to RSS Feed&lt;/a&gt;.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img style=&quot;padding:0px; margin: 0px; border: none; margin-right: 4px; vertical-align: middle;&quot; src=&quot;http://www.bravoweb.com.au/other/icon_rss_feed.png&quot; alt=&quot;Join RSS Feed&quot;/&gt;&lt;a href=&quot;http://feeds.feedburner.com/ProjectManagementForTheWeb&quot;&gt;Subscribe to RSS Feed&lt;/a&gt;.&lt;/div&gt;</description><link>http://pm4web.blogspot.com/2009/06/from-requirements-to-production.html</link><author>noreply@blogger.com (Louis Marshall)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgo9PZW_bm3IEPp3USXi8zs6UOa2jDS6SMMyp3tTRIZYu-Umw78HCEM2fKo2jLHr176UXtSdoog1ynsjOzKDcTkRyaQYZjfW5PuhN8w8H-VzWyyNMrdqJUMAPg7yKqRErpCV8ZlL21-uLc/s72-c/the_players.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6566653093437934181.post-2057479289839647297</guid><pubDate>Mon, 18 May 2009 01:15:00 +0000</pubDate><atom:updated>2014-04-20T11:23:30.675+10:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">HCI</category><category domain="http://www.blogger.com/atom/ns#">interface design</category><category domain="http://www.blogger.com/atom/ns#">quality assurance</category><category domain="http://www.blogger.com/atom/ns#">UI</category><category domain="http://www.blogger.com/atom/ns#">user experience</category><title>Consistency in Web UI Design</title><description>&lt;i&gt;How to keep your software&#39;s UI consistent when many programmers are working on the project.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
In a development team with half a dozen programmers all working on the same project, creating a uniform user interface can be a nightmare. There can be problems ranging from inconsistent use of icons to language (e.g. formal vs. informal). So the question is, what&#39;s the best way to achieve a cohesive user experience?&lt;br /&gt;
&lt;br /&gt;
Few would argue the importance of UI design these days, especially since companies like &lt;i&gt;Google&lt;/i&gt; and &lt;i&gt;Apple&lt;/i&gt; have spoilt users with dazzling almost joy-to-use interfaces. But a functional application is still more important at least initially, you can always pretty things up once your software actually works.&lt;br /&gt;
&lt;br /&gt;
When working as a UI designer, it was my responsibility to create mockups for the application being developed. Once I had created the HTML and image files in &lt;i&gt;Web Expression&lt;/i&gt; and &lt;i&gt;Photoshop&lt;/i&gt;, all I needed to do was bring them into &lt;i&gt;Visual Studio&lt;/i&gt; as &lt;i&gt;Master Pages&lt;/i&gt;. This worked out great because the programmers would then come along and add the logic. &lt;br /&gt;
&lt;br /&gt;
This turned out to be an excellent approach since it doesn’t require a style guide or volumes of documentation. It works because just one person was in charge of the UI design. The reality is most companies don’t hire someone specifically for a UI role, although more companies are starting to (compared to a few years ago).&lt;br /&gt;
&lt;br /&gt;
Having worked as an IT project manager for a few years now, I have found there is another approach which works well for ensuring UI consistency. Personally, I don’t put much faith in writing UI guides and expecting programmers to follow them. There’s a few reasons for this: 1) programmers often aren’t good at UI design, 2) it’s a lot to remember, and 3) its counter-productive.&lt;br /&gt;
&lt;br /&gt;
UI style guides slow down programmers because you are expecting them to be good at something which they aren’t geared for; they are good at coding, so let them code.&lt;br /&gt;
&lt;br /&gt;
So what do you get when you let programmers do their thing and just code with no specific guidance on UI? Inconsistencies in the interface. This even happens when you provide programmers with mockups to work from. For example, your mockup might not contain the exact wording for an error message so a programmer, quite rightly, proactively puts one in (e.g. “Invalid input”).&lt;br /&gt;
&lt;br /&gt;
What’s the solution? Easy, you have one person review the entire interface at milestones and log bugs in the issue tracker. These bugs would be marked as UI or low priority. If there’s a script error in the software, it’s obviously more important to fix that first before looking at a UI glitch.&lt;br /&gt;
&lt;br /&gt;
The next question is, who should be doing the interface review? It should be one person only (for consistency sake), and that person should be whoever is the most talented with HCI/UI design.&lt;br /&gt;
&lt;br /&gt;
My point is this, don’t make programmers try and be UI designers. When you log a UI bug, it’s there in the issue tracker, it won’t go away. The programmers will come and fix them when they are good and ready. UI bugs are generally easy to fix so they can act as a good break for a programmer. Imagine a coder has just spent 2 hours debugging a serious data corruption issue. Fixing a few UI bugs would most likely come as a welcome relief.&lt;br /&gt;
&lt;br /&gt;
As far as language or wording in an application goes (e.g. error messages, online help, labels, etc), you wouldn’t necessarily need to log bugs for that. If you are using a string table, or some kind of configuration file like XML, then it’s easy for the UI person to tweak text by directly accessing the configuration store. For example, if you found  &quot;login error&quot; in the configuration XML file, you could change that to &quot;the username or password you entered is incorrect&quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;dilbert - interface design&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtlcy-Cl3sFPksNdqYcav21HO0PVa3PAoruT5XbOxb55MkCM1IvUxSL6dodTm1-e-TSJe6N0MX6UVOOda3sJWaLGR_ty07OxfA1M6lKysmhT0d-aDSbYqMl0kgMoqDQkQjgnW_emP3Yp8/s400/dilber_interface_poisoning.gif&quot; id=&quot;BLOGGER_PHOTO_ID_5336967150162450338&quot; style=&quot;cursor: hand; cursor: pointer; height: 130px; width: 400px;&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
When things get written down they will be forgotten. This is especially the case when  documents get long (e.g. 20+ pages). The problem becomes compounded when you realize that programmers could care less about consistent UI across all the screens of an entire application. Their task lists often say &#39;Code login screen&#39;, not &#39;Code login screen - and make it look pretty&#39;.&lt;br /&gt;
&lt;br /&gt;
As a side note, I should say I have written a massive UI style guide for an application I designed. It took me almost 2 weeks to write and personally I think it was unnecessary. It was basically a way for programmers to understand how to modify the interface once I finished my contract. As to whether they found the guide useful or not, I don’t know. I think design should be left to designers and coding should be left to programmers, it just makes good business sense.&lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;Join RSS Feed&quot; src=&quot;http://www.bravoweb.com.au/other/icon_rss_feed.png&quot; style=&quot;border: none; margin-right: 4px; margin: 0px; padding: 0px; vertical-align: middle;&quot; /&gt;&lt;a href=&quot;http://feeds.feedburner.com/ProjectManagementForTheWeb&quot; target=&quot;_blank&quot;&gt;Subscribe to RSS Feed&lt;/a&gt;.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img style=&quot;padding:0px; margin: 0px; border: none; margin-right: 4px; vertical-align: middle;&quot; src=&quot;http://www.bravoweb.com.au/other/icon_rss_feed.png&quot; alt=&quot;Join RSS Feed&quot;/&gt;&lt;a href=&quot;http://feeds.feedburner.com/ProjectManagementForTheWeb&quot;&gt;Subscribe to RSS Feed&lt;/a&gt;.&lt;/div&gt;</description><link>http://pm4web.blogspot.com/2009/05/consistency-in-web-ui-design.html</link><author>noreply@blogger.com (Louis Marshall)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtlcy-Cl3sFPksNdqYcav21HO0PVa3PAoruT5XbOxb55MkCM1IvUxSL6dodTm1-e-TSJe6N0MX6UVOOda3sJWaLGR_ty07OxfA1M6lKysmhT0d-aDSbYqMl0kgMoqDQkQjgnW_emP3Yp8/s72-c/dilber_interface_poisoning.gif" height="72" width="72"/><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6566653093437934181.post-1841621199703585320</guid><pubDate>Sat, 09 May 2009 09:30:00 +0000</pubDate><atom:updated>2013-02-15T16:34:04.895+11:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">content</category><category domain="http://www.blogger.com/atom/ns#">content management</category><category domain="http://www.blogger.com/atom/ns#">project delays</category><category domain="http://www.blogger.com/atom/ns#">stalled projects</category><category domain="http://www.blogger.com/atom/ns#">websites</category><title>Missing or Poor Quality Website Content</title><description>&lt;i&gt;Strategies for avoiding the debilitating effects of missing or low quality content.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;We’ve all heard the horror stories of websites lingering for months whilst a client attempts to cobble together some semblance of worthy content for their ill-fated website. This problem doesn’t just affect freelance web contractors. It’s as much a concern for a project manager at a web agency. Why? Because a project can’t be considered complete until all its tasks are closed.&lt;br /&gt;&lt;br /&gt;Content issues can come in a number of forms, but generally it’s a customer taking a long time to prepare text or pictures for use on their website. Also connected to this is the problem of &lt;i&gt;poor&lt;/i&gt; quality content, that is; amateurish text riddled with spelling or grammar errors, or low quality photographs. If this problem was one of the four horsemen of the apocalypse, it would be famine since nothing makes a website appear malnourished like missing content. &lt;br /&gt;&lt;br /&gt;So far I can’t say I have figured out a fool-proof method for dealing with this issue, although I have developed a few helpful strategies over the years. One approach I use is to take some liberties with the client’s content. For example, if a client has a page called ‘Our Team’, I may paste in some generic content I find on another website. What does this do? For starters, it often gets the client saying “hey, that’s not my content”, to which you reply “no problem – it’s just a place-holder until you put in your correct text.”&lt;br /&gt;&lt;br /&gt;As strange as this may sound, putting in the &lt;i&gt;wrong&lt;/i&gt; content often encourages a client to put in the &lt;i&gt;right&lt;/i&gt; content. Perhaps this is appealing to the ‘if you want something done right, you got to do it yourself’ part of the customer’s brain. This solution isn’t appropriate for all customers; it works best with people who will understand you are just trying to be proactive.&lt;br /&gt;&lt;br /&gt;One approach I have used in the past to deal with missing content is to automatically turn-off pages which are empty. For instance, if there is no text for the website’s ‘Press Releases’ page, it simply doesn’t appear in the navigation. It will only be a matter of time before the client says “where is my press releases page?”, to which you reply “you have to enter some text for the page, otherwise it automatically hides itself”. True, you will get people putting in “Page under construction” or “Coming Soon”, but if you give a person a CMS to manage their website, they can write whatever they like (it is their website after all).&lt;br /&gt;&lt;br /&gt;Another great solution is to use a content questionnaire. This is a simple list of questions designed to illicit responses which serve as the basis for producing rudimentary website content. Here are a few example questions: “what does your company do?” “Who are your customers?” “What products or services do you sell?” “Have you been mentioned in any media publications?”. As you can see, you are effectively acting as a basic copy writer, so some degree of writing skill is required.&lt;br /&gt;&lt;br /&gt;A common strategy you will see suggested is to have the client engage a content publisher or copy writer early on. The beauty of this is that a copy writer will hound a customer ‘til the end of days for material to work off – it’s their job. Web developers often focus too much on the technology-side of things, neglecting the most important aspect of the website; the content. The downside of this solution is many clients will flag a copy writer as prohibitively expensive. When budget is an issue, things which appear to have the least value are culled. Some clients may even look at it this way: “why should I pay for someone to do something I can do myself? I know my products better than anyone”.&lt;br /&gt;&lt;br /&gt;Understandably, if a client has never had any interaction with a copy writer, they may not be aware of how much they can help. It isn’t just a matter of ‘good writing’, a copy writer can create compelling text targeted at a particular audience. For instance, a business owner may write something like this on their website “Welcome to my dieting website. Please browse our extensive range of products”, a copy writer would instead produce “Discover the secrets to fast and permanent weight loss with our revolutionary nutritional supplements”. And if the copy writer is well versed in SEO, even better.&lt;br /&gt;&lt;br /&gt;Before this article wraps-up, let’s go over a few tips which may help you avoid content headaches: 1) bring up the topic of content early on in the project, 2) instil a sense of urgency, the client needs to know the website is nothing without content, 3) use generic, place-holder content when appropriate, 4) switch off pages which are blank (manually or via code), 5) recommend a copy writer get involved in the project early on (if budget allows).&lt;br /&gt;&lt;br /&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 400px; height: 134px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1DTvIY1l3jrkdCsYelI8buUe1nfJTWiWf2yCDumMTSzE_iBiPZjvLovqS8qZVgTbHXy93mCC-GZwNMFMv7edeH9FfH6HIlqNbUVCMGOVhDQiA5VVpuc1JkbQYh5UQ4pqAOkz6dA9wLuk/s400/dilbert_url.gif&quot; border=&quot;0&quot; alt=&quot;Dilbert - urls&quot; id=&quot;BLOGGER_PHOTO_ID_5333755164384819266&quot; /&gt;&lt;br /&gt;&lt;br /&gt;When all is said and done, if a client wont supply their content or photos, or blocks your attempts at proactive assistance (e.g. putting in place-holder content), there isn’t a great deal you can do. Your best bet is to move onto your next project and check back periodically to see if they are ready to continue on with their work. This could be in the form of a phone call once every few weeks. You never know, a client may have some major disaster they are dealing with in their business which means they can’t spend time preparing content.&lt;br/&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img style=&quot;padding:0px; margin: 0px; border: none; margin-right: 4px; vertical-align: middle;&quot; src=&quot;http://www.bravoweb.com.au/other/icon_rss_feed.png&quot; alt=&quot;Join RSS Feed&quot;/&gt;&lt;a href=&quot;http://feeds.feedburner.com/ProjectManagementForTheWeb&quot;&gt;Subscribe to RSS Feed&lt;/a&gt;.&lt;/div&gt;</description><link>http://pm4web.blogspot.com/2009/05/missing-or-poor-quality-website-content.html</link><author>noreply@blogger.com (Louis Marshall)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1DTvIY1l3jrkdCsYelI8buUe1nfJTWiWf2yCDumMTSzE_iBiPZjvLovqS8qZVgTbHXy93mCC-GZwNMFMv7edeH9FfH6HIlqNbUVCMGOVhDQiA5VVpuc1JkbQYh5UQ4pqAOkz6dA9wLuk/s72-c/dilbert_url.gif" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6566653093437934181.post-6988648317573841815</guid><pubDate>Sat, 11 Apr 2009 00:12:00 +0000</pubDate><atom:updated>2014-04-20T11:24:04.335+10:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Business Integrity</category><category domain="http://www.blogger.com/atom/ns#">Ethics</category><category domain="http://www.blogger.com/atom/ns#">Morality</category><title>Ethics, Morality, and Principles in Web Development</title><description>&lt;i&gt;What projects some web developers wont take and why&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
The topic of morals and ethics in business can be a tricky one since it’s so subjective. To the majority of people, there is an obvious pool of projects they wouldn’t touch with a ten foot barge pole (e.g. ones which are clearly illegal). However, it gets interesting once you start poking around the gray areas, where things transition from blindingly unethical to just morally questionable.&lt;br /&gt;
&lt;br /&gt;
Before we begin, a brief definition of some key terms is required:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border: 1px solid rgb(204, 204, 204); font-size: 11px; margin-left: 10px; margin-right: 25px; padding: 5px;&quot;&gt;
&lt;i&gt;Ethics&lt;/i&gt; – the discipline dealing with what is good and bad and with moral duty and obligation.&lt;br /&gt;
&lt;div style=&quot;height: 8px;&quot;&gt;
&lt;/div&gt;
&lt;i&gt;Morality&lt;/i&gt; – conformity to ideals of right human conduct.&lt;br /&gt;
&lt;div style=&quot;height: 8px;&quot;&gt;
&lt;/div&gt;
&lt;i&gt;Principles&lt;/i&gt; – guiding sense of the requirements and obligations of right conduct.&lt;br /&gt;
&lt;div style=&quot;height: 8px;&quot;&gt;
&lt;/div&gt;
&lt;class style=&quot;color: dimgrey; font-size: 10px;&quot;&gt;(Source: www.merriam-webster.com and www.dictionary.com)&lt;/class&gt;&lt;/div&gt;
&lt;br /&gt;
They all look kind of the same don’t they, especially ethics and morality? You could say morality and ethics are more universal or over-arching systems applicable to society at large. Principles seem to be a more personal thing, and this is often where the ‘gray area’ exists.&lt;br /&gt;
&lt;br /&gt;
Why is it that some web developers will take on a project which others won’t? Let’s explore this question by taking a look at a few real-world examples, or ‘mini-case studies’ if you will. Some of these cases are drawn from my own personal experience, whilst others have been relayed to me by peers.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;The vegetarian and the abattoir&lt;/i&gt; – this is something that happened to me a couple of years ago. I was offered a contract to produce a website for a meat abattoir (i.e. slaughterhouse). What’s the problem you may ask? I’m a vegetarian. This isn’t a big dilemma, none-the-less I politely declined the contract and referred the client to someone equally capable. This is clearly a case of my own personal principles in action; most carnivorous developers would have no problem taking the project.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;The designer and the sex toys&lt;/i&gt; – this happened to a graphic designer I know. The company she was working for at the time was contracted to develop an e-commerce website for a sex-toy retailer. She asked to be excluded from the project because she felt that it couldn’t be known for sure weather the products being sold on the website were in some way supporting exploitation of women.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Debt collectors and domain squatters&lt;/i&gt; – I’m aware of a case in which a developer declined to take a project from a debt collection agency, and another contract from a ‘domain squatter’ (i.e. a person who buys a web address with the intent of ransoming it to its legitimate owner). Turning-down a debt collector is interesting considering it is a legitimate business. His reasoning was that some debt collectors are reputed to use nefarious means to achieve their ends.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Blood and wrestling&lt;/i&gt; – this story is about a game programmer. Part of his work involved coding particle effects in a wrestling game.  When a wrestler’s avatar was struck, droplets of blood would fly out and stain the canvas floor where it landed. Soon after working on the game he departed the company. He took this experience as a sign of things to come.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;The entrepreneurial slave-trader&lt;/i&gt; – a developer was offered $15,000 USD to create a website for the purpose of trafficking in humans. Needless to say, he turned down the project and never dealt with that particular ‘businessman’ again.&lt;br /&gt;
&lt;br /&gt;
Many other projects of a questionable nature were mentioned during the course of my research for this article, including; work from home schemes, spam mailers, government grants scams, MSN ID harvesters, website clones, viruses, adware, stock options trading systems, religious websites, etc. &lt;br /&gt;
&lt;br /&gt;
The fact that there’s so much questionable software out there means there are developers who have no problem producing it. In their mind there is probably an acceptable reason for undertaking the work, or perhaps they simply don’t care. &lt;br /&gt;
&lt;br /&gt;
There is also this argument: “for enough money, you’d it”. This basically says that, barring any illegal activity, a person would take a project for the right price. This argument is spurious at best since a situation would never arise where it could actually come true. Why? Because there would always be someone willing to do it for &lt;i&gt;less&lt;/i&gt; then the exorbitant rate required to bypass a person’s ‘ethical barriers’.&lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;Dilbert - ethics&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSlRtamEE0sKMKiTmPoPQ2H8Ldc8Dxne3eGYsDztsI6d66Hb3D5JXZjbi98sgFJFu7f76_J25nUE74Pub9PXPMPdfSx8J05pFep98saE3bbC34fwFak9GM15OLzkGqusHyJOTDxuIKjX8/s400/dilbert_ethics.png&quot; id=&quot;BLOGGER_PHOTO_ID_5323279407427613826&quot; style=&quot;cursor: hand; cursor: pointer; height: 131px; width: 400px;&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
There is some irony and even hypocrisy to some of these stories. For instance, I turned down a website which sold animal flesh, but would have no qualms about building a site which uses ‘human flesh’ as a marketing tool (i.e. an online shop for a sex toys retailer). Personally, I see no issue as long as no one has been harmed, duped or taken advantage of as part of the production or selling of the product. I guess this just goes to show that what’s morally abhorrent to one person is logically justifiable to another.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img style=&quot;padding:0px; margin: 0px; border: none; margin-right: 4px; vertical-align: middle;&quot; src=&quot;http://www.bravoweb.com.au/other/icon_rss_feed.png&quot; alt=&quot;Join RSS Feed&quot;/&gt;&lt;a href=&quot;http://feeds.feedburner.com/ProjectManagementForTheWeb&quot;&gt;Subscribe to RSS Feed&lt;/a&gt;.&lt;/div&gt;</description><link>http://pm4web.blogspot.com/2009/04/ethics-morality-and-principles-in-web.html</link><author>noreply@blogger.com (Louis Marshall)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSlRtamEE0sKMKiTmPoPQ2H8Ldc8Dxne3eGYsDztsI6d66Hb3D5JXZjbi98sgFJFu7f76_J25nUE74Pub9PXPMPdfSx8J05pFep98saE3bbC34fwFak9GM15OLzkGqusHyJOTDxuIKjX8/s72-c/dilbert_ethics.png" height="72" width="72"/><thr:total>0</thr:total></item></channel></rss>