<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom">
  <title>Mark McConachie</title>
  <id>http://127.0.0.1</id>
  <updated>2011-02-10T00:00:00Z</updated>
  <author>
    <name>Mark McConachie</name>
  </author>
  <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/MarkMcConachie" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="markmcconachie" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2FMarkMcConachie" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FMarkMcConachie" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2FMarkMcConachie" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.bloglines.com/sub/http://feeds.feedburner.com/MarkMcConachie" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FMarkMcConachie" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FMarkMcConachie" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FMarkMcConachie" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2FMarkMcConachie" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><entry>
    <title>The Importance of Saying No</title>
    <link href="http://127.0.0.1/2011/07/06/the-importance-of-saying-no/" rel="alternate" />
    <id>http://127.0.0.1/2011/07/06/the-importance-of-saying-no/</id>
    <published>2011-07-06T00:00:00Z</published>
    <updated>2011-07-06T00:00:00Z</updated>
    <author>
      <name>Mark McConachie</name>
    </author>
    <summary type="html">&lt;p&gt;The past few weeks have highlighted an important lesson learned for me.
During the development process, it is easy for both the client and the development team to just keep saying yes!&lt;/p&gt;
</summary>
    <content type="html">&lt;p&gt;The past few weeks have highlighted an important lesson learned for me.
During the development process, it is easy for both the client and the development team to just keep saying yes!&lt;/p&gt;

&lt;p&gt;We need to focus on ensuring that we carefully choose what we say yes to as this can have major effects on project deadlines, budgets and the final product.&lt;/p&gt;

&lt;h3&gt;When we don&amp;rsquo;t say no&lt;/h3&gt;

&lt;p&gt;As a Project progresses, it is natural for the requirements to evolve. Using agile development we do all we can to manage this from iteration to iteration, however this is not always easy.&lt;/p&gt;

&lt;p&gt;There is a difference between evolving scope and evolving requirements.&lt;/p&gt;

&lt;p&gt;When new requirements evolve it is very important that we assess whether this fits within the scope and how it could effect the projects deadlines and budget.&lt;/p&gt;

&lt;p&gt;Most software developers care about customer service, I certainly do.&lt;/p&gt;

&lt;p&gt;This makes it too easy for us to say, &amp;ldquo;Yes, you can have what ever you want&amp;rdquo;. When we do this we are not always considering the consequences for the project. We need to assess whether this is a change in scope or a evolving requirement.&lt;/p&gt;

&lt;h3&gt;When a client doesn&amp;rsquo;t say no&lt;/h3&gt;

&lt;p&gt;Most designers and developers who I know are passionate about their work. When we build something we really get into it, we get excited about it and lose a little bit of our critical analysis of what we are working on. This is normal.&lt;/p&gt;

&lt;p&gt;When we then present this work to a client, this enthusiasm can change the perspective of the client too. Causing them to see the work in the same light as we do and not to analyse whether it meets their needs.&lt;/p&gt;

&lt;p&gt;This is another problem because when the client says &amp;lsquo;yes&amp;rsquo; this changes the path of the project away from what they wished for.&lt;/p&gt;

&lt;p&gt;Near the end of the project there will come a time when you all step back and see what you have achieved.&lt;/p&gt;

&lt;p&gt;This is when this problem can be highlighted, when the projects deadlines are close and the budget is running out.&lt;/p&gt;

&lt;h3&gt;The bottom line&lt;/h3&gt;

&lt;p&gt;It is our responsibility as designers and developers to avoid these mistakes. We need to learn that saying no is not always bad customer service and that
changes in direction should always come from the client.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Getting Started with Agile Development</title>
    <link href="http://127.0.0.1/2011/03/11/getting-started-with-agile-development/" rel="alternate" />
    <id>http://127.0.0.1/2011/03/11/getting-started-with-agile-development/</id>
    <published>2011-03-11T00:00:00Z</published>
    <updated>2011-03-11T00:00:00Z</updated>
    <author>
      <name>Mark McConachie</name>
    </author>
    <summary type="html">&lt;p&gt;Agile development is a popular project management methodology for small software development teams.&lt;/p&gt;

&lt;p&gt;Working at &lt;a href="http://openfinder.net"&gt;OpenFinder&lt;/a&gt; we have found that people don&amp;rsquo;t always know what to expect when working in this way for the first time. In this post I aim to explain the basic principles and how they effect someone working alongside an Agile team&amp;hellip;&lt;/p&gt;
</summary>
    <content type="html">&lt;p&gt;Agile development is a popular project management methodology for small software development teams.&lt;/p&gt;

&lt;p&gt;Working at &lt;a href="http://openfinder.net"&gt;OpenFinder&lt;/a&gt; we have found that people don&amp;rsquo;t always know what to expect when working in this way for the first time. In this post I aim to explain the basic principles and how they effect someone working alongside an Agile team.&lt;/p&gt;

&lt;p&gt;This post is not designed to teach you how to be an Agile developer, however it should make life a little easier when you start working alongside an Agile team for the first time.&lt;/p&gt;

&lt;h2&gt;Release early, release often&lt;/h2&gt;

&lt;p&gt;Agile development&amp;rsquo;s main focus is on frequent delivery of a product. Time will be divided into small time boxes (often between 1 and 4 weeks), referred to as iterations. The team will deliver a product at the end of each of these iterations.&lt;/p&gt;

&lt;h2&gt;Releases are small increments on top of the previous product&lt;/h2&gt;

&lt;p&gt;The traditional development lifecycle follows the process &lt;em&gt;Analyze ➙ Design ➙ Develop ➙ Test ➙ Release&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;These methodologies are often refereed to as BRUF (Big Requirements Up Front). The focus here is on gathering all the requirements at the start of the project and testing and releasing the whole product at once at the end.&lt;/p&gt;

&lt;p&gt;It is usual for requirements to evolve during a project. At the start of each iteration, an Agile team will check for any requirements which have evolved since the last iteration.&lt;/p&gt;

&lt;p&gt;Using an Agile methodology often produces a different product than was visioned at the start of the project, however it will produce a product that fits the evolving requirements better.&lt;/p&gt;

&lt;h2&gt;Timescale is fixed&lt;/h2&gt;

&lt;p&gt;Always adding requirements has the potential to make the development time for the project grow and grow. Agile developers counter this by setting the project in a fixed timescale.&lt;/p&gt;

&lt;p&gt;At the start of each iteration, requirements are prioritized and the most important functionality is included as early as possible. This means that when the final release date is reached, the released product includes the most important functionality that fits the timescale (and your budget).&lt;/p&gt;

&lt;h2&gt;User Involvement&lt;/h2&gt;

&lt;p&gt;A big difference between Agile development and traditional methodologies is the focus on user involvement.&lt;/p&gt;

&lt;p&gt;It may not always practical to have users directly involved with the development and in this case the team would work closely with someone who would represent these users.&lt;/p&gt;

&lt;p&gt;Having user representation is imperative to identifying emerging and evolving requirements while also ensuring that the prioritization of requirements accurately represents the views of the end users and/or customers.&lt;/p&gt;

&lt;p&gt;The relationship between developers and the user&amp;rsquo;s representative is close. The representative becomes a member of the team as valuable as any of the developers.&lt;/p&gt;

&lt;h2&gt;Team Work&lt;/h2&gt;

&lt;p&gt;This will be the biggest change for you while working along side an Agile team. Agile teams tend to have a large focus on communicating with you, including you in their team and working together to build you the best product that fits your needs and your budget.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Sinatra powered contact form</title>
    <link href="http://127.0.0.1/2011/03/09/sinatra-powered-contact-form/" rel="alternate" />
    <id>http://127.0.0.1/2011/03/09/sinatra-powered-contact-form/</id>
    <published>2011-03-09T00:00:00Z</published>
    <updated>2011-03-09T00:00:00Z</updated>
    <author>
      <name>Mark McConachie</name>
    </author>
    <summary type="html">&lt;p&gt;I wanted to design my website to be as minimal as possible. To start with I didn&amp;rsquo;t even include a contact form! I just had an email link.&lt;/p&gt;

&lt;p&gt;I realized that I needed a page with my &lt;a href="/contact"&gt;contact details&lt;/a&gt; and realized that this was the perfect place for a contact form&amp;hellip;&lt;/p&gt;
</summary>
    <content type="html">&lt;p&gt;I wanted to design my website to be as minimal as possible. To start with I didn&amp;rsquo;t even include a contact form! I just had an email link.&lt;/p&gt;

&lt;p&gt;I realized that I needed a page with my &lt;a href="/contact"&gt;contact details&lt;/a&gt; and realized that this was the perfect place for a contact form.&lt;/p&gt;

&lt;p&gt;A few weeks ago, I integrated Sinatra and Toto to work together. Both the new &lt;a href="/contact"&gt;contact page&lt;/a&gt; and the processing of the form are handled by Sinatra (with help from &lt;a href="https://github.com/adamwiggins/pony"&gt;pony&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Soon I will enhance this page using jQuery.&lt;/p&gt;

&lt;p&gt;What enhancements do you feel a contact page requires?&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Seven Languages in Seven Weeks</title>
    <link href="http://127.0.0.1/2011/03/08/seven-languages-in-seven-weeks/" rel="alternate" />
    <id>http://127.0.0.1/2011/03/08/seven-languages-in-seven-weeks/</id>
    <published>2011-03-08T00:00:00Z</published>
    <updated>2011-03-08T00:00:00Z</updated>
    <author>
      <name>Mark McConachie</name>
    </author>
    <summary type="html">&lt;p&gt;Recently I have been feeling the thirst for new software development knowledge. I want to become more familiar with the programming language types which I am less familiar with&amp;hellip;&lt;/p&gt;
</summary>
    <content type="html">&lt;p&gt;Recently I have been feeling the thirst for new software development knowledge. I want to become more familiar with the programming language types which I am less familiar with.&lt;/p&gt;

&lt;p&gt;Last week, I bought &lt;a href="http://pragprog.com/titles/btlang/seven-languages-in-seven-weeks"&gt;Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages by Bruce A. Tate&lt;/a&gt; from &lt;a href="http://pragprog.com/"&gt;The Pragmatic Bookshelf&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The book covers the following languages&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Ruby&lt;/li&gt;
&lt;li&gt;Io&lt;/li&gt;
&lt;li&gt;Prolog&lt;/li&gt;
&lt;li&gt;Scala&lt;/li&gt;
&lt;li&gt;Erlang&lt;/li&gt;
&lt;li&gt;Clojure&lt;/li&gt;
&lt;li&gt;Haskell&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;So far, I have read the Introduction and plan to get the Ruby chapter wrapped up pretty quickly. Each chapter is divided into 3 area&amp;rsquo;s, each designed to be tackled in a day. With my experience of Ruby, I am going to attempt this whole chapter in an evening.&lt;/p&gt;

&lt;p&gt;I am going to write a short post about each chapter and new language as I get through them over the next 7 weeks!&lt;/p&gt;

&lt;p&gt;What do you do when you feel the thirst for new knowledge?&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Toto Powered!</title>
    <link href="http://127.0.0.1/2011/02/10/toto-powered/" rel="alternate" />
    <id>http://127.0.0.1/2011/02/10/toto-powered/</id>
    <published>2011-02-10T00:00:00Z</published>
    <updated>2011-02-10T00:00:00Z</updated>
    <author>
      <name>Mark McConachie</name>
    </author>
    <summary type="html">&lt;p&gt;Hello and welcome to my new website&lt;/p&gt;

&lt;p&gt;I have been experimenting with various blog and content management systems recently and started to get really sick of how heavy most of them are&amp;hellip;&lt;/p&gt;
</summary>
    <content type="html">&lt;p&gt;Hello and welcome to my new website&lt;/p&gt;

&lt;p&gt;I have been experimenting with various blog and content management systems recently and started to get really sick of how heavy most of them are.&lt;/p&gt;

&lt;p&gt;Next, I decided to build my own blog engine. First using Ruby on Rails, which was great, I am familiar with Rails and development went fast. But then I stopped and looked at what I had created and realized that I was also creating another overweight CMS.&lt;/p&gt;

&lt;p&gt;I decided to downsize, being a ruby programmer Sinatra was the obvious choice. I started hacking away at a lovely little git powered site and I was pretty happy with it.&lt;/p&gt;

&lt;p&gt;This was going to be the platform on which I would run this site!&lt;/p&gt;

&lt;p&gt;But one day, I came across this TINY blog engine called &lt;a href="https://github.com/cloudhead/toto"&gt;Toto&lt;/a&gt;. Toto is build straight on rack, no Rails, no Sinatra, no bloat. After looking through the source code, I loved it. I know that this little blog/CMS engine was simple and I like that.&lt;/p&gt;
</content>
  </entry>
</feed>

