The amazing adventures of Doug Hughes

Archive for May, 2010

Alagad Biz Book Club Reviews: The Seven Habits of Highly Effective People

Alagad has been on a real self-improvement kick lately. I dont intend to conjure images of the self-help section at your local Barnes and Nobel, but perhaps there are parallels. Like any small business, we have experienced challenges and have had to be creative to come up with ways to work through them. As a part of this, Ive established what Im calling the Alagad Biz Book Club.

The concept behind the Alagad Biz Book Club is similar to any other book club. Well pick books, read them, and then talk about them in a group setting. However, because were a business, were reading books that relate to running businesses, customer service, or other applicable topics.

We hope that by consciously exposing ourselves to more information outside of the purely technical realm, we can inspire our employees and improve how we do business.

After our group talks I plan to post a review of the book and some feedback on how it may or may not relate to Alagad.

The first book we read was The Seven Habits of Highly Effective People by Stephen Covey. My wife, Liz, championed this book. Liz actively participates in Alagad behind the scenes and felt that we could gain some insight from the book.

Her introduction to the seven habits was through a local school that is teaching the childrens version in its curriculum. The goal is to help the school improve teaching, performance, and involvement. Apparently its been rather successful.

The language in the book is often, for lack of a better word, foofy. What I mean is that many of us found it too touchy-feely for our comfort. Im not going to dig through the book and quote any specific phrases, but trust me its there.

The writing style in the book was a tremendous barrier to most of us in the company and Im not sure that anyone read it cover to cover. This is true despite the fact that we added extra time for everyone to finish it up. In the end, someone found a website offering a short summary of each chapter. Even the summary is a bit foofy, but its much less so.

The premise behind the book is that the author, Steven Covey, has worked for a very long time studying aspects of successful people. Through this study he identified specific behaviors that most successful people exhibit. The book (obviously) goes into great detail about these seven habits. The author categorizes the first three habits into ones you can do without anyone elses involvement. The second three require cooperation with others. The last is about balance and renewal.

Without further ado, here are the seven habits from the book:

Be Proactive

This habit is about essentially making choices. People have free will and get to choose what they want to do. For example, you dont have to get up and go to work in the morning. This is not being forced upon you. Instead, you choose to get up in the morning and go to work because the alternative is less appealing.

This applies to Alagad as a business because we have a responsibility to make things happen for us and for our clients. We wont be successful if we simply sit still and hope we magically get clients. Furthermore, when we do have clients, we need to make active choices to provide the best customer service we can. We also need to make the choice to recognize problems and address them so they dont reoccur.

Begin With the End In Mind

The next habit is essentially about setting goals and knowing where youre headed. Personally, Im a big goal person. I write my goals down, figure out how to accomplish them, and then accomplish them. At least, I do that when something is really important to me.

From a business perspective, knowing what youre trying to accomplish is essential. Theres no way a business can be successful at something if that something is never defined. Its like shooting in the dark.

Many things fall under this habit including strategic plans, corporate goals and mission, employee development, and more. Honestly, we have a lot of this in Alagad, but not nearly as formally as perhaps we should. As an example, we dont have a corporate mission statement that crystallizes what were trying to do on a day-to-day basis.

Getting back to the book, it points out that if you dont know what youre trying to accomplish youre not likely to be successful. Being reminded of this helps us formalize our goals and to be more focused on accomplishing them.

Put First Things First

This specific habit spawned a fairly long conversation in our club meeting. The root of this habit is that you should organize yourself around priorities and execute against them. For example, the phone might be ringing right now or you might have email sitting in your inbox, but if you answer them you might be distracting yourself from your ultimate mission.

The book categorizes tasks by two metrics, urgency and importance. The book goes on to suggest that you work on the most urgent and important tasks first and avoid working on the not urgent and not important tasks.

I think we all recognized that this is something we all fall down on from time to time. It can often be tempting to do the fun or easy work first and leave the dull or difficult work for later. However, if the fun and easy work isnt as important or urgent then youre not being terribly effective.

Think Win-Win

This habit begins the interdependent set of habits. In other words, you cant apply this habit without the involvement of someone else. It also requires you to think about situations from other peoples perspectives.

The concept of Win-Win is that in any negotiation or conflict you should try to find a way that both sides can feel like theyve won. This is really about finding compromises.

This section was quite interesting as well because of the different outcomes associated with different scenarios (loose-loose, win-loose, and loose-win). You might think that youd always want to be a winner and who cares of the other side is as looser, but that puts you in a bad position with the looser in the future. Furthermore, you might be tempted, in the name of providing good customer service put your company in the looser position to allow your client to win. This is aptly called the doormat position. IE, you get walked all over.

Finding a win-win requires you to see the situation from the other persons perspective and to truly understand their concerns. Doing this is easier said than done, especially in business. You dont always get the full picture from a client and it can be hard to draw it out of them. However, once you know, you can identify everyones issues and concerns and determine a result that would be acceptable to everyone as well as ways to achieve them.

Seek First to Understand Then to be Understood

How many times have you been in a situation where someone you were seeking advice from gave you the advice before hearing what your problem was? This can be really frustrating! This habit helps you avoid doing this to other people. The essence of this habit can be boiled down to one word: listen. This is really useful to a professional services company for several reasons.

For example, as a custom software company, Alagad creates custom web applications for our clients. To be able to do this, we need to know what the client needs in great detail. We essentially have to become subject area experts in a short period of time. To do this, we need to be very active listeners and ask leading questions. Not being able to do this will doom a project.

Or, in the event that something goes badly on a project, finding a win-win between you and the client can be difficult. However, just listening to an unhappy customer can sometimes defuse them. There are some people who apply a strategy of trying to keep an unhappy person talking as long as possible because it lets off the steam and eventually the person may realize the problem is not as bad as it seems.

Once you have as much information as you can get, you can start making recommendations and providing your own opinions on the situation.

Synergize

The last interdependent habit seeks to find a sum greater then its parts. To explain, think about a situation where you may have been debating with someone the best solution to a problem. Oftentimes these debates are not as binary as they seem and there are more than just the obvious solutions. By working with someone else, you can often identify solutions that neither of you championed, but which are better overall.

As a software company, I think Alagad has a leg up on this habit. I say this because the best developers tend to be the ones who are constantly learning and expanding their horizons. They interact with other programmers inside the company and outside and share ideas and learn from others. This creates synergy inside the company and with the community that produces better results overall.

Sharpen the Saw

The final habit is about self-renewal and balance. In the book they tell a story which Im sure we can all relate to. The story is about a person trying to cut a tree down with a dull saw that isnt making much progress. Someone asks them why they dont sharpen their saw. They reply by saying they dont have time to sharpen the saw because they need to get this tree cut down as soon as possible.

I can relate to this both personally and professionally. There are a lot of times where I skip doing something that would make my job or life easier for the sake of doing my job or living my life.

As an example, developers often get stuck on problems. They spend hours trying to work on something without making much progress. Finally, they throw their hands up in frustration and give up. Then, the next morning, after relaxing and getting some rest, they come back and realize that the solution to the problem is actually very simple and can be implemented in five minutes. So, why all the head-beating? Its like trying to cut a tree down with a dull saw. I guess the primary challenge is recognizing when the saw is dull.

The moral of the story is that you cant just apply the six habits to be successful; you also have to take care of yourself and have balance in your life.

The Alagad Take-Away

To most of us here at Alagad, the seven habits seem to be common sense. I mean, why not think win-win? Why not try to find synergy? However, as we discussed the habits I think we all realized that there are places where we could do better with each habit.

In terms of the content and the idea in the book, its worth reading. However, I must say that youll probably have to work to read the whole book.

The next book well be reading is Drive by Daniel Pink.

If you have any comments on this book or wish to suggest another book, please feel free to comment below!

What is TaskForce?

Getting To Know Sidney MaestreVicky has been peppering Twitter and Facebook with little teasers about something called TaskForce for the last few weeks. At last, were ready to announce it and let you know what it means to you!

So, what is TaskForce? Well, in a nutshell, its a new way of approaching software maintenance. Most of the people who read this blog are probably familiar with the age-old adage that only 10% of a programs life is spent in its initial development phase. The other 90% of an applications life is spent in production maintenance.

Whether these numbers are exactly accurate or not is immaterial. What is important is that developers are often needed to keep applications up and running once they move into production. Companies will continue to invest in new features, additions, edits, and bug fixes throughout the applications entire lifespan.

This leads to a number of problems from many vantage points…

To business owners and managers, maintenance costs time and money. This is pretty much a given, since no one will work for free. However, it has an additional cost associated with loss of opportunity and delays. What I mean by this is that businesses work in competition with other businesses. Whenever youre not working to push your business forward your business doesnt move forward. This gives the competition an opportunity to catch up and overtake you.

Furthermore, developers work best when focused on a single task for an extended period of time. Its called being in “the zone”. Its the same thing that musicians and athletes talk about with regard to top notch performances.

The worst thing for a developer, and for the business thats paying that developer, is to prevent that developer from getting into “the zone”. It can take an hour for a developer to reach that mental plateau, and distractions can easily knock them out of “the zone”. So, the more unrelated tasks a developer works on, the less effective he/she is at any one task and the longer it takes.

Then, when you consider the problem from the perspective of an independent contractor it can be even worse. Contractors need to work as much as they can to earn their living. However, projects last for a finite period and, as one project is completed, they need to be ready to step off onto another project. This introduces a conflict for the contractor when the old client needs support and maintenance: Do you simply drop the old client and focus on the new client or do you support both? If you drop the old client they may well be in trouble. If you work with both clients theyre both likely to suffer from less than optimal service. This reflects poorly on the contractor.

There are, of course other aspects to the maintenance problems. For example, a company might not have the budget to pay for a full time developer. They might not have the need for a full time developer. Finding a developer who can be effective part time is difficult and companies are often left with less than stellar outcomes.

Collectively, Ive termed these problems Drive By Programming. Drive By Programming is what happens when developers cant (or dont) have the focus needed to do their tasks effectively. Its a symptom of changing gears too much. Its what happens when a developer jumps ship. Its what leaves companies stranded unable to move forward and compete effectively.

And so, I thought about this problem and I believe Ive found a solution that will work for all of the parties involved. We call it TaskForce.

The name TaskForce comes from the concept of Drive By Programming. Specifically, if there was an epidemic of drive by shootings in any city, the police force would establish a TaskForce to address the problem. Thats what Alagad is doing with TaskForce: Were establishing a team of people to address the problem of Drive By Programming.

But What Is TaskForce?

TaskForce is prepaid, discounted, and retained application support services from Alagad. Each TaskForce project is assigned an experienced and dedicated team of North American developers, program managers, designers and quality assurance professionals to take care of ongoing maintenance and small enhancements of your existing applications. This lets you offload the burden of maintaining your custom websites and applications and allows you to focus on growing your company or handling new development.

TaskForce is a queue-based service. As a client, you would have access to an online system where you can assign Tasks to your dedicated Alagad team. Teams work through their queues on a first-come, first served basis.

Your program manager will work as quickly as possible to review the task you assigned to your team and to provide you with an estimate on the Task. If you approve, the team will begin work on your Task. This may include design services, development services and will certainly include quality assurance services to make sure the work was not just done right, but that it didnt break anything else. Upon completion, and your approval, the team will publish their work to your live servers for you.

When kicking off a new project, the Alagad team will interview the stakeholders in your project to learn not just the details of the project, but its history, pain points and more. We will work with your team to insure that we are using source code control systems and have a private staging environment setup. These are two important steps that can be taken to help insure your applications function at their highest levels.

What Does TaskForce Cost?

TaskForce is a discounted service from Alagad. When you sign up, you will be asked to pick a number of hours per month from 10 hours to 120 hours or more. You will also be asked to commit to a number of months from 3 months to 12 months. The more you commit to, the lower your rate! TaskForce is a tremendous value saving from 20% to 45% off our standard hourly rate. Check out our rate calculator.

What Does TaskForce Support?

TaskForce marks Alagads move towards supporting a wider range of technologies than just ColdFusion, Flex, Air and other Adobe technologies. The TaskForce team is made up of a range of professionals with very diverse backgrounds. We are able to support most common web based languages, platforms, frameworks, databases, and other technologies. If we dont have the resources now well find them for you and provide you with reliable, dependable support. Request a free consultation to see if we can help you.

Why Do Developers Care About TaskForce?

There are many reasons why developers would care. First off, this lets developers focus on new and exciting work while getting your client or employer reliable support. Its a safe referral and eases transitions youre making to new projects.

Furthermore, Alagad pays a 10% commission on referrals for life even on future projects. Commissions are paid monthly. So, when you cant take a project or you finish working for a client, refer them to Alagad for TaskForce support. You will continue getting residuals from that client for as long as Alagad works with them.

See our referral program page for information on how to confirm your referral.

If you cant take cash for a referral well make a donation to one of a few charities in your name.

Who Can Be Involved In the TaskForce Referral Program?

Anyone can! If you are a connected individual who knows businesses, industry peers or acquaintances who could benefit from website and web application maintenance support service, be a hero and refer TaskForce to your contacts. You will be compensated when they initiate a project with us. Contact us today to get started as an Alagad Referral Partner.

If you want to put a badge on your website to advertise TaskForce, please let Alagad know so we can track your referrals and give you the credit you deserve.

Is the Referral Program Limited to TaskForce?

In a word, no. Alagads referral program is valid for any work Alagad does. And, even if its a small referral it can still be valuable to you. Most large projects come out of smaller projects and we pay commissions on referrals for life even on new projects.

Please contact us with any additional questions or comments you may have! We want to make sure that TaskForce is a valuable solution both to clients and to developers.

Alagad TaskForce

Scaffolding, the Next Generation!

Unfortunately,cf.Objective 2010 was not in the cards for me this year, and I apparently missed out on many marvelous sessions. I would have been particularly interested to attend Dan Wilson’s Speedy Gonzales Guide to Model-Glue session, as Model-Glue 3.2 promises to be agreat release. Model-Glue 3.2 Alpha is currently available for download, and the Model-Glue gang are now welcoming those who wish to help test the framework in its current phase. Details for how to become involved can be found atthe official Model-Glue website.

Some would argue that one of Model-Glue’s best features is the ability to create scaffolds.Scaffolds are a tool by which you can very rapidly create basic user interfaces for editing the contents of a database table. As you might imagine, this ability saves a lot of time and effort that can be put toward more innovative endeavors. When I last looked at scaffolding, about a year ago, I certainly saw the value. At the time, though, it lacked a few things I needed. Having seen what it can do as of Model-Glue 3.2, you can bet I will be implementing this capability in the very near future. Let’s have a quick look.

For my first dive in, I used a sneak-peek walk through kindly provided to me by Dan Wilson, ofDataCurl, and written by Alagad’s ownEzra Parker. It incorporates the work of many other fine members of the Model-Glue team. My goal for the moment will be to pique your interest. If you hop over to theModel-Glue Google Group and offer your assistance, you might just get an inside looksee for yourself!

Reactor was the ORM chosen for this tutorial. However, scaffolding also works withTransfer and CF9ORM. Upon install, the sample application was configured for basic scaffolding. Of course, the features were not apparent. I still had some work to do. (I use the term work loosely!)

screenie

My first task was to add scaffold tags to the ModelGlue.xml file as such:

tagged Code

(Apologies for the screenshot shortcuts to showing you some code. I gotta hit the road toNCDevCon, and I’m apparently incapable of working with the blog engine today.)

At this point, the tutorial tells me,basic scaffolding functionality is in place, and clicking on any of the generated navigation items will take you to the list view for the table/object in question.

Wow, that was easy. Voila. As promised, a navigation menu appears up top.

Here’s what the form for adding a new post looks like:

There she is… impressive functionality for minimal work on my part. Yet, it was still somewhat aesthetically blah and in need of a makeover. This will take some doing, though, won’t it? Last time I tried this, I eventually grew frustrated to the point where re-inventing the wheel seemed easier. Not so, this time! My next task was to pop open the ColdSpring.xml config file and replace this line:

C’mon… really? All I have to do is instruct this thing to get fancy, and it will? YES! Ok, so I also had to uncomment the CFUniFormConfigBean bean and various custom scaffold beans. Then, I went into the application controller to add a bean attribute to the cfcomponent tag and a cfset to the onRequestStart() function.

<mce:script type=

Yummy. Bean injecty goodness. At this point, I’m told that reloading the application will reveal a dramatic difference in appearance. It sure did. For starters, I saw this comparatively pretty form… complete with a jQuery date picker!

Who among us doesn’t love some jQuery strewn about our forms? That’s not all we’ll see of it, either. The various other forms and list views were nicely decorated, as well.Uber awesome, to be certain.

From here, the tutorial moved into object/table relationships. In this case, I added various object tags to the Reactor.xml configuration file. This bit might look familiar to you. The concept isn’t new. The outcome, however, is somewhat different.

With that, and a few more blocks of code similar thereto, we have a many-to-many relationship in place, as well as a one-to-many and a many-to-one. What’s impressive this time around, though, are the controls that were added to represent these relationships. More jQuery joy in the form of a multiSelect widget and a dataTables widget.

You can’t tell me you’re not impressed at this point. This is good stuff, especially since at this point I’ve put about 10 minutes worth of effort toward scaffold configuration.

And finally, we’re down to customizing the scaffolds. According to the tutorial,there are a number of different ways to customize the results of the files generated by scaffolding. It goes on to describe the comprehensive approach of overriding the scaffold beans and custom tags in Model-Glue’s core with your own stuff. For the duration of this demo, though, we just picked over a few things after the views had already been generated. Behold the granular control you now have over your scaffolding. Top notch stuff, so says I.

Basically, I just copied the Form.Post.cfm file from /BlogOMatic/views/generated/ up to the /BlogOMatic/views directory. That shouldn’t be unfamiliar territory, as it’s a common way of overriding an autogenerated file with your own custom file. Move it out into the appropriate root from the subdirectory where generated files are stored for that layer and make your changes there.

The tutorial had me re-order some of the scaffold tags and rename label attributes. I had a bit of my own fun and added some avatars to the user display.

You’ve only seen a smidgen here of what I witnessed. The non-Model-Glue-aware coder would look at the demo application and assume someone spent a substantial amount of time getting it to the point where this tutorial left it.

So now that I have you enthralled with the topic of Model-Glue 3.2 and scaffolding, why not take a moment to visit the official Model-Glue blog to find out how you can help! By becoming a Model-Glue 3.2 Alpha Tester, you can take pride in knowing that you helped make the best ColdFusion framework even better. You’ll also get more personal time and instruction with the Model-Glue team in how to use these features. They’re not kidding, either. I once had the pleasure of a one on one with Managing Director, The Great Dan Wilson Himself. It was powerful… it was magical… I gave it a 10!

By the way, If you missed Dan at cf.Objective, it looks like you have several opportunities to catch him atCFUnited 2010, andI’m sure he would also like for me to remind you that there may still be time to register forNCDevCon which takes place THIS Saturday and Sunday. We gotta show theseScotch on the Rocks folks that East Coasters know how to party. Will YOU be there? I will. If you see me, say hello. I don’t bite very hard.

Tag Cloud