olap.it                 
The N° 1 site for Data Warehousing Professionals

Business Intelligence & Data Warehouse Resource Center

 Home Consulting Services Web Sites & Resources Books Articles Products Consulting Companies News Other Info

Back to Consulting Services Home Page Benefits of using an independent consultant
How consulting companies work My work methodology A funny little story about consultants

andrea.vincenzi@olap.it

Tel. (+39) 347 3853617

Download CV pdf format

Download CV Word format

 

Choosing an independent consultant for a software project is not a very common practice, but it presents some definite advantages.  Let's look at some of them.

Software development is a complex activity that demands skills, experience and discipline.  Clients, even big ones, often tend to focus exclusively on the time and cost aspects of a project, neglecting quality issues in the software produced -- issues such as structure, documentation and utilization of best practices.  This is a mistake that will lead to trouble sooner or later in the project's lifetime.

When a project is assigned to a consulting company, be it small or large, the client has little control over who will actually write the software.  Often the development work is assigned to individuals who are inexperienced and lack an appropriate background, possibly recruited to the project for their knowledge of a specific language or software product.  In this scenario, greater emphasis is placed on cost control than on quality.

In reality, a good knowledge of the programming tools is not enough to build a quality product.  Skills in many other areas are equally indispensable, such as software engineering, data modeling, systems and network architectures, project management and business process analysis, preferably joined with a solid engineering background.  It is not easy to find all these skills distributed in an optimal way across a project team.

These concepts of course do not come only from my own experience.  They are widely discussed in some of the software engineering classics, such as "The Mythical Man Month" and others.  Yourdon says among other things that it is very common to find a project team where one individual is doing most of the work, while the rest of the team essentially creates overhead that only increases the total time and cost.

I have been developing software projects for 25 years and I continue to work with passion and a very strong commitment to total quality.  Sometimes I work on projects that, because of their dimensions, require a development team composed of many people, but when I can do a good part of the work alone there are some clear advantages for the client:

 

bullet

all the skills necessary to develop quality software, from initial analysis to final testing, are concentrated in one person. That means no inefficiencies deriving from the typical overhead in a project team, such as coordination, meetings and a complex decision-making process.

bullet

full control and a direct relationship with the person who will actually write the software.

bullet

closer attention to internal quality of the software produced (structure, documentation, best practice utilization in all project phases, friendly user interface)

bullet

reduced cost and schedule due to the elimination of intermediaries and overhead deriving from coordination of a project team.

My work methodology is based on principles that I learned and developed over the years and the many projects that I worked on. Some of these principles are:

bullet

Put great attention on quality in all project phases: document project requisites, analysis and solutions adopted; carefully design the user interface, possibly adding that "something more"  that makes the user experience easy and pleasant.

bullet

Study a lot and always follow best practices, resisting the temptation of inventing my own solutions and methodologies, with the exception of a few uncommon situations. Follow a methodology (in my case Kimball for DW projects and Yourdon for software development projects), adapting it to the project size.

bullet

Know the market and the products, in order to be able to make a software selection that creates value for the client. Do not limit the choices to most famous products; look for the product that gives the best price/performance ratio and that better suites the project characteristics.

bullet

Be active in online forums to keep up to date and to exchange opinions with other professionals. Internet has radically changed the way people work and makes it possible to submit problems or validate possible solutions using the contribute of international experts. Not taking advantage of this simply means limiting the quality of your output as a software designer.

bullet

Take advantage of books, specialized articles and white papers, both on paper and online. I have been collecting the best material for many years and I can do full text searches on it, obtaining immediate answers to the majority of problems. Today my collection contains about 50 books and 8000 articles.

Now on a merrier note, if you like to see the ironic side of things and if you haven't read it yet, I warmly recommend the "Shepherd and consultant" story.

Contacts: andrea.vincenzi@olap.it Mobile Telephone: (+39) 347-3853617