Postcards From My Life

Lint I find in my mind's belly-button.
  • EPK
  • Consulting
  • Resume
  • Nerd Herding
  • Talks
  • How to Plan a Website
  • Zend Framework

Posts Tagged ‘Cal Evans’

« Older Entries

Resume

Thursday, April 22nd, 2010

Cal Evans
615-715-8812
Nashville, TN 37013
[email protected]

Why I do what I do

For the last half of my career, I have been focused on helping make the lives of developers better. Whether that is building great teams, preaching about telecommuting, how to improve developer productivity, or just helping connect developers with great companies; I love helping developers. Having been a developer, and more importantly having worked under bad bosses and great bosses, I know what it takes to make developers happy. Happy developers are productive developers, productive developers work at successful companies.

How I do what I do

When managing development teams I practice “management by wandering around”. This should not be confused with Dave Packard’s famous “management by walking around“. The difference is subtle but wandering around to me denotes much less structure and thought being put into the process. Yes, there are times I walk over and talk to developers, there are other times, I wander around outside thinking about a problem. Management by wandering around allows me the freedom to let my mind work at its own pace.

When helping companies locate developers my practice is very simple yet difficult to duplicate. I only help companies locate employees in fields I know more than a little about. I usually limit myself to web technologies for developers and Linux for system operators. I do not have a set of questions that have to be properly answered, I do not employ trick questions and I won’t administer coding tests. I simply engage the candidate in a conversation about the technologies being used by the team. If the candidate can talk with me for 30 minutes about the technology and the answers are true and honest then I will most likely recommend them to the company that is looking.

What I do

I perform one of three essential services for companies that hire me:

Team Building and Management

I love developers and love working with them. I have found that since most developers actually want to develop software, the most effective way of managing them is to give them clear goals that they can understand and agree to; then get out of their way. I have been known to fetch coffee, lunch and even fill candy jars so that developers on my teams can stay focused on their task at hand. I am a strong proponent of telecommuting and if you work with me for more than an hour you already know this.

Developer location and hiring

I am not a recruiter. I only help companies that I believe in, and believe that they will treat developers right. If your company believes that working 50-60+ hours a week is “just part of being in software development” please don’t contact me because I won’t help you find developers. On the other hand, if you company recognizes the value of a good developer and understand the term “work/life balance” when you are looking for web developers, I can probably help you find the right person.

Community Outreach

I work with companies who want to reach out ot the PHP community. I am not a corporate shill. I will not attempt to sell your product to my friends. However, if you have a product that I honestly feel the PHP community will be interested in, I will help you get your product infront of them and help them understand why it is a good product for them.

 

 

References Provided Upon Request

Tags: Cal Evans, Consulting, Management, PHP
Posted in | 1 Comment »

 

97 Things Every Programmer Should Know

Wednesday, February 24th, 2010

Dear Reader,

I met Kevlin Henny back in 2007 at the PHPUK Conference in London. (For a year or so I called him Kevin Hennly until I finally got it right) One day out of the blue, Kevlin droped me an email and invites me to participate in a new project he’s working on for O’Reilly, a collaborative book called “97 Things Every Programmer Should Know“. Not being one who is ever short of advice and opinions to give, I gladly submitted two entries that eventually made their way through the editing process and into the final book.
(more…)

Tags: advice, book, Cal Evans, kevlin Henny, programmers, software development
Posted in writing | 6 Comments »

 

CWJ: Day 0

Monday, September 21st, 2009

Dear Reader,

CodeWorks 09 Vital Stats

CodeWorks 09 day #: 0
Days till I see the Lovely and Talented Kathy:07
Cities left: 7
Miles Traveled: 0
Cups of Coffee: 0
Current Current City: Utrecht

Random Statistic of the day

Number of takes for me to get a video right while sitting at a table with the waitresses all staring at me: 2
(more…)

Tags: Cal Evans, codeworks, cw09, interview, PHP, video
Posted in codeworks | Comments Off

 

5 Tools Every PHP Developer Should Master

Monday, February 9th, 2009

Dear Reader,

If you know me, you know that PHP is my passion. Talking about PHP is fun, working with PHP is fun, helping others work with PHP is fun. Heck, I love PHP so much that I’ve worked it so that my day job for the last 3 years has been working with PHP and developers.

Over the past nine years of having fun with PHP, began to see that there are five categories of tools that I rely on more than any others. Sure, I’ve got a code beautifier, a standards checker, and a hand full of hand-written scripts I use for various things to make life easier. However when it comes down to it, there are five that I rely on every day.

So here they are in acceding order of importance. Let me know, what are your five? (let’s not start a meme or anything though, ok?)

5: A Unit Testing Tool

Whether you prefer PHPUnit or SimpleTest, Unit testing has proven it’s usefulness in the development process. As a professional PHP developer, you should be familiar with the concepts behind Unit Testing and Test Driven Development. You should also be able to identify when unit testing is a good idea and when it’s a bad idea. (Yes, there are times when it’s a bad idea)

Day Camp 4 DevelopersJoin us!
Day Camp 4 Developers.
Invest a day in your career!

4: A Debugger

As with unit testing tools, there are multiple options for you when it comes to debuggers. dbg, Zend_Debug and xdebug all provide professional PHP developers with tools to break down their code and find problems. Debugging tools allow you to step through your code, stop execution and examine the environment at any point. Debuggers are a developer’s best friend and every developer should have one installed on their development server. Bonus points if you’ve also got FireBug installed. Find you a good debugger and invest the time necessary to use it, it will be time well spent.

3: An ERD Tool

If you are doing serious PHP work then chances are good that you are working with a database. At some point your database structure will grow too large to keep in your head, you will need a tool to keep everything straight; that’s where an Entity Relationship Diagram (ERD) tool comes into play. Tools like MySQL Workbench help you visualize your database structure. More expensive tools like ERWin or Embarcadero’s ER/Studio give you more options for importing and exporting models and keeping your database model in sync with your actual database.

No matter whether you are working on your personal project or the corporate database, an ERD Tool will help you manage it.

2: A Version Control System

CVS, SVN, Git, or a host of other options both free and commercial will help you keep your code safe. Whether that’s safe from your development server’s hard drive crashing or safe from you next coding binge where you change something at 2AM that you really shouldn’t have; keeping your code in a version control system will help. Which system you choose will largely depend on how you or your team work. You need to research the options available and work with your team to make choices like central vs. distributed.

1: A Framework

The most important tool any developer can have in their tool box these days is a framework. Let’s talk about two different types of frameworks.

The first type of framework is a Content Management System. These days CMS systems are complex enough to be thought of as specialized frameworks in their own right. You need to know one good enough to get it installed, up and running and extend it to get the job done. If your needs are easily definable and your CMS of choice has extensions available to fit more of the functionality then learning one could pay for itself in only one or two projects.

PHP has a lot of good CMS projects available and listing them here would simply mean that I would forget one so I’m not going to try. Dig around on Google and you’ll find one.

The second type of framework that PHP programmers need to have in their toolbox is a more generic programming framework. In the PHP world we have a lot of frameworks from which to choose. Most developers chose one of three or four major frameworks.

  • CakePHP
  • CodeIgniter
  • symfony
  • ZendFramework

The framework you chose will largely depend around the type of projects you work on your style. Each of the above frameworks has it’s own strengths and weaknesses.

Regardless your choice, you need to know one framework well enough so that when a project comes along, you don’t burn a lot of time “Yak Shaving” but can get the project up and running quickly.

The Mission Option

There you have them, my 5 tools that every PHP developers should have in their toolbox. One thing that did not make the cut was an IDE. An IDE is great for those who use them. However, if you don’t want the overhead of an IDE, there are a lot of good Programmer’s Editors out there for you to use.

For me, I use Komodo. Yes, I know Komodo bills itself as an IDE and it has all of the important features of one. However, it doesn’t force me to code it’s way. I can use Komodo to write PHP or edit my hosts file. Active State realizes that every file is not a project and that a developer should only have to use a project when they actually want a project.

Until next time,
(l)(k)(bunny)
=C=

Tags: Cal Evans, FireBug, PHP, php developers, test driven development, testing tool
Posted in PHP, Programming | 19 Comments »

 

Leadership In Software Development

Sunday, January 25th, 2009

Dear Reader,

[Editor's Note: This is an editorial that was originally published on Freshmeat back in 2000. As I'm cleaning up my content, it stuck me that I had never published this here.]

Me to the everybody: “Hi, my name is Cal… and I’m… I’m a manager.”
Everybody: Hi, Cal!

I am a developer who made the conscious decision to move into management. My training, my experience, and my love has always been developing software. I’ve worked under sales managers, business managers, and (shudder) a CTO who believed that all the good software had already been written so we didn’t need to write anything; we could just buy everything we needed. I made the leap into management for one reason: I had a manager who “got it” and showed me by example that developers can make great bosses for other developers. (Thanks, Paul M.!)

During my career as a developer, I learned many different things but the one thing that has stuck with me is this axiom:

“If you have never been a software developer, you have no business managing software developers.”

There, I’ve done it again. At least one third of you are now mad at me. But regardless of your feelings towards me, I stand by my statement because, time and again, whether through personal experience of 24 years or war stories from others, it has survived.

Before you fire up mutt and flame me, let me be quick to point out that I do not believe that this maxim is universally applicable to all situations or walks of life. I am not belittling any person or occupation, but I believe that, in most cases, we as humans, co-workers, and professional colleagues have enough shared experience to be able to relate to each other. I do not believe that this maxim applies to the sexes or to races. However, there are a few areas where it does apply, and the one I know most about is software development. Here are three different thoughts on why I believe this is true, what I believe has caused the current crisis, and what I think we can do about it:

The Balancing Act — Why we are here.

There are very few professions that combine the creativity involved in good software development and the rigorous deadlines, often imposed from the outside. Hurry up and create! The ideas have to keep flowing, they have to be scheduled, and they have to be completed on time. If you have to go figure something out, go. But make sure you are back after lunch and make sure your schedule doesn’t slip. Developers, especially now as we work in Web years, are under increasing pressure to “Get it out the door fast!”.

The rigorous detail work of quality software development, however, has not changed. It still takes time to develop quality software. (You can have it good, fast, or cheap; please pick two.) To those on the outside, it may sometimes seem that what we do is easy. (Heck, we may feel that what we do is easy!) The ease with which developers manipulate the tools of the trade is often misconstrued as ease with which the task can be completed. Only a developer understands the countless hours it takes to master new tools, new languages, and new concepts. In this age of rapid development, new concepts come at us like a fire hose of knowledge. We are supposed to know how to soak it all up and be able to use it in our next project. This is almost a bearable burden if management understands what we are faced with. The problem is that, having never been there, most managers cannot empathize. (And most don’t even bother to sympathize.)

The Boss From Beyond — What has caused the current crisis.

It’s generally accepted folklore in the IT community that managers are managers because they can’t do anything else. What has led us to this state, a climate in which developers don’t respect their managers and managers try to manage a software development team like an accounting department? Volumes have been written on when and why people are promoted into positions they are not qualified to hold. I won’t rehash that here. I have a different take on it.

The question we ask should not be “Why don’t managers understand software development?”; the question should be “Why don’t those of us who do understand the process step up to management?” The obvious answer is that there are very few developers who want to be managers.

In the past, developers would have to turn away from promotions to management (and sometimes raises) so they could remain in development. These days, they find other companies to work for that will pay them more and allow them to continue to develop (but that’s a story for another day). The problem exacerbates itself. The more developers steer clear of management positions, the unhappier software development teams will be with the candidates that become their managers.

We, the IT community, have the bosses we have because we refuse to step up to the plate and take the job. I am not advocating that all developers climb the management ladder; far from it. In most cases, a developer pressed into service as a manager will do no better a job than an accountant forced to code. But until the development community learns to train its own management structure, we are doomed to be managed by PHBs.

Managing In Chaos — What can we do about it?

So now we are all on the same Merry-Go-Round from hell. What can we do to get off? At least part of the answer is obvious. We, as a community, have to train our own managers. For me as a manager, that means that as I interview candidates for development positions, I have to keep my eyes open for potential managers. I have to make sure that I mentor as I was mentored. I have to realize that if I don’t train new development managers, I’m as big a part of the problem as non-development managers.

For me as a developer, and all other developers reading this, we have to make sure that we educate our managers.

We have to teach them concepts like:

  • Deadlines cannot be set from the outside without input from the development team they are being imposed on.
  • Sometimes, it just doesn’t come to you and you can’t force it.
  • You can’t run most modern IDEs on crap hardware!

I’ve found that, in many cases, they can learn. They want to learn. They are PHBs because they’ve never been taught not to be. There are some that won’t learn or, worse yet, think you have a lot to learn about business. If you are under one of these and you work in America, change jobs! Life’s too short and the job market is too tight to deal with goobers like that.
Closing

To fix the present situation, we, as developers, have to make one of two choices. We can take a stand at our present jobs and educate upper management so that we don’t work for PHBs, or we can find other jobs. But make no mistake about it; it is ultimately up to us to fix the problem.

Until next time,
(l)(k)(bunny)
=C=

Tags: Cal Evans, developers, developing software, Management, phb
Posted in Management, Programming | 5 Comments »

 
« Older Entries
  • Friends of mine

  • My Latest Book


    Avoiding a Goat Rodeo

  • Follow me on twitter!

  • RSS PHP Podcasts

    • Episode 7: Web Sockets Are Fast
    • Better Documentation for PHP internals – Lately in PHP podcast episode 35
    • Episode 31: Feline Tooth Extraction
    • Episode #2 – Adam Culp
    • Episode 6: PSR-X and the Mexican Standoff
    • Episode 109: Typescript and a bit more…
    • A Better PHP Feature Voting Process – Lately in PHP podcast episode 34
    • Episode 30: It’s Episode 30, you guys
    • PHP Innovation Award Winner of 2012 – Lately in PHP podcast episode 33
    • Episode 29: Snappy Answers to Stupid Questions

  • Me, elsewhere on the Web

    • Best web design company
    • Cal Evans Dot Com
    • Cyrano’s Apprentice
    • Evans Internet Construction Company
    • My Life as a Child
    • PHP Podcasts

  • Categories

    • Apache
    • BlogBling
    • Blogging
    • Book Review
    • codeworks
    • Entertainment
    • Entrepreneurship
    • Flex
    • Humor
    • JavaScript
    • Long Form
    • Management
    • Marketing
    • Me, elsewhere on the Web
    • PHP
    • podcasting
    • Programming
    • SQL
    • Technology
    • Web 2.0
    • wordpress
    • WordPress Plugins
    • writing
    • zend framework


Postcards From My Life is proudly powered by WordPress
Entries (RSS) and Comments (RSS).