<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	>

<channel>
	<title>Just Magic Design</title>
	<atom:link href="http://justmagicdesign.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://justmagicdesign.com</link>
	<description>Crafting websites in Massachusetts</description>
	<pubDate>Tue, 16 Jun 2009 15:53:53 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>The business/administrative side of starting a new project</title>
		<link>http://justmagicdesign.com/2009/04/the-businessadministrative-side-of-starting-a-new-project/</link>
		<comments>http://justmagicdesign.com/2009/04/the-businessadministrative-side-of-starting-a-new-project/#comments</comments>
		<pubDate>Wed, 22 Apr 2009 14:32:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Process]]></category>

		<guid isPermaLink="false">http://justmagicdesign.com/?p=340</guid>
		<description><![CDATA[This post is about all the non-technical steps in starting up a new project. First you have to get a new project, then you have to keep track of all the details related to it. This is what works for us for getting the project off the ground.

Someone has handed one of us a business [...]]]></description>
			<content:encoded><![CDATA[<p>This post is about all the non-technical steps in starting up a new project. First you have to get a new project, then you have to keep track of all the details related to it. This is what works for us for getting the project off the ground.<br />
<span id="more-340"></span><br />
Someone has handed one of us a business card at a social gathering or sent us an email though our contact form. Voilá, a potential client! We keep track of potential clients in an email folder called, you guessed it, Potential Clients. (We always follow-up on any direct contact with an email right away, so there&#8217;s always an email trail.)</p>
<p>Sometimes we&#8217;re just too busy and that follow-up email will tell them that we&#8217;d love to work with them but we can&#8217;t start a new project until [insert timeframe in the future here]. They may get back to us and tell us that&#8217;s fine, otherwise we will try to refer them to someone else. (If you&#8217;re a professional web developer in the Massachusetts area with a decent portfolio, let us know because we don&#8217;t have a good selection of firms to refer to.)</p>
<h2>Turning a potential client into an actual client</h2>
<div class="note">
<h3>When do you give a ballpark estimate?</h3>
<p>An important part of the initial contact is to make a determination about whether the client is a good fit for us and vice versa. We&#8217;re providing an (often undervalued) service to clients who are trying to run a business or non-profit organization as efficiently as possible. That means that the main question on their mind often is <strong>&#8220;how much is this going to cost me?&#8221;</strong> We do a bit of selling when necessary to emphasize how much a well-implemented website can increase their business (and why we&#8217;re experts) so that they realize the value they will be getting for their money. If we think the client is on a tight budget, we&#8217;ll usually conclude the meeting with an <em>estimate</em> of the cost based on what we&#8217;ve learned that day and on our experience. That lets both of us know if it&#8217;s worthwhile going any further in the process. We prefer <em>not</em> to give estimates since we haven&#8217;t finished scoping the work (because it&#8217;s hard to come back with a different quote later), so it&#8217;s a judgment call every time whether we do.</div>
<p>The first thing we do with a potential client when we&#8217;re ready to start a new project is to set up a face-to-face meeting. If the client isn&#8217;t local or they&#8217;re just &#8220;too busy&#8221; we&#8217;ll do this on the phone, but that&#8217;s not our preference. The goal is to learn the client&#8217;s needs to the extent that we need to in order to write up a project proposal. (See the section on <a href="/2009/03/the-development-process/">&#8220;Discover - First Round&#8221; in the process post</a> to read about the four key questions we ask.) This meeting is usually very informative for the potential client and we enjoy meeting new people, so even if the project we&#8217;re discussing doesn&#8217;t get off the ground, it&#8217;s never wasted time. (Who knows when the potential client might be in the position to do another project or to refer someone else to us.) An important thing that happens at the &#8220;coffee meeting&#8221; (as we call it) is an exchange of business cards.</p>
<p>If we come away from the coffee meeting with a verbal agreement to continue, now it&#8217;s time to set up a project.</p>
<h2>The steps in setting up a new project</h2>
<p>The first thing we do is give the project a short name. If there is a business name or domain name already, we&#8217;ll use that. Otherwise we&#8217;ll use the name of the client (mariagreene, for instance). We use that project name to make:</p>
<ul>
<li>An email folder (or Label if we&#8217;re using gmail)</li>
<li>A computer file folder</li>
<li>A physical file folder</li>
<li>A bookmarks Tag on <a href="http://del.icio.us">del.icio.us</a>, the social bookmarking service</li>
</ul>
<h3>Keeping track of email</h3>
<p>When dealing with a small business or organization, we usually use straight-up email. As I already said, we always follow up phone or in-person communication with a summary email (that we try to keep brief and friendly) so that we have records. Everyone has their own method (drag and drop, filter actions&#8230;) to keep track of the messages associated with a project, but I use a combination of search and manually dragging things to folders on my Mac.</p>
<p>Just Magic Design is a team of two (or more if we&#8217;re using subcontractors). We always insist on having one contact with the client (with authority to sign off on deliverables) but there may be other stakeholders who want to be kept informed. If there are too many involved to just use CC and Reply All, we&#8217;ll set up a Google group or YahooGroup to manage the message list. This has the side benefit of keeping a log of all the messages in one place and giving us a password-secured place to share project files. We&#8217;ve considered using a more sophisticated solution like <a href="http://basecamphq.com">Basecamp</a> but haven&#8217;t taken the plunge yet.</p>
<h3>Setting up the computer file folders</h3>
<p>Now that we have a way to communicate, we&#8217;ll set up a top-level project files folder on our computer(s). I like to keep mine all together under my home folder in a JMD Projects folder. For the JustMagicDesign.com website project, for instance, the directory structure looks like this:</p>
<pre>/Users/mariagreene
   /projects
      /justmagicdesign
          /wordpress (or drupal, or...)
          /assets
          /documents
          /backup</pre>
<p>The actual website files go in the <strong>www</strong> folder.</p>
<p>The <strong>assets</strong> folder has original artwork like Photoshop page mock-up(s), logos or other branding elements in their native format (usually from Illustrator), client-supplied or stock photos in their original resolution, and so on.</p>
<p>The <strong>documents</strong> folder contains the following (copied initially from a folder called &#8220;JMD Projects/01 Blank Project&#8221;):</p>
<ul>
<li>ClientInfo.doc</li>
<li>ProjectProposal.ppt</li>
<li>Schedule.xls</li>
<li>Invoice.xls</li>
<li>Contract.doc</li>
</ul>
<p>I&#8217;ll talk more about these files in later posts.</p>
<div class="note">
<h4>Speaking of backups&#8230;</h4>
<p>It&#8217;s a waste of time and money to lose work. To avoid this, I take several precautions:</p>
<ul>
<li>I have an external drive (an Apple Time Capsule) and I have my Mac configured to do automatic backups of my hard drive. I can use the Time Machine app to recover files if I have a problem with my laptop or if I accidentally delete something.</li>
<li>I keep any folders under www that I modify (like the site&#8217;s theme files) in a version control system (<a href="http://git.org">Git</a> in my case). This keeps me from losing work I&#8217;ve done if I want to undo some changes.</li>
<li>I keep backups of the site&#8217;s database (and I try to automate this) so we never lose too much content in the case of a server problem. I also configure the publishing system&#8217;s revision system (if it has one) so that we keep different versions of the content and can revert if we mess up or (in some cases where we allow user contributed content) the site gets vandalized.</li>
<li>If I&#8217;m modifying the same files as Diane or another team member (like the CSS files), we&#8217;ll either use a shared source control repository or at the very least we&#8217;ll make policies about which files each person &#8220;owns&#8221;.</li>
</ul>
</div>
<p>The <strong>backup</strong> folder will eventually contain the most recent backup(s) of the site&#8217;s database.</p>
<p>When the project is finished, this whole directory structure (from the project directory on down) gets copied onto a CD and given to the client.</p>
<h3>The physical file folder</h3>
<p>The physical file folder will start off containing the client&#8217;s business card, but eventually will have the signed contract and any material provided by the client in the content gathering or competitive analysis phase.  (It might also contain the odd menu or other printed item, swatch of fabric, or anything else with some design element that inspired us during the design phase!)</p>
<p>When we&#8217;re setting up a new project I use my handy-dandy label maker to print a neat label to go on a manila folder. That folder usually goes to in-person meetings with me (and the printed label makes me look like I&#8217;m a paid professional.) In my file cabinet, I have a section of hanging folders for active projects where the folder lives. When the project&#8217;s finished, some of the content gets sent back to the client (originals or copies) and the folder gets moved to the archives drawer which I actually bother to keep in alphabetical order.</p>
<h3>Del.icio.us bookmarks</h3>
<p>We use <a href="http://del.icio.us">del.icio.us</a> to share bookmarks of project-related sites on the web using the Network feature. We use the project short name as the Tag. If you haven&#8217;t started using del.icio.us you should investigate it since it makes your bookmarks portable to any browser and is fantastic for sharing links and notes about them.</p>
<h2>The project is set up &#8212; now get it done already!</h2>
<p>That&#8217;s how we go about setting up a new project. The next step is recording the client contact information in the ClientInfo document, followed by filling in the blank ProjectProposal. It may seem like we&#8217;ve done a lot of work before the deal is officially made (the contract is signed and deposit paid) but these steps actually only take about 20 minutes to perform and set us up for rapid progress once we officially kick off the project.</p>
]]></content:encoded>
			<wfw:commentRss>http://justmagicdesign.com/2009/04/the-businessadministrative-side-of-starting-a-new-project/feed/</wfw:commentRss>
		</item>
		<item>
		<title>What&#8217;s with the ugly website?</title>
		<link>http://justmagicdesign.com/2009/04/whats-with-the-ugly-website/</link>
		<comments>http://justmagicdesign.com/2009/04/whats-with-the-ugly-website/#comments</comments>
		<pubDate>Sat, 18 Apr 2009 15:02:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Process]]></category>

		<category><![CDATA[Site evolution]]></category>

		<guid isPermaLink="false">http://justmagicdesign.com/?p=225</guid>
		<description><![CDATA[Alright, it&#8217;s not really ugly but it is a bit plain. You&#8217;re visiting us in the midst of an experiment. We&#8217;re showing you the intermediate stages while we build out a new website and a new toolkit. Why? So we can document the process along the way.

We&#8217;ve been doing web design for many years but, [...]]]></description>
			<content:encoded><![CDATA[<p>Alright, it&#8217;s not really ugly but it is a bit plain. You&#8217;re visiting us in the midst of an experiment. We&#8217;re showing you the intermediate stages while we build out a new website and a new toolkit. Why? So we can document the process along the way.<br />
<span id="more-225"></span><br />
We&#8217;ve been doing web design for many years but, like the cobbler&#8217;s children going barefoot, we never made a website for our own business. The reason&#8217;s pretty simple: we had enough work from referrals and didn&#8217;t want to take the time away from client work. That&#8217;s still the case, actually, but we finally decided to make ourselves a home on the web.</p>
<p>I often push back on my clients who want to go live with a website that still has &#8220;coming soon&#8221; text on some pages or other otherwise isn&#8217;t finished. It&#8217;s not as bad as the &#8217;90s when you saw those <a href="http://www.cs.utah.edu/~gk/atwork/">&#8220;under construction&#8221; animated gif monstrosities</a> all over the web. (Heck, you *still* see some of those pages that have been like that *since* the &#8217;90s.) &#8220;Coming soon&#8221; text is still unprofessional even if it&#8217;s not as ugly. </p>
<p>But I maintain that this is different. This site is as finished as it needs to be based on where we are in <a href="/2009/03/the-development-process/">the website development process</a>. </p>
]]></content:encoded>
			<wfw:commentRss>http://justmagicdesign.com/2009/04/whats-with-the-ugly-website/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The website development process</title>
		<link>http://justmagicdesign.com/2009/03/the-development-process/</link>
		<comments>http://justmagicdesign.com/2009/03/the-development-process/#comments</comments>
		<pubDate>Wed, 18 Mar 2009 16:50:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Process]]></category>

		<category><![CDATA[Site evolution]]></category>

		<guid isPermaLink="false">http://justmagicdesign.com/?p=47</guid>
		<description><![CDATA[Developing a great website requires a great process. 
In our experience, the best process is:

  
    Discover &#62; Design &#62; Develop &#62; Deploy
  

(Rinse and repeat)

Developing a website is a lot like growing a tree - it starts out small and undeveloped then builds out in layers or rings, each [...]]]></description>
			<content:encoded><![CDATA[<p>Developing a great website requires a great process. </p>
<p>In our experience, the best process is:</p>
<div class="center-me">
  <big><br />
    <b>Discover</b> &gt; <b>Design</b> &gt; <b>Develop</b> &gt; <b>Deploy</b><br />
  </big>
</div>
<p>(Rinse and repeat)<br />
<span id="more-47"></span><br />
Developing a website is a lot like growing a tree - it starts out small and undeveloped then builds out in layers or rings, each cycle bringing it closer to full grown. We&#8217;ve found that going through the full cycle (all the way to deploy) as soon as possible is the most efficient process because everyone is dealing with something <strong>real</strong>. Specifications are abstractions. The only specifications we produce are the initial project proposal and the hand-off documentation.</p>
<div class="note">
<b>A note on sequence</b></p>
<p>We have to list and discuss the development steps in a specific sequence in this blog post, but in reality a lot of them can go on in parallel. Diane focuses on the design and Maria focuses on the development, so we each may be tackling different tasks at the same time. Some progress may be stalled waiting for client feedback, but another aspect may be ready to be addressed. The only places where we might not proceed is before the contract is signed and when we&#8217;re expecting milestone payments.
</p></div>
<p>Here are some details about what goes on in each of these four phases during the different rounds of the cycle. Note that there are specific <span class="deliverable">deliverables</span> (from us) and <span class=requirement">requirements</span> (from the client) at certain points. The requirements represent places where progress may be stalled until we have something from the client.</p>
<h2>First round</h2>
<h3>Discover - First Round</h3>
<p>Everything starts with the <b>project brief</b>. We like to do this over coffee. While we do work with some remote clients for whom we rely on email and the phone, we prefer to have at least one meeting in person. (This helps them to get to know us better and vice versa.)</p>
<p>In order to get an idea of the requirements of the project we ask <strong>four key questions</strong>:</p>
<ol>
<li>Who are <b>you</b> and what makes you unique?</li>
<li>Who are <b>your visitors</b> and what are they like?</li>
<li>What do you want them to <b>do</b> on your website?</li>
<li>What are your <b>constraints</b> in terms of time, budget, existing website or branding?</li>
</ol>
<p>We&#8217;ll ask follow-up questions as needed, but mostly what we do at this point is <b>listen</b>. We might mention some ideas for the website but the focus is on getting to know the <b>needs of the client</b>. </p>
<p>One important thing we&#8217;ll discuss is who will maintain and update the site in the long term? (This could be us, the client or someone else.) How often will it need to be updated and what is the technical skill level of the person who will do that? This will heavily influence the implementation of the website. We specialize in websites that are easy for a moderately computer-savvy person to maintain (or trivial for a very computer-savvy person) because this is the most cost-effective and fast way to do it for the client. </p>
<h4 class="deliverable">Deliverable: Project proposal</h4>
<p>The project proposal will summarize what we learned about the client during the brief and will scope a website that will meet those needs. It will have a guestimate of pages and functionality, list the measurable goals of the site, list the things we will need from the client (especially regarding content), include a rough schedule and a price. (We usually have a queue of waiting projects so the schedule will be in the form of an approximate start date and an estimated duration.) </p>
<p>The proposal will also include brief sections on platform recommendation, hosting recommendation, maintenance and promotion assumptions. This way the client knows about all the recurring costs and effort that will be associated with the website beyond the initial development.</p>
<h4 class="requirement">Requirements: Signed contract, deposit</h4>
<p>After refining the proposal with the client, we&#8217;ll ask for a signed contract. When we&#8217;re ready to begin work on the project (which may not be immediately based on our other client work) we&#8217;ll ask for a deposit of 25% of the total payment.</p>
<div class="note">
<h4>To our clients: A note on communication</h4>
<p><b>Good communication</b> between developer and client is <b>the key ingredient</b> to a successful project! We try to respond to email very quickly and we send frequent status messages between deliverables to let you know how things are coming along. We bake time into the schedule for feedback from you and refinements until you&#8217;re ready to sign off on each phase. Your website needs to reflect your (company&#8217;s/organization&#8217;s) goals so <b>you</b> are a key part of our team. That&#8217;s why we ask for <b>one contact with the authority to make decisions on a project</b>, even if there are multiple stakeholders in the website.
</div>
<h4>Content gathering</h4>
<p>Now that the project is officially started, the next part of the Discover phase is collecting anything we can from the client. If it&#8217;s a website redesign, this means a thorough audit of the existing site&#8217;s content and a discussion of what is working for the client and what needs to be changed. We also gather business cards, white papers, price sheets, flyers, advertising, images, articles or anything else that describes what the client does. </p>
<h4>Competitive analysis</h4>
<p>We&#8217;ll do our own research into competitors but we&#8217;ll also ask the client for references, especially to competitors (or allies/heroes) they&#8217;d like to emulate. We&#8217;ll ask a lot of questions about what the client likes and doesn&#8217;t like about the competitors&#8217; websites.</p>
<h3>Design - First Round</h3>
<p>At this point in the early design we&#8217;ll focus on <b>four key aspects of the design</b>:</p>
<ul>
<li><b>Branding</b></li>
<li><b>Navigation</b></li>
<li><b>Layout</b></li>
<li><b>Typography</b></li>
</ul>
<p>The branding work may not be required if the client already has a name, logo, colors and possibly other elements that they want to continue using unmodified. Everything has to build on brand, though, so we always address it before other aspects of the visual design. We enjoy designing logos and the other parts of branding, but this is one thing we may recommend outsourcing to a specialist if the client can afford it since it is so critical to all aspects of business, not just the website. (If we do the branding work ourselves we will always deliver source files in vector formats suitable other purposes, such as print.) A key aspect of branding is naming and important requirement of that is getting the matching domain name, so we&#8217;ll usually register the client&#8217;s domain name at this point if that&#8217;s not already done.</p>
<p>Before we jump into a full visual design (in other words, before we fire up Photoshop) we&#8217;ll address the other three things: navigation, layout and typography. We&#8217;ll work mostly with pencil and paper at the beginning, sketching sitemap diagrams (and other forms of Information Architecture) and making thumbnail sketches of possible layouts. We&#8217;ll use various tools to play with different fonts, sizes, weights and use of whitespace.</p>
<h3>Develop - First Round</h3>
<h4>Platform selection and install</h4>
<p>Unless we&#8217;re developing an extremely small, static site, we&#8217;ll usually go with a platform like <a href="http://wordpress.org">WordPress</a>, <a href="http://drupal.org">Drupal</a> or <a href="http://rubyonrails.org">Ruby on Rails</a>. (You can read a <a href="/2009/02/choosing-an-engine-for-a-new-project/">previous blog post</a> that discusses this choice.) That will take some initial set-up. </p>
<h4>Hosting selection</h4>
<p>The platform will influence the hosting needs and we&#8217;ll discuss the options with the client, helping them find a good balance between cost and performance/support. </p>
<h4>Site prototype based on initial design and content</h4>
<p>Now is the time to actually start writing <acronym title="HyperText Markup Language">HTML</acronym> and <acronym title="Cascading Style Sheets">CSS</acronym>. We like to hand-craft our markup and styles (rather than use <acronym title = "What you see is what you get">Wysiwyg</acronym> tools) but we start with best practice libraries of HTML templates and CSS frameworks to speed development and ensure good findability (<acronym title = "Search Engine Optimization">SEO</acronym>) and accessibility.</p>
<h3>Deploy</h3>
<p>The initial deployment is to a staging server, usually hosted by us (e.g., clientname.justmagicdesign.com). We make sure the site is password protected and not accessible to search engine spiders like Googlebot. Having a real, live website to show the client helps a lot in getting feedback because there are things you just can&#8217;t do on a static mock-up: resize the window, for instance, or interact with a drop-down menu.</p>
<h2>Second round</h2>
<h3>Discover - Second Round</h3>
<p>Now that we&#8217;re on the second round we want to discover if the prototype site is on the right track. It&#8217;s sometimes hard for the client to concentrate just on the menus, the layout and the flow of the site and not get sidetracked by the lack of graphics. &#8220;Yes, it&#8217;s not pretty yet,&#8221; we&#8217;ll ask,  &#8220;but does it <b>work</b> for you?&#8221;</p>
<h4 class="requirement">Requirement: signoff on the sitemap/navigation as presented by the prototype.</h4>
<p>After the client is happy with the &#8220;ugly&#8221; version of the site, next we get input on design and mood &#8212; what are their favorite colors (if they&#8217;re not dictated by existing branding), what tone/personality do they want for the website, what are websites they admire for their appearance (even if they&#8217;re in a different space), and so on.</p>
<h3>Design - Second Round</h3>
<p>Finally! The part everyone loves and many developers and clients jump into way too soon.</p>
<p>At this point we&#8217;ll often need to gather imagery from or for the client. The photographs and other images that we incorporate into a design need to be meaningful to the client&#8217;s business or organization. We&#8217;ll try to work with existing imagery and supplement it with stock imagery from on-line sources or imagery we create ourselves. At this point we may recommend the services of a professional photographer so that we are starting with the best imagery possible.</p>
<h4>Mock-ups</h4>
<p>This is where the magic happens: the &#8220;real design&#8221;. Adobe Photoshop is our weapon of choice for producing a design. We have the wireframe in the form of screenshots of our prototype site that we can use like a uncolored coloring book. We don&#8217;t necessarily color within the lines though because the design influences the layout just as the content does (and because asymmetry and blurred boundaries may be appropriate for the goals of the site).</p>
<p>We may produce multiple designs for the client to choose from or we may (perhaps because of budget) focus on one that we refine together.</p>
<h4 class="deliverable">Deliverable: One or more mock-ups as static images on the web.</h4>
<h4 class="requirement">Requirements: Selection/sign-off on the design. The second 25% of the project fee.</h4>
<h3>Develop - Second Round</h3>
<p>During the second stage of development, we convert the design into sliced images and CSS. (In other words, more magic happens!)</p>
<p>We&#8217;ll also pay more attention to the content at this point. We prefer to be copy editors and to take content written by the client (the domain expert) and use our experience with writing prose for the web to make it as effective as possible in that context. This is another area where we may recommend outsourcing to a specialist if the client can afford it and doesn&#8217;t feel he/she can write well enough. (Re-read the second sentence of this paragraph to see why we sometimes recommend outsourcing copy writing.)</p>
<p>We also work on things like e-commerce integration, contact forms and other interactive parts of the website at this stage.</p>
<h3>Deploy - Second Round</h3>
<p>Now the staging server should look pretty close to the final product, even if some of the pages still have &#8220;Lorem ipsum&#8221; level content or the forms don&#8217;t actually <em>do</em> anything.</p>
<h2>Subsequent rounds</h2>
<p>A simple project will just have one last round of testing and refinement before it is deployed live (launched). A complex project (like a web application) will have many. </p>
<p>We do two types of testing: validation and usability testing. Validation is automated and ensures that our markup and styles follow standards (as much as pragmatically possible), that all our links are valid, and so on. During usability testing we get feedback (ideally from people like our target visitors), refine, and repeat until the visual impression, usability and readability meet our goals. </p>
<p>We don&#8217;t test only on the final round &#8212; we do it at each stage of development. (The amount of formal usability testing we do varies a lot depending on the budget of the project.) Testing is particularly important during the final round, however, because we&#8217;re &#8220;done&#8221; when the client is satisfied enough that they want to open the website up to the public.</p>
<h4 class="requirement">Requirements: sign-off from the client and the third 25% of the project fee.</h4>
<h4 class="deliverable">Deliverable: the site deployed to the live server.</h4>
<p>At this point, we party, or at least have a glass of champagne!</p>
<h2>After launch</h2>
<p>We&#8217;re not done, of course. We will do one last round of refinement, if necessary, based on <b>real user</b> feedback. For the few months following launch, we will make sure we set aside time to address any issues as quickly as possible. </p>
<p>But most importantly, we&#8217;ll set up and train the client on things like <a href="http://google.com/analytics/">Google Analytics</a> so that they can measure whether the site is actually working for them, and we&#8217;ll train someone on how to maintain the site. We&#8217;ll also discuss how to <b>promote</b> the site with company literature, advertising (such as <a href="http://adwords.google.com">Google AdWords</a>), e-newsletters, use of social media, and so on. </p>
<h4 class="requirement">Requirement: the last 25% of the project fee.</h4>
<h4 class="deliverable">Deliverables:</h4>
<ul>
<li>An Information sheet with all service providers (hosting, domain registration, <acronym title="Secure Socket Layer">SSL</acronym> certificate, payment processors&#8230;) and all the passwords associated with the website.</li>
<li>A CD containing the site files and all original artwork as source files (e.g., .psd, .eps).</li>
<li>Any materials provided during the content gathering phase that the client wants back.
<li>A How-to document that covers:
<ul>
<li>Content updates (e.g., modifying pages, how to make blog posts, adding/updating products on an e-commerce site)</li>
<li>Upgrading the platform (such as WordPress)</li>
<li>Monitoring the site with Google Analytics and keeping an eye on server logs</li>
<li>Information about backups and restores</li>
<li>Site-specific features like user management if there is a community, forum management, etc.</li>
</ul>
</ul>
<p>So there you have it: our process for developing a website from start to finish. Next, of course, the new website brings in so much business that the company grows and expands. Now new features need to be added so they <a href="/contact">contact us</a> again. That puts us right back at the beginning and we do it all again! </p>
<h2>For further reading</h2>
<p>The web has many, many sources of information on the web development process but I&#8217;m a book person. If you would like to read more about this topic two books I recommend are:</p>
<p><a href="http://www.amazon.com/Web-ReDesign-2-0-Workflow-VOICES/dp/0735714339/ref=sr_1_2?ie=UTF8&#038;s=books&#038;qid=1239888398&#038;sr=8-2"><img src="http://g-ecx.images-amazon.com/images/G/01/ciu/2d/50/22dd7220eca04937031e0010.L.jpg" alt="" width="100px" /></a></p>
<p>&#8220;<a href="http://www.amazon.com/Web-ReDesign-2-0-Workflow-VOICES/dp/0735714339/ref=sr_1_2?ie=UTF8&#038;s=books&#038;qid=1239888398&#038;sr=8-2">Web ReDesign 2.0 | Workflow that Works</a>&#8221; by Kelly Goto and Emily Cotler</p>
<p>and</p>
<p><a href="http://gettingreal.37signals.com/"><img src="http://www.lulu.com/author/display_thumbnail.php?fCID=383343&#038;fSize=320_&#038;1239888286" alt="" width="100px" /></a></p>
<p>&#8220;<a href="http://gettingreal.37signals.com/">Getting Real - Discover the smarter, faster, easier way to build a successful web-based application</a>&#8221; by 37 Signals.</p>
<p>If you&#8217;ve read both of these you might be surprised I put them both in the same list since they take two very different approaches to development. The first approach is &#8220;Think really hard, write down lots of stuff in a very structured way, then go implement until you&#8217;re done.&#8221; The second approach is &#8220;Think a little, do it, think some more about what worked and what didn&#8217;t, refactor, then repeat until done.&#8221;  You&#8217;ll recognize our approach as a combination of the two.</p>
<p>An excellent book on usability is &#8220;<a href="http://www.amazon.com/Dont-Make-Me-Think-Usability/dp/0321344758/ref=sr_1_1?ie=UTF8&#038;s=books&#038;qid=1239899415&#038;sr=8-1">Don&#8217;t Make Me Think</a>&#8220;, by Steve Krug. This is a classic book on what makes a website a joy to use.</p>
]]></content:encoded>
			<wfw:commentRss>http://justmagicdesign.com/2009/03/the-development-process/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Starting up a new WordPress project</title>
		<link>http://justmagicdesign.com/2009/02/starting-up-a-new-project/</link>
		<comments>http://justmagicdesign.com/2009/02/starting-up-a-new-project/#comments</comments>
		<pubDate>Tue, 24 Feb 2009 16:44:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Howto]]></category>

		<guid isPermaLink="false">http://justmagicdesign.com/?p=45</guid>
		<description><![CDATA[This post is going to document how I got this site to the (meager) state that it is in now. Why? To show fellow web developers how it&#8217;s done for those who haven&#8217;t done it before and to have a handy checklist for me to refer to next time I have to do it.

If you&#8217;re [...]]]></description>
			<content:encoded><![CDATA[<p>This post is going to document how I got this site to the (meager) state that it is in now. Why? To show fellow web developers how it&#8217;s done for those who haven&#8217;t done it before and to have a handy checklist for me to refer to next time I have to do it.<br />
<span id="more-45"></span><br />
If you&#8217;re visiting for the first time or if you&#8217;re coming along later after we&#8217;ve done some remodeling, you can see a screenshot of how the site looked at the end of this process on this site&#8217;s <a title="Is this thing on?" href="/2009/02/is-this-thing-on/">very first post</a>.</p>
<p>Note that these are the technical steps of setting up a development version of the site. We&#8217;ve already <a href="/2009/02/choosing-an-engine-for-a-new-project/">talked about what led to the decision to use WordPress</a>. In the <a href="/2009/03/the-development-process/">next blog post</a> we&#8217;re going to backtrack and talk about the process steps we skipped because this is a relatively straight-foward site and the client (me) already knows what she wants.</p>
<p>This process will set up a development environment on your local computer and a live site on a remote host.  I&#8217;m developing on a Mac and I have <a href="http://mamp.info">MAMP</a> installed to provide an Apache2 web server and MySQL database. (Up until relatively recently I developed on a PC and used <a href="http://apachefriends.org/en/xampp.html">XAMPP</a>, which is a very similar set-up as far as these steps go. You should be able to adapt them easily if that&#8217;s your platform.) I&#8217;m assuming the remote host is pretty standard Linux server that gives you access to phpMyAdmin for database administration. <!--more--></p>
<p>So, on to the steps:</p>
<ol>
<li><a href="#heading-dir">Choose a development directory and set up an Apache2 named virtual host.</a></li>
<li><a href="#heading-download">Download WordPress to that location, set up the local database, edit wp-config.php and install WordPress.</a></li>
<li><a href="#heading-configure">Do basic WordPress configuration.</a></li>
<li><a href="#heading-theme">Set up the theme.</a></li>
<li><a href="#heading-git">Set up source control.</a></li>
<li><a href="#heading-plugins">Enable plugins and configure them.</a></li>
<li><a href="#heading-hosting">Prepare the web hosting.</a></li>
<li><a href="#heading-copy">Copy the site from the development machine to the web.</a></li>
</ol>
<ol class="numbered-headings">
<li id="heading-dir">
<h2>Choose a development directory and set up an Apache2 named virtual host.</h2>
<ol>
<li>Edit /etc/hosts<br />
Add dev.sitename.com to the line that starts with &#8220;127.0.0.1    localhost&#8221;</li>
<li>Edit /Applications/MAMP/conf/apache/httpd.conf<br />
Add a new section like so at the bottom:<br />
<code><br />
&lt;VirtualHost *&gt;<br />
DocumentRoot "/Users/mariagreene/projects/sitename/wordpress"<br />
ServerName dev.sitename.com<br />
&lt;/VirtualHost&gt;<br />
</code></li>
</ol>
<ul>
<li><strong>Don&#8217;t forget to restart the server!</strong> You can do this from the MAMP dashboard widget on a Mac.</li>
<li>The /etc/hosts file is in a hidden directory so it&#8217;s a little hard to open from the Open dialog box of a text editor. On my Mac, I go to the Terminal app and type &#8216;mate /etc/hosts&#8217; to open it with TextMate.</li>
</ul>
</li>
<p>It doesn&#8217;t matter much where you put your files. I like to keep mine in a project subdirectory under my home directory (i.e., ~/projects/justmagicdesign/wordpress). Another common place to put them is under the web server root directory (i.e., /Applications/MAMP/htdocs/justmagicdesign).</p>
<p>Setting up a named virtual host allows you to access the local site as (for example) http://dev.justmagicdesign.com. You want to do this rather than just putting the site under the server root (and accessing it as http://localhost/sitename) because then relative paths are the same for both the local development site and the deployed site. If you don&#8217;t you&#8217;re going to have to find and change all the src attributes of your local &lt;img&gt; elements and href attributes of your internal links and change them when you deploy.</p>
<p>There are two steps to setting up the named virtual host:</p>
<h3>Notes</h3>
<li>
<h2 id="heading-download">Download WordPress to that location, set up the local database, edit wp-config.php and install WordPress.</h2>
</li>
<p>The details are here: <a href="http://codex.wordpress.org/Installing_WordPress">Installing WordPress</a>. No need to repeat them because they&#8217;re really easy.</p>
<li>
<h2 id="heading-configure">Do basic WordPress configuration.</h2>
</li>
<p><strong>Set your admin user&#8217;s password first! Otherwise you&#8217;ll forget that gobbledygook one that&#8217;s generated for you.</strong> Then go in and set Settings &gt; Permalinks to the way you prefer. While you&#8217;re there, browse around the other settings and set them up however you would like.</p>
<li>
<h2 id="heading-theme">Set up the theme.</h2>
</li>
<p>For the JustMagicDesign site I&#8217;m developing a <a href="http://themeshaper.com/">Thematic</a> child theme. (More about that in a later post.) Since all my new sites use this base theme, I downloaded it into a shared folder and whenever I start a new project I just link to the shared copy. So, from my Mac terminal command line this would be:<br />
<code><br />
cd /Users/mariagreene/projects/justmagicdesign/wordpress/wp-content<br />
rm -rf themes<br />
ln -s /Users/mariagreene/projects/wp-share/themes themes<br />
</code></p>
<p>For example, to create a child theme called &#8220;justmagicdesign&#8221;, copy the sample out of Thematic:<br />
<code><br />
cd /Users/mariagreene/projects/wp-share/themes<br />
cp -r thematic/thematic-sample-child-theme justmagicdesign<br />
</code></p>
<p>Now, open the style.css file in the new child theme folder and edit the header comment to set the fields for the WordPress theme manager.</p>
<p>Finally, go to the Appearance panel in the WordPress admin screens and select your child theme.</p>
<li>
<h2 id="heading-git">Set up source control.</h2>
</li>
<p>I have my ~/project/wp-share folder set up as a <a href="http://subversion.tigris.org/">Subversion</a> repository. I won&#8217;t go into the virtues of source control systems or svn in particular, but trust me, you want to do this. You&#8217;ll need to add your child theme folder to svn.</p>
<li>
<h2 id="heading-plugins">Enable plugins and configure them.</h2>
</li>
<p>There are many plugins that I use across all WordPress projects. I&#8217;ve downloaded them all to /Users/mariagreene/projects/wp-share/plugins. At some point I&#8217;ll blog about what they are, but for the purposes of starting a new project, the trick is to make a symbolic link to the shared folder. Here are the Mac terminal commands:<br />
<code><br />
cd /Users/mariagreene/projects/justmagicdesign/wp-content<br />
rm -rf plugins<br />
ln -s /Users/mariagreene/projects/wp-share/plugins plugins<br />
</code></p>
<p>Now go to the Plugins page of the WordPress admin panel and enable the ones you want. You&#8217;ll need to configure many of them as well.</p>
<li>
<h2 id="heading-hosting">Prepare the web hosting.</h2>
</li>
<p>I like to &#8220;deploy early and deploy often&#8221; in order to share my work with clients and my business partner. I also like to find hosting issues early. This means I often set up web hosting as soon as I know what the requirements are going to be or I use a subdomain on my justmagicdesign.com domain as a staging site. Except in special circumstances (like when I&#8217;m showing the world the rough stages of the design and development of this site), I usually password protect the top directory so the world (and Googlebot) doesn&#8217;t see anything half baked.</p>
<p>A word to the wise &#8212; don&#8217;t try to host your WordPress site on Yahoo! small business webhosting. Run away, run away!</p>
<li>
<h2 id="heading-copy">Copy the site from the development machine to the web.</h2>
<ul>
<li>Copy the files from the local to remote machine. I use ftp from the Mac Terminal app but you can use any FTP client, including FireFTP, a useful, free Firefox Add-on.</li>
<li>Export the database using phpMyAdmin on the local host. Save it as a text file on your desktop.</li>
<li>Open it in your text editor and change all instances of your local site address (e.g., dev.sitename.com) to the remote address (e.g., sitename.com).</li>
<li>Create a new database on the remote host (using phpMyAdmin, the MySQL option of the control panel or using the mysqladmin command line tool if you have access to that).</li>
<li>Use phpMyAdmin on the remote host to import the sql file.</li>
<li>Edit the /wp-conf.php file of the new site to point to the new database. (You may need to also change other database information in this file, like the username and password if they&#8217;re not the same across sites.)</li>
</ul>
</li>
</ol>
<p>Now you&#8217;re ready to rock and roll! At this point I usually consider the database on the remote server to be the &#8220;golden&#8221; copy because other people are likely to have edited content there. I consider the files on my local machine to be the &#8220;golden&#8221; ones because they&#8217;re under source control and because it&#8217;s easiest to develop locally (where I can edit a file and just refresh my browser to see the changes). I periodically pull the database down from the web and push the files up to keep the two in sync.</p>
]]></content:encoded>
			<wfw:commentRss>http://justmagicdesign.com/2009/02/starting-up-a-new-project/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Choosing the right tool for the (new website) job</title>
		<link>http://justmagicdesign.com/2009/02/choosing-an-engine-for-a-new-project/</link>
		<comments>http://justmagicdesign.com/2009/02/choosing-an-engine-for-a-new-project/#comments</comments>
		<pubDate>Tue, 24 Feb 2009 15:23:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://justmagicdesign.com/?p=16</guid>
		<description><![CDATA[When I start a new project, I choose from four types of tools:

flat files (no database) made with a Wysiwyg editor like Dreamweaver or a code editor like TextMate
a blogging engine
a CMS
a MVC framework

There are lots of choices within each of those types, but my tools of choice are:

WordPress
Drupal
Ruby on Rails


I&#8217;ve found it really helps [...]]]></description>
			<content:encoded><![CDATA[<p>When I start a new project, I choose from four types of tools:</p>
<ul>
<li>flat files (no database) made with a Wysiwyg editor like Dreamweaver or a code editor like TextMate</li>
<li>a blogging engine</li>
<li>a <acronym title="Content Management System">CMS</acronym></li>
<li>a <acronym title="Model View Controller">MVC</acronym> framework</li>
</ul>
<p>There are lots of choices within each of those types, but my tools of choice are:</p>
<ul>
<li><a href="http://wordpress.org">WordPress</a></li>
<li><a href="http://drupal.org">Drupal</a></li>
<li><a  href="http://rubyonrails.com">Ruby on Rails</a></li>
</ul>
<p><span id="more-16"></span><br />
I&#8217;ve found it really helps to pick a tool from each category and get to know it really, really well. It also helps to realize that every site needs to be evaluated individually to decide which is the right tool for the job. It&#8217;s easy to limit your toolset to one and then &#8220;if all you have is a hammer, everything looks like a nail&#8221;. </p>
<p>It&#8217;s not very often I decide to make a new site in straight-up HTML and CSS. Most often I inherit these (sometimes from a past life before I discovered standards and used <acronym title="What you see is what you get">Wysiwyg</acronym> tools to make websites). Just about every site will grow beyond the few pages for which this is really a maintainable solution or will eventually need to be maintained by someone who isn&#8217;t well versed in technology or doesn&#8217;t own my Wysiwyg tool. Most of my coding this way these days is for prototypes.</p>
<div class="illustrated">
<div id="attachment_25" class="wp-caption alignleft" style="width: 110px"><a href="http://wordpress.org"><img src="http://justmagicdesign.com/wp-content/uploads/2009/02/blue-m1.png" alt="WordPress logo" title="blue-m1" width="100" height="100" class="size-full wp-image-25" /></a><p class="wp-caption-text">WordPress logo</p></div><br />
The site you&#8217;re reading right now is based on WordPress, an open source blogging engine. Why? Part of the site is a blog and WordPress is, in my opinion, the best of breed for blogging engines. Partly it&#8217;s the best because of the huge developer base and variety of themes and plugins available for it. I don&#8217;t want to waste any time reinventing wheels and I don&#8217;t anticipate I&#8217;ll need to create any custom functionality for this site, so I won&#8217;t have to worry about getting a rash from too much PHP development. WordPress&#8217; theme system is pretty easy to use and I&#8217;ve done it a dozen times before, so that fits. The site isn&#8217;t going to be <em>only</em> a blog but WordPress&#8217; CMS features (hierarchical pages, alternate home page&#8230;) are sufficient to make it &#8220;not too bloggy&#8221;. Finally, I like WordPress&#8217; admin interface, especially since 2.7 and the introduction of automatic upgrades.</p>
<p>Add to all that the fact that it&#8217;s easy to deploy even on shared hosting and you&#8217;ll understand why many of my small business websites are based on WordPress. (<em>All</em> of the work we do for non-profits is based on WordPress because it&#8217;s free and it&#8217;s easy for non-techie people to use to maintain the site themselves.)
</div>
<div class="illustrated">
<div id="attachment_27" class="wp-caption alignleft" style="width: 110px"><a href="http://drupal.org"><img src="http://justmagicdesign.com/wp-content/uploads/2009/02/drupliconsmall-150x150.png" alt="Drupal Icon" title="drupliconsmall" width="100" height="100" class="size-thumbnail wp-image-27" /></a><p class="wp-caption-text">Drupal Icon</p></div><br />
When do I choose Drupal? When the site is more complicated but is still pretty &#8220;standard&#8221;. Drupal is also open source and has thousands of &#8220;modules&#8221; (optional functionality) you can choose from to implement blogging, forums, e-commerce, user-contributed content&#8230; The theme system is straight-forward and similar to WordPress&#8217;. Drupal&#8217;s Content Construction Kit, Views and Taxonomy modules make it an excellent choice if your site needs to have specialized content types with a simple <acronym title="Create Read Update Delete">CRUD</acronym> interface. (And if that last sentence didn&#8217;t make a lot of sense, read up on Drupal and/or stick with WordPress.)
</div>
<div class="illustrated">
<div id="attachment_30" class="wp-caption alignleft" style="width: 97px"><a href="http://rubyonrails.com"><img src="http://justmagicdesign.com/wp-content/uploads/2009/02/rails.png" alt="Ruby on Rails logo" title="rails" width="87" height="112" class="size-full wp-image-30" /></a><p class="wp-caption-text">Ruby on Rails logo</p></div><br />
When do I choose Rails? When I want to enjoy making the website. <img src='http://justmagicdesign.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> No, seriously. OK, to be more specific, I use Rails if the site is a web application that has unique needs. If I&#8217;m going to be coding business logic I want to be doing it in Ruby and with a great support system like Rails. We&#8217;ve just started our first web application in Rails and it isn&#8217;t deployed yet, but so far it has been a total pleasure.
</div>
<p>That&#8217;s how we go about choosing an &#8220;engine&#8221; when we&#8217;re starting a new project. You&#8217;ll notice they&#8217;re all open source which is a philosophical decision. (Diane and I intend to &#8220;give back&#8221; to the community just as soon as we develop something worthy.) You may have different opinions and considerations for choosing your tool set. If so, share them with me in the comments. </p>
<p>Next up: What are the steps to set up a development environment for a new WordPress project?</p>
]]></content:encoded>
			<wfw:commentRss>http://justmagicdesign.com/2009/02/choosing-an-engine-for-a-new-project/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Is this thing on?</title>
		<link>http://justmagicdesign.com/2009/02/is-this-thing-on/</link>
		<comments>http://justmagicdesign.com/2009/02/is-this-thing-on/#comments</comments>
		<pubDate>Tue, 24 Feb 2009 14:50:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Site evolution]]></category>

		<guid isPermaLink="false">http://justmagicdesign.com/?p=3</guid>
		<description><![CDATA[Ah, the echo of a new, empty blog!
It&#8217;s traditional (if blogging can be said to have any traditions yet) to start with a post about who you are, who your intended audience is and what you&#8217;re going to talk about. So, here goes&#8230;

I&#8217;m Maria, a web developer and wanna-be designer from Massachusetts. This is my [...]]]></description>
			<content:encoded><![CDATA[<p>Ah, the echo of a new, empty blog!</p>
<p>It&#8217;s traditional (if blogging can be said to have any traditions yet) to start with a post about who you are, who your intended audience is and what you&#8217;re going to talk about. So, here goes&#8230;<br />
<span id="more-3"></span></p>
<p>I&#8217;m Maria, a web developer and wanna-be designer from Massachusetts. This is my professional blog, so I&#8217;m going to write mostly about how I do what I do and I expect my audience will be other web professionals and occasionally clients or potential clients. I&#8217;m also a mom and a geek, so I&#8217;m sure I&#8217;ll be posting about work-life balance, a bit about <a href="http://lifehacker.com">lifehacking</a>, and about being a woman (and a middle-aged one at that) and the perspective that gives me on the Internet and the profession.</p>
<p>My business partner is Diane. She&#8217;s the artist/designer/creative half of the team and a great friend. Diane may pop in every now and then with a blog post of her own.</p>
<p>If you&#8217;re visiting this blog close to when I&#8217;m posting this, the first thing you&#8217;ll probably notice is the underwhelming visual design. Here&#8217;s a screenshot for those who are coming along later. <div id="attachment_8" class="wp-caption alignnone" style="width: 160px"><a href="http://justmagicdesign.com/wp-content/uploads/2009/02/090224JustMagicDesign.png" title="090224JustMagicDesign" rel="lightbox[3]"><img src="http://justmagicdesign.com/wp-content/uploads/2009/02/090224justmagicdesign-150x150.png" alt="The first version of justmagicdesign.com" title="090224JustMagicDesign" width="150" height="150" class="size-thumbnail wp-image-8" /></a><p class="wp-caption-text">The first version of justmagicdesign.com</p></div> I thought it would be entertaining to have you follow along with me as Diane and I develop a custom WordPress theme for the site and transform it from a standard blog to a small business website. I can describe the process from the very beginning, including many of the decisions that have to be made along the way. And, since it&#8217;s a personal project and there&#8217;s no client waiting impatiently for it, I can take my time and do everything &#8220;the right way&#8221;.</p>
<p>Ready? Next up, a discussion of why I&#8217;m using WordPress for this site and how I decide what platform/engine/CMS/framework to use for a new project.</p>
<p>Welcome!</p>
]]></content:encoded>
			<wfw:commentRss>http://justmagicdesign.com/2009/02/is-this-thing-on/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
