Date post: | 19-May-2015 |
Category: |
Technology |
Upload: | perficient-inc |
View: | 1,927 times |
Download: | 1 times |
12 Things Not to Do on a Portal Project
Our Speaker
Michael Porter Principal for Portal and CollaborationPerficient• 13 years' experience with portals and content management• Many multi-million dollar portal implementations for some of the world’s
largest companies. • Michael supports Perficient’s sales and marketing organizations through the
creation of industry-leading services that help clients understand their enterprise portal
• He has helped to position Perficient as one of the top providers of strategic portal solutions and is regularly asked to speak at industry and partner events.
• Prominent blogger at blogs.perficient.com/portals• Follow Mike on Twitter @PorterOnPortal
2
An audio/video recording of this webinar is available at Perficient.com/Webinars
But the Business Asked for It!How to avoid using the great capabilities portal has out of the box
• Well known company needed to revamp intranet• Corporate Communications driven portal
– Had requirement that business could change everything without IT input
– They had purchased TeamSite (Not everybody is perfect!)– Had several other common requirements such as
• Clicking the logo takes you to the home page• If you are on the home page the logo is not clickable
4
But the Business Asked for It!How in the world do I make that darn logo non-linkable?
• To make the logo non linkable, the implementer….– Wrote ½ a page of JavaScript code– It dynamically inspected the URL to see if “Home” was in the path– Somehow it had an AJAX call in there– After looking at it for 5 minutes, I had no idea how it really
worked
• Portal has this great thing called an API
5
But the Business Asked for It!How do I let them change the names of the top level navigation?
• Created top level pages in portal and assigned custom unique names• Hardcoded <portalNavigation:urlGeneration contentNode=“<unique name”>
tags in theme to generate links• For each of those unique names
– Made a service call to retrieve content from Interwoven TeamSite for the label– Replaced the page name defined in portal with the name returned from TeamSite
• So now…– Changing the order of the tabs requires a code change in the theme– Adding a new tab is a code change– The out of box localization capabilities are useless
6
But the Business Asked for It!And now the easy way to do it.
© IBM Corporation 2011
Great thing called the Manage Pages Portlet – Create pages and reorder them.
Could even use advanced properties to set names in other languages.
Use Profile Management to change my language to Spanish.
And now the navigation is re-ordered with the Spanish Human Resources title.
Use it to easily re-order.
Use Page Properties to set title, unique name, and friendly URL
7
What happened to my homepage?What happens when lots of people like portal all at the same time
• Large Insurance company• Multiple ongoing projects
managed by Perficient• New project in a new
geographic location• Within two weeks our home
page was no longer visible• New project in Alabama had
created a new level 0 page and took over the entire taxonomy
© IBM Corporation 2011
8
What happened to my homepage?What happens when lots of people like portal all at the same time
• Create a Portal Center of Competence• Make foundational artifacts available
– Login, standards, code samples, training, etc.
• Create an Information Architect role– Cut across all portal projects
• Train the PMO to work with the Portal CoC
Portal Governance could help avoid this issue next time.
9
Where Did You Get These Stories??
• Experience– From over 500 Portal projects– We have some key strategic Portal Offerings– Been doing it for a while
• Health Check offering– Take three weeks to review– Includes a technical review– Includes a Project and PMO review– Give recommendations
• Some of our own mistakes– Yes we made a few over the past 11 years
10
A Portal Strategy is a Good Thing, Right?But what if it never ends???
• Major Insurance implemented a 2 year portal strategy– Spent 3 months developing a strategy focused primarily on the technical aspects– Spent next 8 months implementing strategy
• Architecture• Content Management• Development• Release Management
– Delivered a moderately complex content based extranet portal• Portal was production ready• Problem was it was tied to a more important project which was 1 year behind
– Next took on higher complexity intranet• IT focused intranet• HR Intranet consolidating dozens of departmental intranet sites to WCM
– 3 weeks from production, portal program was suspended due to announced merger
11
A Portal Strategy is a Good Thing, Right?It doesn’t have to be that complex
• Spend 2-3 weeks on a Roadmap instead– Architecture– Search– Content– Development– Integration– Governance– etc
• A major mission critical portal can be delivered in months– Obtain the technical experience if you don’t have it– Buy in from the business– Manage your dependencies
• IBM has a Portal NOW offering that can deliver capabilities in just a few weeks
12
Methodology for Methodologies sakeWhen adherence to a set of processes gets in the way of actually
completing the project
• Large portal project with– Multiple phases– Over a couple years
• We were signed and ready to go
• Client said“You need to adhere to our Gating process.”
This is how it was described
13
Methodology for Methodologies sakeIt doesn’t have to be that complex
• 30% increase in project time
• Missed deadlines• Lack of flexibility• Increased business
frustration• PMO has great quotes like
“I really don’t want to know about the technology or the solution, just tell me if you follow the process”
This is the actual process
From layoutsparks.com
14
Methodology for Methodologies sakeIt doesn’t have to be that complex
• Portal is a loosely coupled, highly scalable technology
• Portal has many different pieces and parts
• It works best with iterations and “baby steps”
• It works best with frequent reviews and re-prioritizations
Consider any iterative type methodology• RUP• UML• SCRUMDo Not:• Gate• Mix with waterfall• Forget about the end goal
15
Methodology for Methodologies sakeIt doesn’t have to be that complex
Management and Leadership
16
We Can Get a Big ROI from PortalHow a major hotel chain showed huge ROI… in the negative direction!
• Major hotel chain wanted to rebuild reservation app– Each second in call handle time translates to $108,000
per year– Existing reservation app was an X Windows desktop
app
• Chose to rebuild the X Windows app in portal
• Call handle time went up 22 seconds when app went live– ROI of -2.3 million per year– Does not include cost of hardware, software, or labor
$ $ $ $
17
What Went Wrong?
• Chose to migrate the UI almost as is– No User Experience refactoring– No user testing
• Did not have an experienced portal architect– Nobody lead the development team with best practices and
portal capabilities– Junior to mid level Java developers did not know how to develop
in portal
• Code was very inefficient and complex– One Java class had 13 levels of nesting and was 2000 lines long– McCabe Cyclomatic Complexity
• Counts number of execution paths• Several classes had complexity counts of over 20,000
18
What Could they have done?Formal User Experience Project
Research Design & Validation Implementation
Proven user research and analysis techniques enable us to understand users’ goals, attitudes, and behaviors. We prioritize their needs against business and IT goals to define an experience strategy that guides our design decisions.
Based on user input, we define the information structure and develop layered blueprints, from information architecture through interaction and visual design. Our focus on brand integration and usability bring the user experience to life and ensure that it exceeds user expectations.
Development and Engineering teams work closely with Design teams to execute the supporting technical solutions. Perficient uses flexible collaboration models and program lifecycles, tailored to specific engagement type.
19
I Built It But Now I Can’t Support ItCase 1• Who were they
– Small Company – Small IT department– Few resources
• What did they do?– Bought WebSphere Portal and declined
training– Told their DBA to install it– Put their business users through IBM WCM
Developer training– Hired an outside firm with zero Portal
experience
• Results?– 6 month and portal still not running– Multiple PMR’s that weren’t PMR’s– REALLY frustrated business users
20
I Built It But Now I Can’t Support ItCase 2• Who were they
– Multi-national– Over-resourced IT Department– Global scope to support
• What did they do?– Bought WebSphere Portal– Had an experienced partner install it– Primarily content based site– Asked for a huge amount of customizations
• Results?– Implemented only ¾ of what they wanted– Needed ongoing support but only had ½ a developer– REALLY frustrated business users– Really frustrated end users
21
I Built It But Now I Can’t Support ItProper Planning
• When Scoping ask about:– Business Priorities– Business’ ability to support new functionality
• IT should define:– Ongoing resource needs– What happens post launch
• Business and IT should:– Implement a feedback process– Plan deeper support post launch
– Even if only for a couple months
Don’t get yourself in too deep
Create a business and IT Plan
22
When Developers Can’t DevelopJust how much access do Developer need to your portal environment?
• Key issues– No admin access to Dev– No admin access to test– No ability to change configurations
• Result– Significant delays to project
development
• Who were they– Large Company– Multiple releases per day– Configuration in the code type of
portlets
• What did they do?– Submit portlet WAR to sys admin– Wait– Test the portlet and get bugs– Wait for sys admin to configure
correctly– Something else goes wrong– Wait for access to log files– Wait some more
23
When Developers Can’t DevelopJust how much access do Developer need to your portal environment?
• Best Practices– Establish rules for deployment– Establish times to deploy and bounce– Delegated admin for developers so
they have some control in Dev
• Best Practices– Give developers access to log files– Put System Admins in the
development loop– Troubleshooting– Advice
24
Is Best of Breed Always BestWhen choosing the best gives the worst results
• Who– Very Large Financial Services Firm– $2 Million Content Portal– Multi-year development cycle
• What Technologies?– WebSphere Portal– Stellent / Oracle UCM
– Verity K2– Google Search Appliance
• Philosophy– Get the best tool regardless of how well it
works with other tools– Then just make it work
25
Is Best of Breed Always Best When choosing the best gives the worst results
Process?1. Google Searches all content
1. This is an unsecured search
2. For each search result
1. Call Stellent/Verity to see if user was authorized
3. Paginate with max of 10 results per page
1. But only display authorized content
2. May only display one or two results per page
4. Large delay in getting search results
Best quote of the project:“Remember, I wasn’t here when they made this decision”
26
When Web 2.0 is 2.MuchAjax is a good thing right?
• Major financial company selectedportal as their intranet platform
• Home page primarily content– Some content personalized– Most content shared and changes hourly at best
• Implemented every single portlet using AJAX– Previous intranet home page loaded in 2 seconds– New AJAX implementation
• 15 second page loads in single user scenario• 30+ seconds under load
27
When Web 2.0 is 2.MuchBut I thought Ajax helped performance? What went wrong?
Request Portal PageRequest •Authorize and Identify User
•Determine available portlets
Portlets •Portal calls each portlet (Includes AJAX Portlets)•Aggregates into single HTML page
Aggregation •Portal aggregates portlet markup to HTML•Returns HTML and JavaScript for AJAX to user
HTML Page
Browser •Browser parses HTML page•Renders HTML
Browser •Finds reference resources•Requests images, CSS, JavaScript from web server
Individual Request for Images, CSS, JavaScript
Images, CSS, JavaScript
Browser•Renders Images and CSS•Executes JavaScript for AJAX calls
Individual JavaScript HTTP Request for each Portlet
Browser •Portal accepts rendering request for each portlet
Browser •Returns markup or JSON for each portlets
Browser•Portal or Web Server Accept the request•Returns Resource
AJAX compatible markup, e.g. JSON
Browser •Browser executes JavaScript•Renders HTML
When Web 2.0 is 2.MuchBut why was what I just saw so bad?
• Assume 1 portlet, cacheable for 1 hour, 10,000 hits per hour
• Content retrieved in 500 ms
• Cached content retrieved in 20 ms
• Cached AJAX request retrieved in 10 ms
• 100 ms HTTP response time for AJAX request
• 10,000 hits formula – With AJAX:
• 1st request x 10ms + 500ms content retrieval + 100 ms http response = 610 ms
• 9999 requests x 10ms + 20 ms cached content retrieval + 100 ms http response = 1,299.87 seconds of rendering and wait time
• Does not include extra client CPU cycles to run JavaScript
• 10,000 hits formula – No AJAX:
• 1st request x 500ms + 9,999 requests x 20 ms = 200.48 seconds of rendering and wait time
• Removed AJAX on most portlets and got page load times to < 4 seconds under load
29
AJAX is a Good Idea When…
• A portlet will take longer than a second to render• The content of the portlet is not common between users
– Portlet takes longer than a second to render– Content may change often and is minimally cacheable
• A portlet will likely be interacted with– Likely in place refreshes save entire page refreshes– Better user experience– Better performance
• When a portlet connects to a system which may be unreliable– Prevents portal from hanging if system fails– Lets user interact with remainder of portal
30
When Not to Use a PortalComplex integration with Portal…………………..
• Who– Actually several companies– All had one or more complex
systems that worked in conjunction with the portal
• What:– Wanted to surface all functionality
in the portal– That includes really complex
campaigns, checkout, product display, etc.
• Result:– Either delays OR a failed project When your system architecture looks like this………
31
When Not to Use a PortalComplex integration with Portal…………………..
• Best Practices– Portal works best to surface some
functionality from complex apps– Follow the 80/20 rule– Define the easiest approach to
meet the requirements. Like the diagram here
– For really complex apps, don’t put portal in front of the app– Use a side by side approach
– Remember the portal is an aggregation technology. You add complexity when the user experience demands it.
Follow a decision pattern like this……..
http://blogs.perficient.com/portals/?p=740
32
Building My Own MVC ……..Or how to paint yourself into a corner• A really bright guy………
– Doesn’t like the existing MVC’s– Convinces the company to create their own MVC to be
used by all developers for portal and other developments– He leaves– The MVC team shrinks– Development on the MVC slows to a crawl
• A couple years pass– The portal is one or two major releases ahead– Java has been updated– WAS supports cool new functionality– A JSR portal spec is out
• The Portal development team– Is pulling their hair out http://www.flickr.com/photos/wiseacre/322964859/
33
Building My Own MVC ……..Or how to paint yourself into a corner
• What they should have done– Choose a supported MVC
– JSF– Spring MVC– Struts
– Find other development tools and frameworks that will help– DOJO, Jquery– Spring– Hibernate, Ibatis– Display tag– Etc.
– When a new need comes up, look outside first– Decompiling and repackaging code is never the answer– Use the APIs available to you
– Explain the situation to the business – they will never ask you to build it from the ground up
34
Infinite Loops on the Homepageand how it will take down your portal………………………….
• Who:– Company in the early days of portal– Employee Portal for thousands of people
across the United States
• What:– Developer introduced an infinite loop in a
portlet– Did simple system test– Put it on the home page
• Result:– Took the entire portal down as thousands
of users hit the portal
35
Infinite Loops on the Homepageand how it will take down your portal………………………….• Best Practices
– Test Early, test often
– Do a baseline load and performance test at the beginning of your project
– Test different scenarios
– Content heavy
– App specific
– Home page and landing pages
• Options– Open source: JMeter, Selenium– Commercial: HPLoadrunner, Neotys,
webperformance
36
Late Night with WebSphere Portal! You will probably be working instead of watching David Letterman’s top
10 list on Late Night if…10 We have really smart people, I’m sure they can figure
out this portal thing without any help at all.
9 The project team decides to use Agile and the PMO wraps their ‘gating’ process around it.
8 The integration team says, “We’ve almost decided on a Services layer.” It’s three months into the project.
7 The project manager has yet to notify anyone of a two month project delay and the business thinks the project will launch next week.
6 It’s month three of a 5 month project and you finally received sign off on requirements.
37
Late Night with WebSphere Portal! You will probably be working instead of watching David Letterman’s top
10 list on Late Night if…
5 WCM isn’t absolutely perfect for us, let’s develop our own content solution.
4 The security team doesn’t need to be involved in the decision, I’m sure they will be on board.
3 You do a technical review and you hear the phrase, “I wasn’t here when they made this decision.” At least 5 times.
2 We don’t need to install the environments until the week before we really need them.
1 We are only 2 weeks from production and performance seems a bit slow. Maybe we should run a performance test.
Daily unique content about content management, user experience, portals and other enterprise information technology solutions across a variety of industries.
Follow Perficient Online
Perficient.com/SocialMedia
Twitter.com/Perficient Facebook.com/Perficient
About Perficient
Perficient is a leading information technology consulting firm serving
clients throughout North America.
We help clients implement business-driven technology solutions that
integrate business processes, improve worker productivity, increase
customer loyalty and create a more agile enterprise to better
respond to new business opportunities.
PRFT Profile
Founded in 1997
Public, NASDAQ: PRFT
2010 Revenue of $215 million
20 major market locations throughout North America— Atlanta, Austin, Charlotte, Chicago, Cincinnati, Cleveland,
Columbus, Dallas, Denver, Detroit, Fairfax, Houston, Indianapolis, Minneapolis, New Orleans, Philadelphia, San Francisco, San Jose, St. Louis and Toronto
1,500+ colleagues
Dedicated solution practices
500+ enterprise clients (2010) and 85% repeat business rate
Alliance partnerships with major technology vendors
Multiple vendor/industry technology and growth awards
Perficient brings deep solutions expertise and offers a complete set of flexible services to help clients implement business-driven IT solutions
Our Solutions Expertise & Services
Business-Driven Solutions• Enterprise Portals• SOA and Business Process
Management• Business Intelligence• User-Centered Custom Applications• CRM Solutions• Enterprise Performance
Management• Customer Self-Service• eCommerce & Product Information
Management• Enterprise Content Management• Industry-Specific Solutions• Mobile Technology• Security Assessments
41
Perficient Services End-to-End Solution Delivery IT Strategic Consulting IT Architecture Planning Business Process & Workflow
Consulting Usability and UI Consulting Custom Application Development Offshore Development Package Selection, Implementation
and Integration Architecture & Application Migrations Education