Postcards From My Life

Lint I find in my mind’s belly-button.
  • Home
  • Consulting
  • Resume
  • Subscribe
  • epk
« Yar!
Feed should be working now »

5 Ways to Kill a Software Project

Dear Reader,

[UPDATE: Podcast version]
For the past three months, I’ve been watching a software project happening nearby slowly dissolve. While it’s not totally gone, currently, it is in such a state that I doubt it can be realistically salvaged. That’s not to say that the project won’t be delivered but the developer is now in ‘patch-n-go’ mode with major needs of the client being ignored simply to allow him to get “something” out the door. So as everyone is recovering from this year’s “Talk Like a Pirate Day”, let’s take a look at some of the steps that the developer and the project owner took to effectively kill this project.

First, a little background; this project is a web based project. In hind-site the customer needed a CMS with a shopping cart. The customer sells a wide variety of items so any off-the-shelf shopping cart solution would have had to have been customized. I’m sure by now, you have selected your favorite open source CMS or shopping cart package as a good basis for this project. I know I did, but that’s too simple of an exercise. With the basics of the project in mind now, let’s take a look at 5 rules that were followed to a “T” to properly kill this project.

  1. Avoid all design and documentation

    To properly kill a software development project early on, you need to avoid all design meetings with the client. I’m not talking visual design meetings but any meeting where the client explains to you what the system really needs to do. If you are suckered into one of these meetings, make sure you take control of the conversation early on by listing all of the benefits of the system and side tracking the discussion on minutia like button colors or email addresses. It is imperative to the eventual failure of the project that you avoid, at all costs, the customer giving you any direct input as to what the system should do.

  2. Hire a developer with no domain experience/expertise.

    Make sure when searching for a developer that you find a gung-ho developer with no direct experience in the client’s industry. Domain expertise will simply get in the way and slow things down so it should be avoided at all costs. It’s best to find a developer who has a great idea for a system that he/she wants to build and shoe-horns the client’s needs into this system. The developer having an idea before you even approach them will work in your favor because he/she will concentrate on building out their system or framework and every feature request by the client will be squeezed into a slightly similar feature in their system.

    For your project to fail properly, your developer needs to ignore the concept of Best Practices. Development environments, unit testing and source code control systems are all time sinks and should be avoided.

  3. Write everything from scratch

    Once you’ve hired your developer, make sure they do not cheat by using existing code as a basis for the project. Your project is unique enough so that no one else has thought of it yet and no existing project can help. Make sure he/she understands that this include the framework. Let them know that you expect him/her to write the framework for this project from scratch.

  4. Make your Sales department start showing the project before your developers has finished it.

    As soon as development begins, make sure the sales department is out there showing it to the client. Errors should not be considered a bad thing, they just shows the client you are making progress. Since you’ve done away with any controls in the process, expect features that have been requested and implemented to disappear the next day as the next request comes in. This gives you great fodder for jokes between you and the client. These times of bonding will only draw your client closer to you instead of making them wonder how you spent their deposit.

    These meetings between your sales department and the client are excellent opportunities for your client to “remember” important features that have to be in the system. Be prepared, when the salesperson comes back they should have a napkin from the restaurant they met the client at, covered with new features that your developer needs to take into account.

  5. Let your Sales department set your deadlines

    Regardless of their lack of grounding in technology, make sure your Sales department knows that it is their job to set the deadlines for the project. Left to their own devices, developers will set deadlines based solely on the time it actually takes to build the system and refuse to take into account that the client has a trade show in a week and absolutely has to have the system in place before the show. The Sales department is the only organization that truly understands the clients needs and therefore should control the development schedule and all milestones.

If you goal is to kill a project, following these 5 simple rules will ensure your success. Software projects do not have to fail though. While software development is a complex and messy process, there are really only 3 things you have to get right in order to put your project on the road to success.

  1. Open and clear communication lines between you and your client.
  2. Clearly stated and immutable project goals and feature lists.
  3. An understanding of and an adherence to software development Best Practices, including source code control, unit testing and code reuse.

Get those right and you are well on your way to a successful software project.

[Post to Twitter] 

Related posts

  • No related posts.

This entry was posted on Thursday, September 20th, 2007 at 1:17 pm and is filed under Long Form, Programming. You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.

Comments are closed.

  • php|tek 09



    Zend Framework and the CLI

    A Manager's Guide to
    Telecommuting

  • My New Project

  • Sponsors and Ads

  • About Me

    cal_evansThis is my blog. Sometimes it's my deep thoughts, sometimes it's a journal of things I've learned. Every now and then it's my box of shattered dreams. Most of the time though, it's just the place I like to write. Sit with me as I show you some postcards from my life. While you are here, do me a favor and leave a comment.

    If you are looking for my contact information, bio, picture, ASL, check out my EPK.

    My name is Cal Evans and this is my blog.



    Follow me on FriendFeed!

    View Cal Evans's profile on LinkedIn

  • My First Book

  • Tags

    Apache API Apple article C.C. Chapman Cal Evans CIO Magazine Consulting customer service developers devzone dr. dobbs elizabeth naramore facebook FireBug flock fun hiring IBuildings iPod Kathy Evans linkedin love Marketing nerd herding PHP php abstract phparchitect php developers podcast poem respect securephphosting sixty second tech southwest airlines spaz terry chay tivo twitter upgrade valentine video wordpress zend zend framework

  • RSS The Lovely and Talented Kathy’s blog

    • Fushi Copperweld Website
    • Cal Evans’ Blog
    • KathyEvans.biz V2.0

  • RSS Sixty Second Tech

    • UTC
    • FireFox 3
    • The New Mediology on Twitter
    • MobileMe
    • Amazon’s S3
    • Attention, Not SERP!
    • I Want Sandy
    • Pipes!
    • Get Your Head in the Cloud!
    • Rich Internet Applications

  • Categories

    • Apache
    • Apple
    • BlogBling
    • Blogging
    • Consulting
    • Entertainment
    • Entrepreneurship
    • Exim
    • flex
    • hosting
    • Humor
    • JavaScript
    • jobs
    • Long Form
    • Mac
    • Management
    • Marketing
    • Me
    • photography
    • PHP
    • podcasting
    • Programming
    • Quickies
    • RSS
    • Silly-Con Valley
    • SQL
    • Technology
    • twitter
    • Web 2.0
    • wordpress
    • WordPress Plugins
    • writing
    • zend framework

  • RSS PHP Podcasts

    • The ZendCon Sessions Episode 21: PDO: PHP Data Objects
    • The ZendCon Sessions Episode 20: Distribution and Publication With Atom Web Services
    • The ZendCon Sessions Episode 19: Static and Dynamic Analysis at Ning
    • PHP Abstract Podcast Episode 41: Zend Framework 1.8
    • The ZendCon Sessions Episode 18: Of Haystacks and Needles
    • Zend_Db Update and Delete
    • The ZendCon Sessions Episode 17: SQL Query Tuning: The Legend of Drunken Query Master
    • Zend_Db Insert and Read
    • The ZendCon Sessions Episode 16: PECL Picks - Extensions to make your life better
    • Integrating Bits on the Run into Zend

  • Vanity Chart

    English posts that contain "Cal Evans" per day for the last 30 days.
    Technorati Chart
    Get your own chart!

  •  

    September 2007
    M T W T F S S
    « Aug   Oct »
     12
    3456789
    10111213141516
    17181920212223
    24252627282930

  • XBox Gamer Card

  • Blogs of friends

    • Ashley Evans
    • Cory
    • Davey Shafik’s Pixelated Dreams
    • Daytona Twentyfour
    • Fred Leo’s Blog
    • Louis Davidson
    • The Lovely and Talented Kathy

  • Me

    • Best. Webhosting. Ever.
    • Cal Evans Dot Com
    • Cyrano’s Apprentice
    • Evans Internet Construction Company
    • My Life as a Child
    • PHP Podcasts
    • Sixty Second Tech

  • Archives

    • June 2009
    • May 2009
    • April 2009
    • March 2009
    • February 2009
    • January 2009
    • December 2008
    • November 2008
    • October 2008
    • September 2008
    • June 2008
    • May 2008
    • April 2008
    • March 2008
    • February 2008
    • January 2008
    • December 2007
    • November 2007
    • October 2007
    • September 2007
    • August 2007
    • July 2007
    • June 2007
    • May 2007
    • April 2007
    • March 2007
    • February 2007
    • January 2007
    • December 2006
    • November 2006
    • October 2006
    • September 2006
    • August 2006
    • July 2006
    • June 2006
    • April 2006
    • March 2006
    • February 2006
    • January 2006
    • December 2005
    • November 2005
    • October 2005
    • September 2005
    • August 2005
    • July 2005
    • June 2005

  • Flickr Recent Photos

    The Bike vs. The HillDSCN2058.JPGCute Dutch GraffitiIvo "Joe Cool" JanschDSCN2030.JPGDSCN2029.JPGDSCN2028.JPGDSCN2027.JPGDSCN2026.JPGDSCN2025.JPG

  • Meta

    • Log in
    • Entries RSS
    • Comments RSS
    • WordPress.org


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