Project managment and development with Kentico Deliver Now!

The goal of this post is to provide you with insights into why we decided to design and create our own Kentico CMS methodology, what the key areas the methodology focuses on are and what kind of valuable information and assistance you can expect from the methodology.

Project Managment Facts

So let’s take a look at the facts that stood behind the decision to prepare a custom methodology:

Initial planning

It is the most vital part of a project. The review of most failed projects indicates the disasters were well planned to happen from the start,

Fail to plan

It’s said that if you fail to plan you are actually planning to fail,

1 hour planning = 10 hours doing

An hour of planning can save you ten hours of doing. You shouldn’t head into big projects without setting out goals, how you will achieve those goals and the most important part, setting times by which they have to be accomplished,

Impossible deadline

You can force someone into committing to an impossible deadline, but you cannot force him to meet it,

Murphy’s laws

Murphy is alive and well - and working on your project,

Failure surprise

The nice thing about not planning is that failure comes as a complete surprise, rather than being preceded by a period of worry and depression,

Wrong decisions

Wrong decisions made early can be recovered from. Right decisions made late cannot correct them,

Job changing

1 out of 3 workers changes jobs every year.

We’ve therefore been thinking how we could extend the current level of support to you- our partners and clients in such a way that you wouldn’t need to worry about any of the recently mentioned things.

That’s where we came up with the idea to develop a methodology that would help you plan your project, make a decision on dead-line estimates and give know how into your hands that is re-usable whenever the development team composition changes.

Project Failure Causes

Let's take a look on some of most common causes of failures of IT projects in general:

• Management ignoring the viewing habits of the customers, which generates inappropriate sites,

• The developers fail to study the competition

• The web project fails to thrust itself onto the market,

• Hiring the wrong designers,

• Lack of a project plan, the site takes too long to implement, which increases the time to market,

• Failing to consider the ongoing costs of maintaining a website,

• Building the Web project from scratch,

• Not delivering value for money,

• Not meeting project goals, delivering requirements/ scope.

Some statistics on PM failures

I found really interesting reports and surveys which results I present below:

Computer Associates research (UK & Ireland):

• A third of all projects implemented each year end up over budget with the typical over-spend between 10% and 20% of the original budget,

Standish Group CHAOS Report:

• States that 46% of application development projects are “challenged,” meaning they fail to deliver results on-time, within budget, or in scope,

• People are more prepared to cancel projects than they have been in the past. When they see a project that's not going well, they have more political clout to cancel it and move on,

• Nearly one-in-four (24 percent) of IT projects were considered failures, having been cancelled before they were completed, or having been delivered, but never used,

• Three-in-seven (44 percent) of IT projects were considered challenged- they were finished late, over budget, or with fewer features and functions than required.

Project Success

The key to success in today’s complex information technology environment is the ability to manage projects efficiently and effectively. Moreover, building successful web-based applications requires close coordination between various efforts involved in the web development cycle.

Many studies, however, reveal that poor project management is the major cause of web failures during development and subsequently in the operational phase. Poor project management will defeat good engineering while good project management is a more-or-less recipe for success. Successfully managing a large, complex web development is a challenging task requiring multidisciplinary skills.

No matter what the size and complexity of a project is, there tend to be 7 key elements (areas) that the Project Manager needs to consider:

• Planning and scoping,

• Governance,

• Risk management,

• Outcome realization,

• Resource management,

• Quality management,

• Evaluation and closure

Obviously it’s not appropriate for all projects to do all project management activities to the same level of detail and with the same degree of discipline. For small projects, it is very important to scale down the project management processes and documentation to suit your needs.

Kentico Deliver Now!

The Kentico Deliver Now! project management methodology is a pre-defined set of procedures that are designed to provide a guide for developing, planning, managing and implementing Kentico CMS projects. Applying this kind of formalized project management methodology to projects can help to clarify and agree upon goals, identify the required resources, ensure accountability for results and performance, and foster a focus on benefits to be achieved. The primary reason for using the Deliver Now! project methodology is to increase the likelihood of the project succeeding.

This utilizes past experiences to feed into projects which results in:

• Everyone knowing what to expect,

• Properly judging the real amount of work involved,

• Accomplishing more work in less time, with fewer resources and reducing learning requirements with less likelihood of repeating past mistakes,

• Reduced overall project risk (as risks are identified and managed),

• Building a project that is easy to maintain and far more reliable in the end,

• Delivering a project on time and within the budget by ensuring an adequate estimate of resources,

• Making your project a success

Following the Kentico Deliver Now! Methodology you make sure that:

• Mission critical projects run smoothly, come in on or under budget and complete on time,

The methodology doesn’t try to act as documentation. Instead it provides you with general information and concerns on particular areas and references to external sources of information (documentation, blog posts, webinars or other sources of information) where you can gain necessary technical details.

The Deliver Now! Methodology defines the project life-cycle as follows:

Requirements,

Analysis & Design,

Development,

Testing,

Deployment,

Website Evaluation.

The cycle of a CMS project has the form of a closed circle where each phase receives data or information on the input, processes it and provides enhanced or manipulated information as the output that is actually input for the phase that follows.

Requirements phase

In this phase you define the project objectives by answering question about what the purpose and desired outcome is.

The methodology specifies several areas for the requirements phase:

• Scalability and content sharing,

• Content types,

• Security concerns,

• Web standards to support,

• Integration with 3rd party applications and technologies,

• Content life-cycle,

• Multilingual support considerations,

• Availability of the website.

By breaking each area down step-by-step, the methodology will help you understand what you need to do. The methodology should cover all different types of requirements- business, business user, functional and non-functional ones.

This is also a time when many projects go wrong resulting in project failure. A key reason for this failure is that people have been unable to either clearly identify or specify requirements with the result that the analysis and design phase either takes much longer than expected or produces the wrong result.

Analysis & Design

In this phase, by applying various techniques, you transform the requirements into so-called design units like use case diagrams, wire frames or website structure drafts. Furthermore you use those to define details on page templates, document types and physical file organization.

The methodology touches on the following areas in this phase:

• Content tree design & architecture- how to design the website structure in the optimal way in terms of performance, usability, accessibility, etc.,

• URLs format and SEO- in other words, how the content structure influences URLs, what are the options to customize URLs in order to comply with stricter SEO standards,

• Navigation and Site map- again, discusses the impact of content structure on navigation elements and site map definition,

• Membership and Restricted areas- helping you decide on the right membership approach and the definition of secured areas,

• Website performance- what else apart from the website structure may have impact on the performance of your website,

• Multilingual sites- how to deal with the configuration of multilingual sites, what you should bear in mind when going for a multilingual website, etc.,

• Organizing media files- provides best-practice concerns on how the files should be organized within the website, where to store files used for different purposes, etc.,

• User contributions- how to approach tasks when site visitors should contribute to the website content,

• Page templates- how to design page templates so that you can easily re-use them for most of your website and perform less actions whenever they are used for different sections of your website,

The output of the design phase is very likely to be what is wanted. Of course, practical implementation details may need the requirements to be changed but with this firm foundation and effective management of changes, it should be straightforward and give the right result.

Development

Rather than going too deep into details, the methodology covers the most important areas of the Development phase and points out those that require your attention as the overall development process and related project flexibility and maintainability might be influenced by the approach you take towards certain tasks.

The areas covered include:

• Resources, development team roles- to help you allocate the appropriate resources before development takes place,

• Team development environment setup- including considerations on how to deal with team development,

• Design template processing- how to actually transform a design template into a page template,

• Page template inheritance- how to take advantage of page template inheritance and use it according to best-practices,

• Static HTML to re-usable transformation- how to identify the portion of a design template that might be used as transformation content and thus used for displaying the structured data on the live site,

• Custom functionality- doc types, modules, web parts- how to identify and make a decision on what custom objects needs to be added to the project,

• Security- authentication, live site, approach to security threats - how to handle security aspects of your website, how to configure security features of your website in the optimal way,

• UI Personalization- what job the UI personalization could do for you and how to define personalized content in the UI to make the life easier for your editors and developers,

• Performance optimization- debugging, caching, output filters- how to approach the optimization of your website right way and how to take advantage of built-in features to leverage the overall performance of the website

Testing

Even the Testing phase more or less depends on the way you approach the QA of your project. The methodology tries to bring some useful hints on what actions may take place as part of the Testing phase of the life cycle.

• Functional testing- giving you suggestions on what scenarios might be covered during functional testing based on Kentico experience,

Based on the feedback we’re getting from you, the deployment phase is still something that might be rather complex to handle in some scenarios.

That’s the reason why the methodology keeps updating you on:

• Deployment options- what is the best-practice to deploy a ready-to-go project,

• Medium trust environment- and considerations on how the website might be influenced when deploying the website to an environment with limited permissions for the application,

• Content staging- discussing the pros and cons of a staging-production environment setup, what is the real benefit of content synchronization and how to approach staging setup,

• Web farm support- and what results you can expect when introducing web farm support to your website.

Summary

At the end I’d just like to review what was mentioned above. We devoted lot of energy to define the scope of the methodology so it covers various areas that should be considered with every Kentico CMS project. The methodology isn’t another set of procedures and processes that need to be bent to fit your project. Instead we tried to compile the document containing information and best-practice principles that would suit your project, especially in areas where the possible issues may rise up.

Comments

Karol Jarkovsky
commented on Oct 26, 2010

Hi Steve,

The methodology itself is already finished. I'm just working on transferring it to printable form (Word, PDF, etc.). I expect it to be ready by the end of 02/2011 or so.

We haven't agreed on the way we're going to deliver it, but most probably using some channel like Kentico's Devnet or Partner portal. We will inform you as soon as methodology package is out and available for you.