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

<channel>
	<title>Justin Carmony &#187; Software Development</title>
	<atom:link href="http://www.justincarmony.com/blog/tag/software-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.justincarmony.com/blog</link>
	<description>Web Designer &#38; Software Engineer</description>
	<lastBuildDate>Wed, 01 Feb 2012 04:30:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Joining a Startup &#8211; The Advantages</title>
		<link>http://www.justincarmony.com/blog/2010/01/21/joining-a-startup-the-advantages/</link>
		<comments>http://www.justincarmony.com/blog/2010/01/21/joining-a-startup-the-advantages/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 06:50:36 +0000</pubDate>
		<dc:creator>Justin Carmony</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Education]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[jobs]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[startups]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.justincarmony.com/blog/?p=513</guid>
		<description><![CDATA[While going through my backlog of my RSS feeds. I stumbled on Keith Casey&#8217;s post on Joining a Startup. He wrote it as a &#8220;reality check&#8221; for people who are considering joining a startup as a developer. Here is a snip-it: First, everyone does everything. Check your ego at the door. In the first startup ...


Related posts:<ol><li><a href='http://www.justincarmony.com/blog/2009/01/31/software-development-with-clients-in-mind/' rel='bookmark' title='Software Development With Clients In Mind'>Software Development With Clients In Mind</a></li>
<li><a href='http://www.justincarmony.com/blog/2009/09/24/article-why-developers-get-fired/' rel='bookmark' title='Article: Why Developers Get Fired'>Article: Why Developers Get Fired</a></li>
<li><a href='http://www.justincarmony.com/blog/2008/06/17/os-x-and-tabs-skipping-drop-down-controls/' rel='bookmark' title='OS X and Tabs &#8211; Skipping Drop Down Controls'>OS X and Tabs &#8211; Skipping Drop Down Controls</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>While going through my backlog of my RSS feeds. I stumbled on <a href="http://caseysoftware.com/blog/joining-a-startup" target="blank">Keith Casey&#8217;s post on Joining a Startup</a>. He wrote it as a &#8220;reality check&#8221; for people who are considering joining a startup as a developer. Here is a snip-it:</p>
<blockquote><p>First, everyone does everything. Check your ego at the door. In the first startup I was with, I was in charge of adding reporting to the eCommerce application and taking the garbage out. Was it an effective use of my time? Not at all. Did it have to be done? Yes. Did we have the money to hire someone else? Nope. If your startup is renting office space, you probably won&#8217;t have to worry about this&#8230; but who signs for packages? Who re-orders coffee? On the flip side, you could be the one taking technical questions at the next investor pitch or invited to the big customer Christmas party.</p></blockquote>
<p>I thought he hit the nail on the head with the article. Over the last few years I&#8217;ve worked with three startups, one of which was successfully bought by a large corporation. The other two have successfully gained some good revenue, but are still in the &#8220;Looking for More Money&#8221; phase, and I continue to do work for them on a contractual basis.</p>
<p>My only concern was that at the end of the article, he only mentions that he is still okay with working for a startup. He didn&#8217;t mention some of the biggest &#8220;perks&#8221; I consider working for a startup. So here are some of the items that, if you can handle the &#8220;draw backs&#8221;, are some great things. These are not &#8220;guaranteed&#8221;, as each startup is different, but typically you&#8217;ll find some of these.</p>
<ul>
<li><strong>Accelerated Learning</strong> &#8211; I&#8217;ve felt that I&#8217;ve learned at such a faster rate while working in a startup. In large development teams, you typically work on very specific things. Your team only works on one part of a larger project or product. However, with the startup, you typically have to do a lot more varied work. At Ambient, the company that was sold, I was a junior developer of a company of three developers. Here is the list of <strong><em>some</em></strong> of stuff I did in roughly one year:
<ul>
<li>Company Website</li>
<li>All Web Services</li>
<li>All Web Designs</li>
<li>Website Demos &#038; Prototypes</li>
<li>Data Mining Services</li>
<li>Executive Dashboard</li>
<li>Sales &#038; Inventory Reporting Website</li>
<li>Customizable Online DVD Rental System</li>
</ul>
<p>Not only did I work almost exclusively on these projects, they integrated with the pieces the other two developers worked on. For three developers, we cranked out a lot of great software. Since I was the junior developer, when ever we had a tech support issue that was a little too complicated for our two tech support guys, I had to diagnose and solve a lot of complicated issues. I got experience with VPNs, LDAP and Active Directory, very large databases (100,000,000+ rows), VNC &#038; RDP, and automated deployments across thousands of remote locations, to name a few. </p>
<p>If you enjoy getting your hands on a lot of different technologies, and do a lot more than in a normal company, you can really learn a lot at a startup.</li>
<li><strong>Less Politics, More Work</strong> &#8211; While I know this doesn&#8217;t apply to all startups, the ones I&#8217;ve worked in seem to have a lot less politics than other companies. I believe its because, first of all, there are less people to have politics with. Second, there is way to much work to get done to spend time on playing politics. Everyone seems to just be focused on getting work done.</li>
<li><strong>More Input, More Direction</strong> &#8211; While working in a startup, I&#8217;ve found that I have a lot more say in how we do things compared to other companies. Creativity isn&#8217;t just a bonus, it is a requirement. Many times you are working on an idea, not a detailed specification. Your creativity is required to make the idea fully functional and work properly. I&#8217;ve found many times my ideas are implemented, and while looking at the final product, I can see my influences all over the place.</li>
<li><strong>Closer Team, Fewer Annoying Co-workers</strong> &#8211; Some may think this is a myth, however what I have experienced is startups don&#8217;t have time to put up with teams that don&#8217;t work well together. For the exception of one guy who was really nice, but a major pain to work with, I&#8217;ve enjoyed working with all my co-workers and (I hope they can say the same about me). Typically people who don&#8217;t enjoy the fast pace leave after a short while. If there is an employee who doesn&#8217;t get along with the others, typically they will go find work elsewhere because the stress of the pace <em><strong>and</strong></em> not getting along well with others compound out of control. Even if they don&#8217;t leave on their own, management will usually find some solution, because a team that doesn&#8217;t work well together won&#8217;t produce the needed products to make a success. Unlike a large corporation, there isn&#8217;t anywhere to hide bad workers. If you&#8217;re not carrying your own weight, you&#8217;re gone.</li>
<li><strong>No Boredom, High Adrenaline </strong>- The pace can be stressful, but I found it most of the time exhilarating. There is never, ever a lack of work. Currently for the two startups I&#8217;m doing work for, there are years and years worth of work I can do. Sometimes the deadlines can be a killer, but meeting them is very rewarding. Its an awesome feeling when your team of two developers and one project manager create a product that out performs &amp; demolishes competing products from large, well established companies.</li>
<li><strong>High Levels of Satisfaction</strong> &#8211; I personally feel I get more out of working for a successful startup. Since developers will produce more code and applications than in other companies, there is more to be proud of. If you&#8217;re team is really tight, and a few of you create an amazing product, it is an amazing feeling.</li>
</ul>
<p>So while startups are not for everyone, and they have their drawbacks, I believe certain types of developers can find rewarding work in them. I know I&#8217;ve been lucky to work on some excellent products, and I haven&#8217;t had an experience (yet) where I&#8217;ve gotten burned. Maybe the things I&#8217;ve mentioned aren&#8217;t as common as I think, but I truly believe startups offer opportunities for developers to really accelerate their learning and excel at rewards jobs.</p>


<p>Related posts:<ol><li><a href='http://www.justincarmony.com/blog/2009/01/31/software-development-with-clients-in-mind/' rel='bookmark' title='Software Development With Clients In Mind'>Software Development With Clients In Mind</a></li>
<li><a href='http://www.justincarmony.com/blog/2009/09/24/article-why-developers-get-fired/' rel='bookmark' title='Article: Why Developers Get Fired'>Article: Why Developers Get Fired</a></li>
<li><a href='http://www.justincarmony.com/blog/2008/06/17/os-x-and-tabs-skipping-drop-down-controls/' rel='bookmark' title='OS X and Tabs &#8211; Skipping Drop Down Controls'>OS X and Tabs &#8211; Skipping Drop Down Controls</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.justincarmony.com/blog/2010/01/21/joining-a-startup-the-advantages/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Data Backups &#8211; There Are No Excuses</title>
		<link>http://www.justincarmony.com/blog/2009/04/18/data-backups-there-are-no-excuses/</link>
		<comments>http://www.justincarmony.com/blog/2009/04/18/data-backups-there-are-no-excuses/#comments</comments>
		<pubDate>Sun, 19 Apr 2009 00:04:48 +0000</pubDate>
		<dc:creator>Justin Carmony</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Backups]]></category>
		<category><![CDATA[Data Loss]]></category>
		<category><![CDATA[Horror Storries]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.justincarmony.com/blog/?p=408</guid>
		<description><![CDATA[Today I just had the terrible experience of having a database lose data, need to restore, only to not have a recent backup. If you haven&#8217;t had this experience before, please, take this serious. My wife was home for lunch as it happened, and she watched as the blood drained from my face. It only ...


Related posts:<ol><li><a href='http://www.justincarmony.com/blog/2008/01/22/asp-net-gridview-access-to-data-in-code/' rel='bookmark' title='ASP .NET GridView Access to Data In Code'>ASP .NET GridView Access to Data In Code</a></li>
<li><a href='http://www.justincarmony.com/blog/2009/01/08/the-dangers-of-twitter/' rel='bookmark' title='The Dangers of Twitter!'>The Dangers of Twitter!</a></li>
<li><a href='http://www.justincarmony.com/blog/2009/01/12/mysql-40-million-rows-myisam-innodb/' rel='bookmark' title='MySQL, 40 Million Rows, MyISAM to InnoDB, 45 Minutes'>MySQL, 40 Million Rows, MyISAM to InnoDB, 45 Minutes</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Today I just had the terrible experience of having a database lose data, need to restore, only to not have a recent backup. If you haven&#8217;t had this experience before, please, take this serious. My wife was home for lunch as it happened, and she watched as the blood drained from my face. It only took a few seconds for the loss to happen, and immediately I knew exactly what the repercussions where. The immediate second thought that passes through your brain is &#8220;Where are my backups?&#8221; That is when I realized I didn&#8217;t have my nightly backups set up on this server. I quickly checked the file date on the last known backup I had.</p>
<p><strong>13 Days</strong>.</p>
<p>It could have been a lot worse, but it was still extremely bad. Those last thirteen days had been record setting days. Emails each day were going around about record new signups, records internal messages sent, etc. Those thirteen had been the best 13 days by far.</p>
<p>If some of you are wondering what had happened, and know me to be very diligent in my backups, I did the one wrong, terrible thing: I made an assumption. I&#8217;ve <a href="http://www.justincarmony.com/blog/2009/01/12/mysql-40-million-rows-myisam-innodb/" target="_blank">blogged before on how backups have saved me in the past</a>, and how I am almost a fanatic about them. So what the heck happened?</p>
<p>This website was on some hardware that was starting to get overburdened.  Then, out of the blue, our traffic exploded and our web server and database server started to grind to a halt. I spent long hours and sleepless nights migrating from these old servers from a terrible host to some new virtual machines. We then discovered our MySQL Database was so intense that the virtual server couldn&#8217;t handle the CPU and I/O requirements. Finally, in a last attempt of desperation I moved the Database to a spare box of another company who gave me permission to use it temporarily. That finally worked and allowed us to handle the load on our Database. By the time I finished this, it was about 8 AM in the morning and I went to bed.</p>
<p>I assumed we&#8217;d only be on this box for a day or two, so I didn&#8217;t setup the backup scripts. However, it gave us more breathing room than we expected, and other issues came up non-db related. The company lending the us the server said we could take our time, so the urgency on ordering our new hardware was pushed off more and more. I had completely forgotten about setting up backups scripts, and we ended up where we are now.</p>
<h2>What I&#8217;m Changing Personally</h2>
<p>I&#8217;ve decided to make two changes personally after this experience.</p>
<p>First, there are zero excuses for not having automated backups. Zero, zilch, nada! If a backup should have occurred, there is no excuse for it not to happen.</p>
<p>Secondly, I&#8217;m going to pick a day of the month where before I do anything else, I verify that all the backups are working. My father-in-law on the first business day of the month has the habit of doing his business&#8217;s billing and other accounting activities. He lets just about nothing stand in the way, and all ways checks his bank accounts and records to make sure everything is in order. I&#8217;m going to adopt this same idea, only with servers and data. The first business day of the month I&#8217;m going to go through all the servers under my care, verify the backups are working, check error logs, etc. I want to catch the problem before anyone else does.</p>
<h2>How To Prevent Data Loss</h2>
<p>Here are a few guidelines to make sure you don&#8217;t fall victim to data loss.</p>
<ol>
<li><strong>Select a Backup Schedule &amp; Follow It 100% </strong>- I suggest for most websites, a daily backup will work out pretty well. If you have a lot of data that would really stink to lose that changes frequently through the day, you could backup several of the tables hourly.</li>
<li><strong>Back Up To Several Locations</strong> &#8211; I like my servers to have two hard drives. One for the live data and another for backups. Then, after a backup has been created, I like to sync that backed up data to another server. It is important that if a meteor fell from the sky and hit your data center (or a flood, fire, earthquake), you would have a very recent backup somewhere else.</li>
<li><strong>Verify Your Backups</strong> &#8211; I can&#8217;t stress this enough. After this terrible accident of not having a recent backup, I went and checked all my other website database backups. I found out that one critical database&#8217;s backups were broken and not running nightly. You never want to find out this information after you have to restore from a backup. Regularly verify that your backups are being created, and that you can restore from them.</li>
</ol>
<p>Hopefully this will motivate at least one person in our profession to evaluate their backup strategy and make it better. You don&#8217;t ever want to tell a client that you just lost 13 days of their record setting work.</p>


<p>Related posts:<ol><li><a href='http://www.justincarmony.com/blog/2008/01/22/asp-net-gridview-access-to-data-in-code/' rel='bookmark' title='ASP .NET GridView Access to Data In Code'>ASP .NET GridView Access to Data In Code</a></li>
<li><a href='http://www.justincarmony.com/blog/2009/01/08/the-dangers-of-twitter/' rel='bookmark' title='The Dangers of Twitter!'>The Dangers of Twitter!</a></li>
<li><a href='http://www.justincarmony.com/blog/2009/01/12/mysql-40-million-rows-myisam-innodb/' rel='bookmark' title='MySQL, 40 Million Rows, MyISAM to InnoDB, 45 Minutes'>MySQL, 40 Million Rows, MyISAM to InnoDB, 45 Minutes</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.justincarmony.com/blog/2009/04/18/data-backups-there-are-no-excuses/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Software Development With Clients In Mind</title>
		<link>http://www.justincarmony.com/blog/2009/01/31/software-development-with-clients-in-mind/</link>
		<comments>http://www.justincarmony.com/blog/2009/01/31/software-development-with-clients-in-mind/#comments</comments>
		<pubDate>Sat, 31 Jan 2009 17:05:56 +0000</pubDate>
		<dc:creator>Justin Carmony</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Clients]]></category>
		<category><![CDATA[Project Management]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.justincarmony.com/blog/?p=385</guid>
		<description><![CDATA[Why does it seem so hard to deliver quality products to clients? Sometimes it feels like clientseither don&#8217;t appreciate quality, or they have their priorities all mixed up. To help us understand, here is a wonderful sketch from Monty Python called &#8220;The Architect&#8217;s Sketch.&#8221; I&#8217;ve been searching for awhile for a good example for this ...


Related posts:<ol><li><a href='http://www.justincarmony.com/blog/2009/01/25/great-php-article-leadership-in-software-development/' rel='bookmark' title='Great PHP Article: Leadership in Software Development'>Great PHP Article: Leadership in Software Development</a></li>
<li><a href='http://www.justincarmony.com/blog/2008/09/16/web-design-the-cookie-jar-when-dealing-with-clients/' rel='bookmark' title='Web Design &amp; The Cookie Jar: When Dealing with Clients'>Web Design &#038; The Cookie Jar: When Dealing with Clients</a></li>
<li><a href='http://www.justincarmony.com/blog/2008/11/13/speaking-utah-php-usergroup-streamlined-web-development/' rel='bookmark' title='Speaking: Utah PHP Usergroup – Streamlined Web Development'>Speaking: Utah PHP Usergroup – Streamlined Web Development</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://c747925.r25.cf2.rackcdn.com/blog/wp-content/uploads/2009/01/our_clients_300.png"><img src="http://c747925.r25.cf2.rackcdn.com/blog/wp-content/uploads/2009/01/our_clients_300-180x300.png" alt="" title="our_clients_300" width="180" height="300" class="alignright size-medium wp-image-635" /></a>Why does it seem so hard to deliver quality products to clients? Sometimes it feels like clientseither don&#8217;t appreciate quality, or they have their priorities all mixed up. To help us understand, here is a wonderful sketch from Monty Python called &#8220;The Architect&#8217;s Sketch.&#8221;</p>
<p><object width="425" height="344" data="http://www.youtube.com/v/e2PyeXRwhCE&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/e2PyeXRwhCE&amp;hl=en&amp;fs=1" /><param name="allowfullscreen" value="true" /></object></p>
<p>I&#8217;ve been searching for awhile for a good example for this subject, and when I saw this sketch, I knew this would be perfect. It outlines two large problems with developing solutions for clients: <strong>quality </strong>&amp; <strong>suitability</strong>.</p>
<p>In the sketch (<a href="http://orangecow.org/pythonet/sketches/architec.htm" target="_blank">transcript avaiable</a>) each architect presented their solution. One was very well designed with high quality in mind. The second solution was well suited for their needs, but obviously has a sub-par quality. Which brings us to the conclusion, which solution did the developers pick? The poorly designed one of course! Why? Suitability, how well somethings fits, comes before quality for consumers and clients.</p>
<p>These seems rather obvious, but in-fact many developers get caught up in quality and then are totally surprised when their clients aren&#8217;t happy. Why? Because as developers we notice and respect quality a great deal more than suitability.  However, clients rarely consciously notice quality. Sub-concisely they&#8217;ll notice speed, performance, bug-free, etc. However, they don&#8217;t really realize it, it is just something they come to expect. If a software solution doesn&#8217;t suit their needs as they would like, no matter how high of quality the solution has, clients and consumers will think its poor quality.  So how can we deliver a high quality solution that also is suitable for their needs?</p>
<p><span id="more-385"></span><br />
<h2>Understanding Needs</h2>
<p>Before you can meet a need, you must understand it. I think software development education is severely lacking in helping students learn to understand client needs. There is a lot of education on theory, best practices, and technologies like programing languages and database design. However, at the end of the day, these techniques fall under the &#8220;quality&#8221; category. Don&#8217;t get me wrong, all these skills are extremely important and deserve the time and effort they receive. But what about suitability? I don&#8217;t care how well a program is designed and coded if at the end of the day it doesn&#8217;t suit my needs.</p>
<p>This is what my current boss calls the &#8220;get it&#8221; gene. There is so much more to software development and design than just under the hood. Like I&#8217;ve said before, clients and consumers don&#8217;t really care whats under the hood as long as it is working. For them their number one concern is having their needs met. Have you ever received a specification, followed it exactly, only to have your boss or client turn around and say that it won&#8217;t work for their needs? It has happened to me, and its extremely frustrating. It feels like such a waste of work many of the times.</p>
<p>Developers who &#8220;get it&#8221; do more than follow specifications. They can visualize the people who will use it and understand what they need. Specifications are usually just a good outline, and when following it a developer needs to ask himself these questions as he works:</p>
<ul>
<li>What are the needs of my end-user?</li>
<li>Why are they doing this?</li>
<li>Is this a practical way to accomplish this task?</li>
<li>Is it easy to understand and follow?</li>
<li>How often would they do this task?</li>
<li>Can they do it in a reasonable amount of time?</li>
<li>Does this make my client more productive?</li>
<li>Is this really filling their need?</li>
</ul>
<p>I know of a software development company where in the 80s they created a software product for video rental stores. They wanted to be different from the rest of the competition. Everyone else used the keyboard as their only method of interfacing with the program. However, the mouse was becoming a popular standard with computers, so they decided they would use the mouse to navigate and execute transactions instead of a keyboard. They worked hard, created their first version, and released it.</p>
<p>There was just one problem: it took a lot longer to use the program than the competition. While one person had to move and click across the screen for just about everything, the competition could quickly use keyboard shortcuts and do the same thing in 1/4 of the time. In a retail store, if it takes 4 times longer to get customer through checkout, it is a serious problem. Not only that, but it was more work moving and clicking the mouse.</p>
<p>In short, while the interface was sleek, elegant, and it was easier to train, it didn&#8217;t fit the primary needs of their clients: check out clients quickly. This repetitive task wasn&#8217;t quick enough. Imagine if your IM client required 5 steps to send a message. You wouldn&#8217;t use it, it would a giant waste of time.</p>
<h2>How To Become More Understand</h2>
<p>I&#8217;ve jotted down a few ways a developer can work on becoming more understanding:</p>
<ul>
<li><strong>Meet the Client</strong> &#8211; I would suggest any key developers who will be working on the client&#8217;s project should meet the client. Developers should feel free to ask questions to help them understand better the project. I suggest the developers be briefed first by the project manager, ask him questions first, and then any unanswered questions can be asked to the client. I&#8217;ve also believe that putting a face to a name always makes business more personable.</li>
<li><strong>See the Need</strong> &#8211; If at all possible developers should go and see the need that they are trying to fulfill. If you&#8217;re working on a Point of Sale program for an automobile supplies store, try and visit the client and see where your software will be at work. I remember working on a tool to help prep kiosks for deployment. The client sent pictures of the work area, and the lead developer went to visit the warehouse. See the environment helped the entire team understand the needs and challenges we faced, and helped up create a better product.</li>
<li><strong>Open Communication</strong> &#8211; There should be one point of contact with the client where questions can be asked. If there is something you don&#8217;t quite understand or isn&#8217;t clear, the Project Manager should be able to get answers in a timely fashion to keep things moving along.</li>
<li><strong>Frequent Client Feedback</strong> &#8211; This can be a double edge sword, and expectations about &#8220;feature-creep&#8221; should be set and kept. However, showing the client regular progress is important. Getting feedback during the entire process will actually help eliminate feature-creep at the end. While testing in the Alpha and even Beta stages of the project can be hard, using tools like <a href="http://www.techsmith.com/camtasia.asp">Camtasia</a> and <a href="http://www.jingproject.com/" target="_blank">Jing</a> can help get feedback from clients when change is easier to make instead of a day before the deadline.</li>
<li><strong>Usability Testing</strong> &#8211; Try to have an environment that is easy to quickly perform usability testing. This should be done throughout the entire development process. Like I&#8217;ve said before, its easy to make small changes as you develop. However, making a lump of changes at the end can be expensive and frustrating.</li>
</ul>
<p>From jr. developers to project managers, it is important to understand the needs you are supose to fullfill. The reason computers and software has become to popular is its ability to make our lives easier. Focusing on all aspects of software development, and not just the technical aspect, can make the difference between an okay developer and a great one.</p>


<p>Related posts:<ol><li><a href='http://www.justincarmony.com/blog/2009/01/25/great-php-article-leadership-in-software-development/' rel='bookmark' title='Great PHP Article: Leadership in Software Development'>Great PHP Article: Leadership in Software Development</a></li>
<li><a href='http://www.justincarmony.com/blog/2008/09/16/web-design-the-cookie-jar-when-dealing-with-clients/' rel='bookmark' title='Web Design &amp; The Cookie Jar: When Dealing with Clients'>Web Design &#038; The Cookie Jar: When Dealing with Clients</a></li>
<li><a href='http://www.justincarmony.com/blog/2008/11/13/speaking-utah-php-usergroup-streamlined-web-development/' rel='bookmark' title='Speaking: Utah PHP Usergroup – Streamlined Web Development'>Speaking: Utah PHP Usergroup – Streamlined Web Development</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.justincarmony.com/blog/2009/01/31/software-development-with-clients-in-mind/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using memcached
Database Caching 20/56 queries in 0.022 seconds using memcached
Content Delivery Network via Rackspace Cloud Files: c747925.r25.cf2.rackcdn.com

Served from: www.justincarmony.com @ 2012-02-08 00:04:36 -->
