Nathan Shaw, technical managing consultant of Liferay, Inc., presented “7 Habits of Highly Successful Liferay Projects” at the 2016 Liferay Symposium. The presentation was influenced by the best-selling book “7 Habits of Highly Successful People.” The highlights follow.
1) Be Proactive
Be proactive and not reactive.
- Learn what Liferay can do
- Stay informed via Liferay Pulse, company blogs, social media etc.
- Attend training
- Be aware of the features, for example
- Web content management system
- Staging / publishing
- Document types
- Content targeting
2) Begin with the End in Mind
Focus on the end goals and embrace change as a means to get there.
- Long term mindset
- Flexible
- Maintainable
- Survivable
- Enterprise-scale
- Quality matters
3) Put First things First
Focus on important urgent matters, not time wasters
- Important tasks cannot be ignored or they will become urgent, e.g. install product fixes before a bug shows up in production
- Don’t be afraid to say no to things like vague requirements or over-engineering,
- Use published APIs, not custom code
- Don’t repeat yourself
- Use portlet configuration for related portlets instead of writing multiple portlets
- Factor to a common service, jar or portal property
- Use small building blocks with clear responsibilities
- Use css class wrappers in theme
- Test integrated development
- Write tests from requirements and write code until the tests pass
- For developers, have automated tools
- For QA, use automated regression tools and manual testing for new capabilities
- Develop like you are in production
- Production ready logging
- Don’t use omniadmin
- A prod like environment is required for QA, e.g. clustering, SSO, services etc.
4) Think Win/Win
High consideration and courage contribute to win/win among teams. Important factors include.
- Universal source code control for not just code but also server configuration
- Use tickets for tracking all work
- Lightweight document for processes
- Just-enough documentation for architecture
- Test automation
- Levels of prioritization – everything isn’t a sev 1 defect or a blocker
- API contracts
- Error correction mechanism, e.g. developers review requirements, QA tests against them and business signs off
5) Seek First to Understand
Understand what is happening with your team and systems.
- For your team
- Track all work
- Use Agile techniques for delivery
- For your production system
- Retained and searchable logs
- Application performance monitoring
- Auditing for key events
- Click stream tracking when permissible
- Service metrics
- Heath dashboard
- Load testing and performance tuning
6) Synergize
The sum is greater than the parts. Trust and cooperation among the teams are critical.
7) Sharpen the Saw
Effective teams takes time during the projects to look at their processes and techniques to always look for improvements. Key contributors are.
- Open communication, e.g. JIRA
- Sprint retrospectives
- Active change management process
- Real user feedback
- Production support reviews
The session was very informative with real world techniques. While many of the habits are general good software development and project delivery best practices, there were Liferay specific concepts sprinkled throughout.