In my last post on this topic back in September, Phase II - The Clone Wars, I discussed the first phase of our business development. We talked about how I tried to duplicate my own skills and energies by hiring likeminded folks, and how this led to a lack of diversity and innovation. In this post we will pick up on some of the solutions to those issues. Let me say at the outset that some of these issues (founders syndrome for example) are systemic and require constant vigilance and an ongoing effort to resolve. After all, we didn't come up with this list overnight at Denny's and pop in the next morning with neat and tidy solutions to all of them. Some of the items on our list (the need for sales, the value of diversity, the importance of management, team building etc.) required some convincing and cajoling and even some hard knocks to move us in the right direction. But I can say that in spite of "peaks and valleys" (which was incidentally my nickname in high school) we are moving in the right direction. So let's talk about solutions for moving off of the clone model and to something more workable for a larger, team-oriented staff.
Read More
CF Webtools is looking for bright, talented, and motivated developers with high skill sets in ColdFusion, .NET and Mobile development (including IOS and Droid). We value developers who:
Our positions are full-time remote telecommute. On rare occasions they might require some travel. We pay a competitive salary and benefits. CF Webtools maintains sites on virtually all ColdFusion and Database platforms. Our work is challenging, enervating, sometimes hair-pulling, but never boring. Our development group is lively, talented and a true mentoring community (and growing more so daily). If that sounds like a place you would like to work (and you meet our high skill-set standards) send your resume to jobs@cfwebtools.com - or contact the Muse directly if you like. Tweet me @cfwebtools or use the "Ask a Muse" link on this blog (I'm easy to find). You can also call 402 408 3733 and ask for Mark or Jason - we'll be thrilled to speak with you about our opportunity. The official job posting may be found on our corporate site at the Job Openings page.
Please note - while I'm getting better, I'm not am often pulled in many directions. If you feel like I have "dropped the ball" when you sent me a resume in the past - you are probably right. Please don't hesitate to contact me again. I'll make sure that Jason and Melissa (who handle the details) don't let you fall through the cracks this time.
I was recently chastised by a twitter follower (a beat down in 140 characters or less) for starting series that I fail to finish. So I'm coming back to my "Journey" series to add to the CF Webtools story a bit. When last we met on the subject I spoke of the 3 attitudes you need to succeed in the consulting business:
Anyone who's ever been successful as a contractor and thought about expanding has thought to themselves, "If I only had 2 of me." Aside from the obvious stress it would put on my wife you would think that having 2 of the Muse would be exceedingly useful. But knowing me, I would doubtless be playing golf right now leaving me behind to do all this work. That's just like me. It would make me so angry I'd be beside myself. Still, the idea is compelling when you are starting out - so compelling that you think about it a great deal when contemplating that all important first hire.
Consulting businesses are often started by knowledge experts with little or no business experience. When expanding such a business the first choice is usually "more of the same". In my case since I worked a certain way, I geared all my documentation, proposals, and estimates to the skill set of the Muse. So what did I look for in my first hire? Muse II of course (same level of action with a weaker plot I guess). It made sense to expand the current way of doing business by simply gathering similar skill sets to myself and dividing the work up amongst them. My first hire (Jason Herbolsheimer who is now CF Webtools VP of development) was an energetic can-do programmer able to find creative solutions to difficult problems. He worked at a similar speed to my own and was (and still is) a terrific people person. It was a great fit. Suddenly we were able to do roughly twice the work as before. In fact, my first 3 hires where like that. They were proven CF developers who I had known previously. Two of them had worked with me at my previous Job. The 4 of us divided up our customers and simply worked them in the same manner that I had worked them when I was an individual contractor.
This approach reminds me of that moving company "2 men and a truck" (would that be a "Mac" truck?). My guess is they started out as 2 men... and a truck. When they decided to expand they were probably considered changing their name to 4 men and 2 trucks, then 6 men and 3 trucks. There's some magic to this approach. It actually works well in many cases - especially if you assemble the right folks. If your team members work well independently and have the right soft-skills (inner-directed, owning problems, eclectic skill set, customer driven etc.), it can work quite well. The 4 of us did fine and had a great time along the way. I know of 3 or 4 consulting companies who operate at this level and intentionally stay at this level. And why not? They make good money, have very low overhead, and the level of responsibility is less crushing. Still, if you plan to expand beyond a handful of developers, the "clone model" (not to be confused with cloning an actual model which my wife says is out of the question) comes with some penalties.
Read More
From the absurdist school of customer service I bring you another tale of woe and frustration (and comic insight).
I write for a living. I know most folks think I actually code, troubleshoot, run a company etc - but in truth a large part of my job is to communicate in email, documents and instant messaging. Recently I got to thinking about purchasing a new software that would help me with style and editing (I'm a notoriously wordy writer). I started poking around and found this link with some excellent choices so I started reviewing them. I settled on one of them (I won't say which but it was pale and misty) for my first trial. It was inexpensive and appeared to have an easy interface. More importantly it seemed to be able to jump to life within any software I was using. Since I use Word, Evernote, Outlook, Gmail, Google docs, and Homesite (for blog writing using hand coded HTML) I thought that was a great feature.
I downloaded a copy and tried it out on a few things - emails mostly. I liked it so I purchased a licensed. I began with a document that I was prepping. Uh oh.... the software has a 10,000 character limit - it won't scan more than 10,000 characters at a time. That's a non-starter for me - and it's too bad. The software was really nice and slick - and I was digging it. I contacted support and they were extremely helpful in answering my questions and confirming that it would not meet my needs. I asked for a refund (I'd had my license about an hour) and they said "no problem". They forwarded me to "Lee" in the payments department. That's when the trouble started. Here's a rough outline of how it went.
Read More
On Saturday I sat in on ColdFusion genius Matt Woodward's session on practical couchDB. I have experience with both Memcached and MongoDB so I thought I was prepared for the general sense of what you could do with CouchDB (which I had never explored). I assumed it was just another "no SQL" database. But Matt demonstrated some things that were new to me and I am intrigued enough to experiment with them - hopefully engendering a few more "CouchDB" blog posts. Here's a couple pros and cons gleaned from the presentation.
Read More
I'm sitting in on Charlie Areharts workshop regarding how ColdFusion 10 and Tomcat live together and how to configure it. It's obvious that a good deal of my specialized JRUN knowledge will be less than useful in a couple years but I'm really excited about the change. Charlie does a good job of identifying:
Charlie identified a Tomcat filter (valve) called CralwerSessionManager that can truncate a session for an indexing bot to be very short-lived. That could be very useful for high traffic sites as those of you who have written extensive bot checking code to shorten the session timeout can attest. This would handle that automatically (if I understand what he's saying) at the server app level. He also identified some "listeners" that look interesting. I'm really looking forward to understanding more about Tomcat.
One of the new features is to save sessions after a restart. to do this you have to modify context.xml by uncommenting a node and adding a path. The Muse will try to write this up in his own style at some point. The gotchas are that it has to be a graceful shutdown (not a crash) and it can be a lengthy process which may negate the purpose on a busy server with a great many sessions. Still, under certain circumstances it would be a real plus I think. Another option is to use the built in Tomcat Persistent Session Manager which is able to save to a database or individual files.
As usual Charlie's presentation is replete with tons of URL resources so I'm going to point you to his site Carehart.org.
Great workshop on Code Review by Jim Priest (The Crumb). Jim demoed a product called Review Board a product that integrates with Git or SVN and provides a mechanism and workflow for reviewing code in a team. Like coding standards it is probably more important that you do review code than exactly how you review it. Spending some time looking at what you and your team is doing with an eye toward improvement and consistency. Great Seminar Jim - I learned a lot.
Addendum - Jim also mentioned Smart Bear as a good resource for code reviews.
Sitting in on the first third of Ray's HTML 5 intro. He has a "buttload" of code (his word - one wonders about the capacity but I digress) and with his usual efficiency he has posted all his sample code on github here. Great quote from Ray.
"Whenever I hear descriptions of HTML 5 it reminds me of a drug commercial. It's one sentence of benefits followed by 2 minutes of horrible side effects."
Instead of focusing on esoteric things like canvas, Ray's preso spends a lot of times on form features. This is one of the best things about HTML 5. There are simple and straightforward ways to make forms more usable. A great example is the autocomplete implemented entirely on the client side and entirely without Javascript.
As usual Ray teases out some of the most practical and useful tidbits - things that can be used immediately. Make sure and check out the excellent samples at github. Ray also recommends Can I Use - a great site to test your HTML version code.