July 01, 2009

Zoom with Joomla or Drupal

Logo_joomla You can launch your web app faster when using a content management system (CMS) like Drupal or Joomla or other frameworks like CakePHP or CodeIgnitor – all written in PHP.  These CMSs and frameworks contain built-in functionality that will accelerate you software development. But using them the wrong way, or in the wrong situation can be a disaster.

It is critical to get a web app launched as quickly as possible. No one wants to wait months (forget years) for a new web application to appear online. The promise of CMSs and Frameworks is they give you a jumpstart with pre-built functionality and an environment that makes your programmers more productive.  But like most tools, they can also be misused causing more headaches than help.

Logo_drupal These frameworks are open source and available at no cost but they have a steep learning curve. I got excited about using a CMS for a website I was creating last year. I bought a couple Drupal books and downloaded the software from the Acquia website. It installed easily and I had a working site in a day.

Customizing the site was a different matter. I was able to easily add in several contributed modules but I found it difficult to combine modules along with my custom code to create a decent looking functional application. I basically wasted a couple weeks to discover that I really needed experienced professional help.

If you are building a community website then you should consider using a CMS platform.  A CMS has these features that community websites need:

•    Access statistics and logging
•    Advanced search functions
•    Comments, forums, and polls
•    Multi-level menu system
•    Multi-user content create & edit
•    OpenID & Facebook Connect
•    RSS Feed Aggregator
•    and many more . . .

I could describe what I wanted but if I hired inexperienced programmers, they would be as lost as I was. If you hire the wrong programmer or programming team then you can waste months of time and spend tens of thousands of dollars in the process. You must pick a programming team that can demonstrate successful use of the platform you select.

CMSs and frameworks are extendable and it is common to add code to deliver your desired functionality. For example, Drupal has a list of user-contributed modules available to extend its functionality. And your programmers can create their own modules too using the Content Creation Kit or CCK.

The primary pitfall that inexperienced programmers fall into when using a CMS is adding functionality by changing the framework itself. If your programmers “hack the core” of your CMS directly they create a mess that is difficult if not impossible to fix.

Any new development team is not likely to be able to unwind the hacks. To fix any bugs they will only be hacking the core further. In this case you almost always have to start over.

First you should decide if CMS features are needed. Selecting a CMS may only add complexity if the features you need are simple or different that what the CMS delivers. A framework that enables rapid page creation and supports modern Ajax-based user interface features can be a better choice.

You need to have a reasonable specification of the functionality that you want--something more than a shorthand Hollywood pitch like “It’s Twitter but with video.”

Describe the kinds of users of your web application. Then list the use cases of how they will use it. Sketches of some of your screens will also be helpful. Use a drawing tool like Visio or PowerPoint. Digital photos of your whiteboard with the designs or scanned in sketches on paper work also.

No matter what, I guarantee your spec is not going to be perfect.

Accelerance Partners Do Drupal & Joomla

Announcing a new category of technical expertise for the global partner network.

Contact our experienced partners on the new Drupal and Joomla page of the member directory.

Therefore, you need to find competent developers that not only have experience with the CMS or framework you choose—they also must be able to collaborate with you to help determine what you want.

The look and feel of your web application is completely configurable with a CMS. Frameworks and CMSs have a way for you to deploy your design in a consistent way. In Drupal this is called Themes, in Joomla it’s called Templates.

Versions of Frameworks and CMSs change periodically. Make sure the development team you hire has experience with the latest version, or at least the version you want to use. For example, Drupal had a major upgrade from version 5 to 6 last year. Many of the user-contributed modules did not work with the new version. It was months before most were upgraded to version 6.

Experience with these modules is critical. Anyone can install a framework or CMS, but the basic functionality is not enough. Ask for examples of web apps your prospective development teams have created for other clients and the kinds of modules and custom development they employed.

Several Accelerance partners have created web applications for clients using Drupal, Joomla and other frameworks. The four example sites here each required from 600 to over 1200 man-hours of effort to implement.

http://www.IdeaEncore.com
http://www.Lime.com
http://www.fastcompany.com/
http://www.mobilityleader.com

Use a development team that has experience building web applications for other clients with the CMS or Framework you decide to use. You can wind up wasting your time attempting to make a sophisticated web application on your own by using one of these platforms right out of the box unless you have already gone up the learning curve. It takes professional help.

The Runtime Bottom Line

The only thing worse than wasting your own time, is wasting time and paying money to an inexperienced development team. Choose carefully and your use of a CMS can shave months off your development time line.

Until next time,

Steve_sig_150[1]
Steve Mezak, CEO

Steve@Accelerance.com
Accelerance, Inc.
Risk-Free Outsourcing
+1-877-99-ACCEL (877-992-2235) x101 Toll-Free
+1-650-472-3785 Global Calls + Fax
Or contact me at: http://www.Accelerance.com/contact.htm

Software Without Borders by Steve MezakAuthor of the new book -
Software without Borders: A Step-By-Step Guide to Outsourcing Your Software Development
www.Accelerance.com/swb.htm

June 10, 2009

Hire a (Part Time) Rock Star VP of Engineering

The phone rang in the meeting with the CEO. He said, “Sorry, I can’t talk now. I am in a meeting with my new VP of Engineering and he’s a rock star.”

The title “rock star” can mean different things. To this CEO it meant he finally had someone he could rely on to get the software product developed. The CEO had fumbled badly spending over $50,000 with a local web design firm with little to show for it.

There are three kinds of VP of Engineering Rock Stars:
  (1) Technical Achiever
  (2) Mature Leader
  (3) Global Leader

And a fourth alternative: The Part Time Rock Star

Now he had hope.

A non-technical or business-oriented CEO must hire a competent VP of Engineering (VPE) to take responsibility for on-time delivery of a high quality product. But what kind of person should our CEO hire? Should the VPE be hands-on and contributing to the code? Or should the VPE be a people manager and stay above the details of the daily builds?

Either way, you want to hire a rock star. But what is a rock star VPE?

Rock Star as a Technical Achiever

The CEO of a startup wanted to hire a VPE to jump in and start doing hands-on work with Microsoft .NET. His rock star will have his or her own MSDN subscription and personally built several ASP.NET web applications using Visual Studio.

If you need a small project done quickly by a person you work with directly then this kind of rock star is for you.  But there is a risk this kind of rock star will not play well with others. He may not be able to grow and motivate a team when product needs exceed the capacity of one or two programmers. Not a problem if you plan to stay small.

Rock Star as a Mature Leader

Another software company already has 20 software developers (and a small outsourced QA team in South America) all lead by a young but very smart programmer. The team leader works directly with the other programmers to create the software.

The CEO wanted to add an experienced VPE that could direct the existing technical talent and get some control over the software development process. With business growing, the programming team could increase to 40 people.  His rock star will be able to impose a predictable process, command the respect of a strong technical team while hiring more programmers.

Imagine this leader rock star working for the first CEO who wants a hands-on programmer. The leader will fumble with the coding and have no team to lead. And imagine the hands-on rock star interviewing another 20 engineers while coding the next new product feature. That’s not going to work either.

There is a 3rd kind of rock star.

Rock Star as a Global Leader

Some companies have no internal programmers and rely completely on their offshore software development team. One Accelerance client had their own development team in Ukraine. It was a remnant of an outsourcing arrangement gone bad (which is another story).

But things were still not going smoothly. The CEO needed a rock star leader that keep a global team productive and can hop on a plane to Kiev once in a while to do so.

The Part Time Rock Star

Instead of putting all your eggs in one basket with a full time VPE, hire a part time or interim VPE to get things started, and to find their own replacement.

Use the Accelerance Virtual VP of Engineering service to get your part time rock star.

A technical achiever with little concern for cultural issues, or a mature leader that is a good face-to-face manager will not manage a global software development team well. It is important to understand your situation and hire a full time VPE rock star with the kind of experience that will meet your needs.

But here's an excellent alternative.

The Part Time Rock Star

Instead of putting all your eggs in one basket with a full time VPE, you can hire a part time or interim VPE to get things started. Part of the interim VPE role is to find their own replacement.

You get the benefit of moving your programming work forward and extra experienced help with the recruiting process for your full time VPE. Otherwise you can waste a great deal of time and money waiting for the right person to come along, or worse, if you select the wrong type of VPE for your situation.

It is unlikely your part time VPE will contribute much to your source code, although some can do coding. It is more likely they will bring in their own network of programmers when needed. Some will have connections and experience using with low-cost offshore resources too.

A good part time VPE will have a well defined process for diagnosis and will create an action plan to keep your software development on-track. A system of metrics to measure performance will be devised so remedial action can be taken as needed to correct problems and issues.

The Runtime Bottom Line

There are three kinds of VP of Engineering. The kind you hire depends on your need for hands-on coding, and leadership locally or globally. It is difficult for a CEO to run a software development team while also running the company and looking for a right kind of full time VPE. You don’t have to. Hire a part time rock star VPE instead.

New Accelerance clients:

  • Web development partner needed for design, development and SEO - Jakarta, Indonesia
  • Microsoft ASP.NET team needed to develop new community web application - Germany
  • Conversion of a Visual Basic / Microsoft Access application to C# and SQL Server - Cherry Hill, NJ
  • CMMi certified partner wanted for porting and development of a software security application on Linux - Portland, OR

News and Events

April 15, 2009

Accelerance Global Network Partner LogoAccelerance announces the publication of all hand-selected and pre-qualified global partner network member company names and websites in an online directory on the Accelerance website. Contact multiple partners directly with a  convenient global partner contact form. No commissions or fees.

Until next time,

Steve_sig_150[1]
Steve Mezak, CEO

Steve@Accelerance.com
Accelerance, Inc.
Risk-Free Outsourcing
+1-877-99-ACCEL (877-992-2235) x101 Toll-Free
+1-650-472-3785Global Calls + Fax
Or contact me at: http://www.Accelerance.com/contact.htm

Software Without Borders by Steve MezakAuthor of the new book -
Software without Borders: A Step-By-Step Guide to Outsourcing Your Software Development
www.SoftwareWithoutBordersBook.com