<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8473180628426071507</id><updated>2012-07-19T14:39:28.044-07:00</updated><category term="People"/><category term="Community"/><category term="Kids"/><category term="Programming"/><title type='text'>Chris O&#39;Meara</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.chrisomeara.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8473180628426071507/posts/default?alt=atom'/><link rel='alternate' type='text/html' href='http://blog.chrisomeara.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Chris O&#39;Meara</name><uri>http://www.blogger.com/profile/01807401013036968868</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>8</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8473180628426071507.post-1116982899007426236</id><published>2011-10-21T12:37:00.000-07:00</published><updated>2011-10-21T12:37:19.575-07:00</updated><title type='text'>Refreshing Change</title><content type='html'>Our &lt;a href=&quot;http://www.sacruby.info/&quot;&gt;local Ruby Meetup&lt;/a&gt; lost it&#39;s meeting place at the last minute this week and we ended up combining with the &lt;a href=&quot;http://www.sacwebstandards.com/&quot;&gt;Sacramento Web Standards Group&lt;/a&gt; at the &lt;a href=&quot;http://theurbanhive.squarespace.com/&quot;&gt;The Urban Hive&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I heard a well-prepared talk from &lt;a href=&quot;http://twitter.com/#%21/visual28&quot;&gt;Mark Aplet&lt;/a&gt; and &lt;a href=&quot;http://twitter.com/#%21/andyford&quot;&gt;Andy Ford&lt;/a&gt; on the topic of Responsive Web Design. It definitely fell outside my normal discussion topics -- like Ruby, Rails, TDD, etc. I felt strangely invigorated and refreshed when I left.&lt;br /&gt;&lt;br /&gt;That feeling caused me to reflect on the &lt;a href=&quot;http://pragprog.com/book/ahptl/pragmatic-thinking-and-learning&quot;&gt;Pragmatic Thinking And Learning book by Andy Hunt&lt;/a&gt; I&#39;ve been reading. He points out that change stirs creativity.&lt;br /&gt;&lt;br /&gt;Part of it was the space: Urban Hive oozes creativity.&lt;br /&gt;Part of it was the topic: I have a huge appreciation for beautiful things, especially web apps. &lt;br /&gt;Part of it was the people: front-end developers and designers are just different enough from programmers. They dress differently, speak differently, use different tools, think differently about problems. And yet they do work so very closely related to traditional developers. It upsets something in my brain in a good way.&lt;br /&gt;&lt;br /&gt;I should get out more.</content><link rel='replies' type='application/atom+xml' href='http://blog.chrisomeara.com/feeds/1116982899007426236/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.chrisomeara.com/2011/10/refreshing-change.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8473180628426071507/posts/default/1116982899007426236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8473180628426071507/posts/default/1116982899007426236'/><link rel='alternate' type='text/html' href='http://blog.chrisomeara.com/2011/10/refreshing-change.html' title='Refreshing Change'/><author><name>Chris O&#39;Meara</name><uri>http://www.blogger.com/profile/01807401013036968868</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8473180628426071507.post-7918393253686004602</id><published>2011-10-21T10:10:00.000-07:00</published><updated>2011-10-21T10:10:04.497-07:00</updated><title type='text'>Slow Down To Go Fast</title><content type='html'>Note to self: when I feel overwhelmed with workload I need to return to the basics. Going fast is a matter first of efficiency. Remove wasted effort.&lt;br /&gt;&lt;br /&gt;Under tremendous pressure, there is a very real risk I fixate on the volume of work and, as a result, freeze. How do I resolve the deadlock? Slow down.&lt;br /&gt; &lt;br /&gt; Being a knowledge worker that means:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Collect&lt;/li&gt;&lt;li&gt;Plan&lt;/li&gt;&lt;li&gt;Do what I can&#39;t delegate&lt;/li&gt;&lt;/ol&gt;Now, back to work.</content><link rel='replies' type='application/atom+xml' href='http://blog.chrisomeara.com/feeds/7918393253686004602/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.chrisomeara.com/2011/10/slow-down-to-go-fast.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8473180628426071507/posts/default/7918393253686004602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8473180628426071507/posts/default/7918393253686004602'/><link rel='alternate' type='text/html' href='http://blog.chrisomeara.com/2011/10/slow-down-to-go-fast.html' title='Slow Down To Go Fast'/><author><name>Chris O&#39;Meara</name><uri>http://www.blogger.com/profile/01807401013036968868</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8473180628426071507.post-182543792803679629</id><published>2011-01-09T14:24:00.000-08:00</published><updated>2011-01-09T14:24:05.440-08:00</updated><title type='text'>Following My Own Advice</title><content type='html'>As I&#39;ve recently transitioned from my consulting life to managing a software-as-a-service (SaaS) team as an employee I find myself working hard to follow my own advice. As a consultant I had the opportunity to observe and advise. The implementation typically fell to my clients.&lt;br /&gt;&lt;br /&gt;Now I am my own client, in a way, and the advice I gave in the past still applies.&lt;br /&gt;&lt;br /&gt;Two principles come to mind after a week on my new job: 1) leaders drive cultural norms and 2) improvements are best made as small, incremental changes.&lt;br /&gt;&lt;br /&gt;Cultural norms reflect the reality of what life looks like on your development team. Would a developer hack a file in production and leave it there? How long does it take to notice a broken build? Is untested code OK? Your team communicates the answers to these questions every day they work. The leader in the team&amp;nbsp;implicitly&amp;nbsp;approves and disapproves of individual behaviors by his/her responses. A capable leader explicitly trains, gives feedback, encourages and makes room for the team members to do the right thing. The leader shapes the cultural norms. I ask myself, &quot;what cultural norms am I driving in my team?&quot;&lt;br /&gt;&lt;br /&gt;Balancing the training, feedback, encouragement and overall change is the need to perform all these activities without alienating people. These are people, after all. Rapid, forceful, massive change has it&#39;s place but it&#39;s disruptive, destructive even, at times. I want gradual, sustainable, incremental change so that I can guide my team towards more effectiveness without alienating my teammates in the process. I ask myself, &quot;what change would help my team gain the most effectiveness and what is the next step toward effecting that change?&quot;&lt;br /&gt;&lt;br /&gt;So now I give myself a new principle to apply: integrity is following your own advice.</content><link rel='replies' type='application/atom+xml' href='http://blog.chrisomeara.com/feeds/182543792803679629/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.chrisomeara.com/2011/01/following-my-own-advice.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8473180628426071507/posts/default/182543792803679629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8473180628426071507/posts/default/182543792803679629'/><link rel='alternate' type='text/html' href='http://blog.chrisomeara.com/2011/01/following-my-own-advice.html' title='Following My Own Advice'/><author><name>Chris O&#39;Meara</name><uri>http://www.blogger.com/profile/01807401013036968868</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8473180628426071507.post-3006148945945529019</id><published>2010-11-02T13:30:00.000-07:00</published><updated>2010-11-02T22:18:38.844-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Kids"/><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><title type='text'>Teaching Junior To Program</title><content type='html'>We homeschool our 9 year-old son and the time has come for Junior to learn to program.&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://1.bp.blogspot.com/_Rc1jt-iMurk/TNDwht2s8hI/AAAAAAAAAAQ/G5VLZVBDjLs/s1600/IMG_0093.JPG&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;http://1.bp.blogspot.com/_Rc1jt-iMurk/TNDwht2s8hI/AAAAAAAAAAQ/G5VLZVBDjLs/s320/IMG_0093.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;He loves to tinker. A while back I found him with a pile of batteries, several paperclips, duct tape and a light bulb. The system was dubiously connected but any little glow from the bulb resulted in shouting from the kitchen table. &quot;Dad! DAAAAD! My light, it&#39;s working!&quot; He makes his own swords for sword play. He builds miniature buildings and invents new costumes for his favorite stuffed animal.&lt;br /&gt;&lt;br /&gt;He wants to know what I do all day. Once or twice he&#39;s pulled up a chair to watch me work in my home office. He thinks it&#39;s curious I spend so much time waiting for tests to run. He knows I &quot;teach&quot; computers, or at least that&#39;s how I explain it to him. I think his curiosity will work for him as he learns to program. I also think his love of music and talent for language will help him grasp the idea of a model as a reflection of reality, which is the basis of computer programming.&lt;br /&gt;&lt;br /&gt;I set out last weekend to plan for Junior&#39;s introduction to programming.&lt;br /&gt;&lt;br /&gt;I didn&#39;t find what I was initially looking for. I wanted a book or a blog titled &quot;How to Teach Your Curious, Creative, Music-Loving Junior Linguist to Program.&quot; What I did find was a series of resources I can string together to accomplish such a thing.&lt;br /&gt;&lt;br /&gt;First, I am amazed to learn how approachable microcontrollers have become for the education setting. The &lt;a href=&quot;http://www.parallax.com/Store/Microcontrollers/BASICStampProgrammingKits/tabid/136/ProductID/297/List/1/Default.aspx?SortField=ProductName,ProductName&quot; target=&quot;_self&quot; title=&quot;BASIC Stamp produced by Parallax&quot;&gt;BASIC Stamp, produced by Parallax&lt;/a&gt;, is a thoroughly respected option when it comes to learning to program an embedded system. They produce a complete hardware and software solution with what appears to be an excellent teaching manual. It looks like tons of fun. You can make your way through the book and then move on to build whatever you can dream up based on modules you can purchase and add on to your initial kit.&lt;br /&gt;&lt;br /&gt;BASIC Stamp is not the only option though. The open source hardware project &lt;a href=&quot;http://arduino.cc/&quot; target=&quot;_self&quot; title=&quot;Arduino&quot;&gt;Arduino&lt;/a&gt; is another option. This choice requires more initiative on the part of the parent or educator since there is nothing like Parallax&#39;s &quot;What Is A Microcontroller?&quot; book. Arduino fascinates me because I find it so approachable. There are tons of resources available for sample projects and kits. Assembling a curriculum will not be difficult.&lt;br /&gt;&lt;br /&gt;Second, there are some really smart people working a project called &lt;a href=&quot;http://scratch.mit.edu/&quot; target=&quot;_self&quot; title=&quot;Scratch&quot;&gt;Scratch&lt;/a&gt; over at MIT. Scratch looks like a great way to introduce kids to programming using games and stories. It&#39;s not hard to imagine how programming, in this context, becomes like a video game and creates a virtuous cycle in which kids want to learn more so they can play more. The development tools don&#39;t look anything like the tools I use as a professional, which is probably a good thing. The tools avoid complexities like source code files and eschew text-based syntax for a graphical drag-and-drop assemble-your-program-model.&lt;br /&gt;&lt;br /&gt;Despite being so widely used in education, I actually found it difficult to find a curriculum I could use. I found several articles and forum posts by educators talking about using Scratch but they generally had developed their own coursework. I got the impression that I could probably go find a project on the Scratch website and start modifying it to suit our education needs. The ease with which Scratch projects can be shared is brilliant, by the way.&lt;br /&gt;&lt;br /&gt;Third, I found some books which aim to teach children to program using a general-purpose programming language like &lt;a href=&quot;http://www.amazon.com/Hello-World-Computer-Programming-Beginners/dp/1933988495/ref=sr_1_1?ie=UTF8&amp;amp;qid=1288506209&amp;amp;sr=8-1&quot; target=&quot;_self&quot; title=&quot;Python&quot;&gt;Python&lt;/a&gt;, for example. These books seemed less focused on children, actually, and more focused on beginners in general. This approach didn&#39;t strike me as particularly compelling. I suppose it is fair to say I&#39;m less focused on causing Junior to learn programming at this stage and more focused on teaching him to enjoy his creativity and explore programming. If he takes to it, there is a place for the more complete approach.&lt;br /&gt;&lt;br /&gt;On my wife&#39;s advice, I&#39;m keeping it simple and engaging for now. She does, after all, do this for a living. Junior and I will learn microprocessor programming together. We will use an Arduino because it&#39;s cheap and I find it fascinating. We will go through the &lt;a href=&quot;http://www.amazon.com/Getting-Started-Arduino-Make-Projects/dp/0596155514&quot; target=&quot;_self&quot; title=&quot;Getting Started With Arduino&quot;&gt;&lt;i&gt;Getting Started With Arduino&lt;/i&gt;&lt;/a&gt; book together and see what my curious, creative, music-loving junior linguist finds fun and interesting. I&#39;ll keep a watch out for what he&#39;s good at. At the very least, he will learn what I do all day.</content><link rel='replies' type='application/atom+xml' href='http://blog.chrisomeara.com/feeds/3006148945945529019/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.chrisomeara.com/2010/11/teaching-junior-to-program.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8473180628426071507/posts/default/3006148945945529019'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8473180628426071507/posts/default/3006148945945529019'/><link rel='alternate' type='text/html' href='http://blog.chrisomeara.com/2010/11/teaching-junior-to-program.html' title='Teaching Junior To Program'/><author><name>Chris O&#39;Meara</name><uri>http://www.blogger.com/profile/01807401013036968868</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_Rc1jt-iMurk/TNDwht2s8hI/AAAAAAAAAAQ/G5VLZVBDjLs/s72-c/IMG_0093.JPG" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8473180628426071507.post-2004916243166367862</id><published>2010-02-07T13:34:00.000-08:00</published><updated>2010-11-02T22:04:05.708-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="People"/><title type='text'>The Pensive Collaborator</title><content type='html'>&lt;div style=&quot;clear: both;&quot;&gt;Do you find yourself feeling frustrated when you collaborate with certain people? Do you feel like they respond to your written communication in fits and spurts? Sometimes the conversation flows but other times they act like a communication black hole, killing the exchange in the process.&lt;/div&gt;&lt;div style=&quot;clear: both;&quot;&gt;I think there&#39;s a certain kind of collaborator whose primary characteristic is that, when it comes to written communication especially, they think deeply and seriously before responding. These people are pensive and I think I am one.&lt;/div&gt;&lt;div style=&quot;clear: both;&quot;&gt;I find it very difficult to participate in online forums, mailing lists and even, to some extent, email conversations. I&#39;m not overly private but I&#39;m coming to understand I&#39;m pensive. Written communication comes to me after deliberation.&lt;/div&gt;&lt;div style=&quot;clear: both;&quot;&gt;I read a thing and I think, &quot;Oh, I have an opinion about that.&quot; I&#39;ll explore the opinion enough to give it a mental title, a headline maybe. But then it needs to sit. There&#39;s a part of my brain that fleshes out opinions and makes connections while I&#39;m doing, well, pretty much anything else. The anything else could be paid work like consulting or programming. It could be exercise or taking my wife on a date or a hike with my son. I may come back, do a little research to fill in gaps in my understanding, then put the conversation back on the shelf. At some point the processing is done. I have an opinion and am ready to elucidate that opinion. I&#39;m faced with a dilemma. Do I actually engage in the conversation? Is my pensively-formed opinion still relevant?&lt;/div&gt;&lt;div style=&quot;clear: both;&quot;&gt;Face-to-face I don&#39;t have the same problem. It makes me wonder why writing is such a different kind of process.&lt;/div&gt;&lt;div style=&quot;clear: both;&quot;&gt;If you come across someone who seems to respond in fits and spurts to your emails or tweets you might ask yourself if they are pensive collaborators.&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8473180628426071507/posts/default/2004916243166367862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8473180628426071507/posts/default/2004916243166367862'/><link rel='alternate' type='text/html' href='http://blog.chrisomeara.com/2010/02/pensive-collaborator.html' title='The Pensive Collaborator'/><author><name>Chris O&#39;Meara</name><uri>http://www.blogger.com/profile/01807401013036968868</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-8473180628426071507.post-5185942869375589741</id><published>2010-02-07T06:40:00.000-08:00</published><updated>2010-11-02T22:05:32.170-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Community"/><title type='text'>Ron Evans&#39; Rules For Social Media</title><content type='html'>&lt;div style=&quot;clear: both;&quot;&gt;This &lt;a href=&quot;http://twitter.com/deadprogram/status/7770012515&quot;&gt;tweet&lt;/a&gt; from &lt;a href=&quot;http://twitter.com/deadprogram&quot;&gt;Ron Evans (aka @deadprogram on Twitter)&lt;/a&gt; of &lt;a href=&quot;http://deadprogrammersociety.blogspot.com/&quot;&gt;Dead Programmer Society&lt;/a&gt; fame forced me to think about my role in the Ruby and XP/Agile communities:&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;blockquote style=&quot;clear: both;&quot;&gt;My rules for social media: find something cool=tweet it, learned something cool=blog it, mastered something cool=present it&lt;/blockquote&gt;&lt;div style=&quot;clear: both;&quot;&gt;It makes some sense to me in terms of a progression of sharing. I like it as a checklist to remember to be a fully participating member in my communities.&lt;/div&gt;&lt;div style=&quot;clear: both;&quot;&gt;I&#39;m working on following the rules.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.chrisomeara.com/feeds/5185942869375589741/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.chrisomeara.com/2010/02/ron-evans-rules-for-social-media.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8473180628426071507/posts/default/5185942869375589741'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8473180628426071507/posts/default/5185942869375589741'/><link rel='alternate' type='text/html' href='http://blog.chrisomeara.com/2010/02/ron-evans-rules-for-social-media.html' title='Ron Evans&amp;#39; Rules For Social Media'/><author><name>Chris O&#39;Meara</name><uri>http://www.blogger.com/profile/01807401013036968868</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8473180628426071507.post-6186431877304824017</id><published>2010-01-31T14:55:00.000-08:00</published><updated>2010-11-02T22:05:00.901-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="People"/><title type='text'>Probing Code Quality</title><content type='html'>&lt;div style=&quot;clear: both;&quot;&gt;A friend of mine recently started as the &lt;span class=&quot;caps&quot;&gt;CEO&lt;/span&gt; of an exciting new Software as a Service business. He asked me what I thought about helping him evaluate the quality of the software asset he now manages.&lt;br /&gt;&lt;br /&gt;Code quality is such a huge topic. It’s a question of fitness for purpose. Your answer varies widely depending on what you need that software asset to &lt;i&gt;&lt;b&gt;do&lt;/b&gt;&lt;/i&gt; for you. For example, the method you use to assess the quality of a program to scrape Craig’s List is vastly different from the method you use to assess a web application you use to operate your online auction. This friend of mine has something closer to the auction site than the Craig’s List scraper.&lt;/div&gt;&lt;div style=&quot;clear: both;&quot;&gt;Here are 10 questions I suggested he explore with someone technical he trusts:&lt;/div&gt;&lt;ol style=&quot;clear: both;&quot;&gt;&lt;li&gt;How stable is the product right now? What are the outstanding functional defects and non-functional rough edges?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;How well specified is the application? If we broke a feature tomorrow, how would we know? Are the specifications executable or do we need a person to manually verify new builds?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;How complex is the application right now? How long would it take someone generally familiar with the technology to isolate and repair a problem? Unneeded complexity increases the likelihood of future defects and makes it more difficult to find and retain developers.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;What third-party dependencies exist? Open source and commercial libraries imply license terms, fees, etc.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;How does the application scale? What can you support on the current infrastructure and what’s the incremental cost of selling new subscriptions?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;What provisions are in place to deal with disasters? What is the physical server architecture? How does the system handle losing critical components like servers, switches, load balancers, etc?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;What does the development environment look like? What does it take to bring new developers into the team and get them productive?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;How is the source code managed? How do you reproduce particular configurations of the app for historical or bug-fixing reasons?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;What is the build and release process? How do versions of the software promote through different environments from development through testing to production? How do I safely push new releases into the production environment and how do I revert to previous versions if that becomes necessary?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;How do you know how the app is performing? Does it notify you when something goes wrong? Are there any monitoring or management services keeping watch?&lt;/li&gt;&lt;/ol&gt;&lt;div style=&quot;clear: both;&quot;&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.chrisomeara.com/feeds/6186431877304824017/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.chrisomeara.com/2010/01/probing-code-quality.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8473180628426071507/posts/default/6186431877304824017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8473180628426071507/posts/default/6186431877304824017'/><link rel='alternate' type='text/html' href='http://blog.chrisomeara.com/2010/01/probing-code-quality.html' title='Probing Code Quality'/><author><name>Chris O&#39;Meara</name><uri>http://www.blogger.com/profile/01807401013036968868</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8473180628426071507.post-2153530740232965143</id><published>2010-01-31T13:50:00.000-08:00</published><updated>2010-11-02T22:04:35.828-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="People"/><title type='text'>Startup CTO: Could It Work?</title><content type='html'>&lt;div style=&quot;clear: both;&quot;&gt;A CEO friend of mine recently asked my opinion about Tony Karrer&#39;s &lt;a href=&quot;http://socalcto.blogspot.com/2010/01/startup-cto-or-developer.html&quot;&gt;Startup CTO or Developer&lt;/a&gt; article.&lt;/div&gt;&lt;div style=&quot;clear: both;&quot;&gt;I &lt;b&gt;&lt;i&gt;think&lt;/i&gt;&lt;/b&gt; the part time CTO could work. Here&#39;s why.&lt;/div&gt;&lt;div style=&quot;clear: both;&quot;&gt;From a development and operations perspective, the common element in successful software businesses seems to be the technical leader. Their primary characteristics are deep technical skills and a hacker mentality (&lt;a href=&quot;http://www.paulgraham.com/gba.html&quot;&gt;about the word hacker&lt;/a&gt;). They tend to have the knack for architecture. They tend to be capable planners when it comes to issues like performance and security. They tend to have the programming background to lead competent people by example and dig in and prove it where necessary. They tend to know where to find good help in terms of employees and consultants. They tend to know the operations side of a software business well enough to be the one overseeing deploys, crafting the infrastructure plans, and monitoring the health of the product. They tend to be plugged in to tech news sources to be aware of trends and understand how those trends could impact the business. They tend to understand the product management side of the product well enough to guide the technology in a complementary way.&lt;/div&gt;&lt;div style=&quot;clear: both;&quot;&gt;I think that&#39;s the person you need. Common sense says you&#39;d do your best to hire or otherwise permanently engage that lead developer. If you think that&#39;s person you need, the question becomes &quot;what &lt;b&gt;&lt;i&gt;else&lt;/i&gt;&lt;/b&gt; do you expect a CTO to contribute?&quot;&lt;/div&gt;&lt;div style=&quot;clear: both;&quot;&gt;The answer to that question is contextual, based on what you, as CEO, and your board believe your &quot;Founder Developer Gap&quot; (reference to the &lt;a href=&quot;http://socalcto.blogspot.com/2010/01/startup-cto-or-developer.html&quot;&gt;Tony Karrer blog entry&lt;/a&gt;) to be. Surely there are some business and technology strategy problems you&#39;re going to need help with that your lead developer can&#39;t help you answer. Assuming you can&#39;t or don&#39;t want to afford a full-time CTO, that seems like the perfect fit for a consultant and that seems to be where this idea of consultant CTO makes sense.&lt;/div&gt;&lt;div style=&quot;clear: both;&quot;&gt;In thinking about this problem I asked around a fair amount and couldn&#39;t find any solid answers to the question &quot;where have you seen someone in the role of CTO for a startup do a great job?&quot; My colleagues and I interact with startups a fair amount because we&#39;re consultants. Many of us have done freelance work in the past, often for startups. We each pointed to key technical leaders that drove the development and operations parts of the businesses. A few had the title CTO but they &lt;b&gt;&lt;i&gt;all&lt;/i&gt;&lt;/b&gt; fit the technical rock star and hacker profile.&lt;/div&gt;&lt;div style=&quot;clear: both;&quot;&gt;The main thought that gives me pause is that of earned authority. It&#39;s about leading by example. Depending on how much face time the consulting CTO has with the team, it could be extremely difficult for a consulting CTO to effect change. The consultant&#39;s advice would have to be filtered through the leaders in the trenches. Yourself and your lead dev, along with your other key leaders like product and sales managers, would need to listen, internalize and execute the strategy. I doubt a consulting CTO would have the privilege and honor of earning your team&#39;s respect directly. That generally comes from running the business together.&lt;/div&gt;&lt;div style=&quot;clear: both;&quot;&gt;The other problem area is that of growth. Assuming your business succeeds and grows you&#39;ll need a proper CTO at some point. Your lead dev may or may not make sense to grow into that full-time CTO position. You could have the same problem hiring for other leadership roles too like Director Of Software Development or Master Bottle Washer. It feels like tomorrow&#39;s trouble to me but it&#39;s something to keep in mind.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.chrisomeara.com/feeds/2153530740232965143/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.chrisomeara.com/2010/01/startup-cto-could-it-work.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8473180628426071507/posts/default/2153530740232965143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8473180628426071507/posts/default/2153530740232965143'/><link rel='alternate' type='text/html' href='http://blog.chrisomeara.com/2010/01/startup-cto-could-it-work.html' title='Startup CTO: Could It Work?'/><author><name>Chris O&#39;Meara</name><uri>http://www.blogger.com/profile/01807401013036968868</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry></feed>