So let’s take a look at the facts that stood behind the decision to prepare a custom methodology:
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.
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,
The Boston Group research:
Causes of failure according to the study:
• Incomplete Requirements 13.1%,
• Lack of User Involvement 12.4%,
• Lack of Resources 10.6%,
• Unrealistic Expectations 9.9%,
• Lack of Executive Support 9.3%,
• Changing Requirements & Specifications 8.7%,
• Lack of Planning 8.1%,
• Didn’t Need It Any Longer 7.5%,
• Lack of IT Management 6.2%,
• Technology Illiteracy 4.3%,
• Other 9.9%
• 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.
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,
• 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,
• Projects meet goals, with deliverables completed to specification/ quality requirements.
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:
Analysis & Design,
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.
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.
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
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,
• Site validation- providing tips on how to approach tasks of website security verification like input validation, SQL injection proof, XSS scenarios and others.
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.
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.