Kentico CMS Deliver Now! Methodology Introduction
Let’s talk about the new Kentico CMS Deliver Now! Methodology we work on. As you all know, we greatly appreciate the feedback we get from you- our customers. So, please share your opinion on our initial draft of the new methodology.
If you have ever got in touch with web development projects management or implemented a
Kentico CMS project, you probably know how important it is to keep in the head all those little details that draw the line between a successful project and implementation bad egg. To help you avoid pitfalls and undercover, potentially weak places in your project during the initial stage of the development process, we have decided to define Kentico CMS methodology that would point out all those outstanding considerations and additional tasks that make a difference in how the project development rolls down the road.
The main goal of the methodology is to provide you (Project Managers, System Architects, Integration Specialists, etc.) with an easy-to-follow guide that would describe Kentico CMS project development process step-by-step before the actual implementation takes place. It should give you all the important information you need in order to finish you projects faster, using less resources, matching higher quality products while holding your budget reasonable.
Concerning the format of methodology, we were thinking about an electronic document that would express information by various means- text, diagrams, graphs, schemes, etc. Methodology is neither trying to act as another documentation material nor developer’s guide, therefore, we don’t want to include the same technical information that you can find in other Kentico CMS documents. Instead, we assume giving you a solid base of details on what needs to be included when preparing for Kentico CMS project is a better fit. Any time we feel a link to the documentation would be suitable, we might include it so you can easily navigate to more technical aspects of the particular subject.
Each chapter should be introduced by a set of simple questions related to the particular subject. Those questions may help you think about areas you might forget about. Moreover, based on your answers, you would be able to select only information which is essential for you. In addition, chapters dealing with specific subjects may also include some extra materials like check-lists, sheet templates, etc.
We have already defined the main phases covered by the methodology. Let me give you an example of a project life-cycle defined by the methodology first and then take a look on what we feel is important to mention for particular phases.
Kentico CMS project life-cycle according to Kentico CMS Deliver Now! Methodology:
Detailed content of the methodology and areas contained within particular phases could then look like the following:
A. Requirements,
• Set of the basic questions casting more light on customer’s needs, as well as giving solid inventory of what needs to be considered when going for projects with Kentico CMS,
• Help Project Manager to think about the project as a whole,
• What is the goal of the project (simple web presentation, complex portal, extranet, community server)?
• What is the structure of the website and what types of content will be published?
• What is the expected number of users/page views during the peak load, what is the expected number of documents on the website?
• Which Web standards should be followed in terms of accessibility and coding?
• What is the content life-cycle? Who is responsible for the content?
• What is the required availability of the website?
• What languages will be used for the content?
B. Analysis & Design,
• Use cases (templates for creating use case diagrams),
• Wire frames definition,
• Structure of the website (navigation, content tree- only main navigation without detailed document types),
• Page templates,
• Document types (to help you identify content which needs to be part of the content tree),
• Organization of uploaded files- content tree files vs. media library vs. document attachments,
• What is the expected number of documents in the content tree? How should the content be organized for best performance?
• Should end users be able to manage documents on the live site- user contributions?
• What are the security concerns about access for particular documents?
• Who is responsible for managing the documents (role, single user, etc.)?
• What about sharing documents between multiple web sites?
• What are the SEO requirements to follow? What is the required format of URLs (wildcards, document aliases, etc.)? Organizing documents in the content tree with emphasis on
SEO friendly URLs,
• How should the search functionality (Smart Search, SQL Search) be used?
• Which Kentico CMS modules will be used?
• What custom modules/web parts/other components need to be implemented? How will they work?
• Where will the custom files in the web project be placed (considering website export)?
• What is the time schedule for the project? What resources do you have? Time-line definition template,
• What hardware, software and network configuration will be used? Different types of supported network architecture- 1 Web Server + 1 DB Server, 1 WS + N DBS, N WS + N DBS, SQL replication support,
C. Development,
1. Development process verification,
• See Appendix A,
• Who will be part of the team and what roles will they be responsible for?
2. Basic website structure and design,
• Identifying common content through the whole web, identifying master page design,
• Best practice on how to find the part of the HTML that should be altered with an existing web part,
• Best practice how to develop page templates, manage different layouts and share them among multiple pages, web sites,
• Transferring static HTML to transformations that will later be used to display the actual content,
• Point out parts of the page that would require development of custom web parts,
• Custom document types creation,
3. Custom functionality,
• Customization options,
• Implementation of custom modules/web parts/other components,
4. Security,
• Security settings for the live site (secured areas, document permissions, file access),
• Security settings for editors (document permissions, module permissions),
• Authentication type,
• General security settings and how those influent performance,
• UI Personalization,
5. Performance optimization,
• Performance optimization techniques using the built-in debugging tools- ViewState, SQL queries, cache, etc.,
• Caching options and impact of the full-page and partial cache (web parts),
• Impact of the Output filter features,
• Event log analysis,
D. Testing,
1. Functional testing,
• Input field validation for both visitors and content editors (document types, BizForms, custom web parts/controls), max input text length, etc.- based on items from the check-lists,
• Testing of custom components,
2. Site validation,
• (X)HTML validation- to enable the user to turn-off output filters and gain performance boost,
• XSS, XSRF, SQL injection, WAI validation, etc.,
• Security requirements validation (permissions for the live site and editing interface),
3. Load testing,
• Extreme scenarios verification,
• Response time verification,
• Use cases verification,
E. Deployment,
1. Deployment options,
• Import/Export vs. web project + DB full-backup,
• Pre-compiled web site (full vs. updateable), Web Application- pros and cons,
• Medium trust configuration,
• Content staging,
• Web farm support,
2. Deployment actions,
• HW requirements verification on the production server,
• Installation on the live server,
• Production server load test,
• SEO accessibility verification,
3. Post-deployment actions,
• Upgrade to the new version of the site or new release of Kentico CMS,
• Hotfix application,
• Website maintenance,
F. Website Evaluation,
• Were the goals of the web site met?
• Is the client happy with the website?
• Is the response time appropriate?
• Were there any errors?
• SEO evaluation,
• Are the visitors happy with the site?
• Does the client need any further improvements or new features?
Appendix A - Development Process
• Definition of roles involved in the process of development with Kentico CMS- Project Manager, Web Developer, Developer, Editor, Tester- duties & responsibilities,
• Hints on how to apply team development on Kentico CMS projects (using TFS, setting multiuser development environment, etc.),
• Best practices on how to set up suitable Kentico CMS development process or validate an existing one respectively,
• Best practices on development environment configuration in terms of DEV, QA, DEV staging, LIVE staging and LIVE production environment- to support rapid web site development,
• Deployment process- from DEV to LIVE server.
So, that's it. If you feel like there is area we haven't thought about, please let me know so we can eventually include it within the methodology scope.
Thank you.
K.J.