*Umbraco Best Cog Practices

Who Am I?

Marcin Zajkowski

Umbraco Developer, Trainer and Certified Master @ The Cogworks

Team, Technology & Knowledge Wizard (CKO, CIO) / PedagoGEEK @ WOW School

Me @ udfnd.pl

@zajkowskimarcin

@zajkowskimarcin

marcin.zajkowski@thecogworks.com

 

- Our Umbraco: http://our.umbraco.org/
- Community Slack: http://umbracians.chat/
- Slides: https://slides.com/zajkowskimarcin/umbraco-best-practices/

So... best practices huh?

Sign up for official

Umbraco Trainings!

Thank You! Questions?

@zajkowskimarcin  /  marcin.zajkowski@thecogworks.com

We are The Cogworks 💪

Skilled & Experieced Team

Anthony Dang

Ismail Mayat

Callum Whyte

Umbraco Exp++

Some of our Clients

Community Contrib

People, not technology.

Psst... save the date and visit Poland!

September 15th, Cracow

Meetups

...cause sharing is caring!

Packages

Ok...so let's play

a game!

1g

1g

1b

1b

2g

2g

3g

3g

4g

4g

5g

5g

6g

6g

7g

7g

2b

2b

3b

3b

4b

4b

5b

5b

6b

6b

8g

8b

7b

7b

9g

9b

0g

0b

Coding Standards

Done Right :)

Naming Conventions

Consistent Indentation

Tabs vs. Spaces

Comments

Nesting

Line Lenght

File and Folder Structure

Code Smells

Architecture & Design Patterns

Coding Standards

Done Wrong :[

Naming Conventions?

Inconsistent Indentation

Tabs vs. Spaces

Comments

Nesting

Line Lenght

File and Folder Structure

Code Smells

Architecture & Design Patterns

Coding Standards

Takeaways

Be consistent.

Simple is perfect.

Avoid overengineering.

Packages

Umbraco != Wordpress

Use packages only when built-in features are not enough.

Our must-haves

  • Umbraco Core Property Value Converters (inside Umbraco Core from 7.6 - btw. grab the RC!)
  • Nested Content (PR into Core created, due to ???)
  • Doc Type Grid Editor / LeBlender
  • uSync
  • Multi Url Picker (RJP)
  • nuPickers
  • Models Builder (in Core already for a bit)

Packages should help you achieve the goals, not force you to fight with them.

The whole story behind Find and Replace

Team Management

Done Right :)

Proper / accurate estimations

  • Reject or overestimate (MASSIVELY) unknown tasks
  • Scale with built in buffering
  • T-shirt sizing for new work (Project = 5xM + 7xXL)
  • Fibonacci for tasks
  • At least 2 or 3 devs doing one estimation

Schedule and capacity

  • First of all: measure the points achieved! It's our capacity
  • Be realistic !?
  • Adjust and be agile
  • Don't rush, rushing causes bugs and emergencies 

Plan, plan, plan.

Trasparency.

Freedom Fridays!

Team Management

Done Wrong :[

Estimation mistakes

  • Underestimated tasks (especially unknowned ones)
  • No buffer and spare time to handle emergencies
  • No schema for estimating new work (e.g. T-shirt sizings)
  • Inconsistent tasks estimations (no schema / points)
  • Estimations done by 1 dev (!!!)

Velocity

  • Not measured / unknown capacity
  • Not being realistic...
  • Sticking to "the plan"
  • Rushing, pushing = bugs

Starting before thinking / planning.

No transparency.

Overtime work. No freedom.

Maintenance

Done Right :)

Update often.

Leave code a little better than you found it.

Refactoring > Rewriting

Rewriting > Patching

Maintenance

Done Wrong :[

No updates...

No time for refactoring...

Leave code a little better than you found it.

Rewriting > Refactoring

Patching > Rewriting

Automation

DRY / DIE

The same task done multiple times, becomes easier to do for the next time. But... you still need to do it :)

Our Trello Automation

Infrastructure Tool

It helps avoid stupid human errors, but causes some other problems.

Find a balance for yourself.

Documentation

Done Right :)

Documentation is your friend.

Good documentation

  • Short
  • Easy to read and seek
  • May be auto-generated, but it's dangerous
  • Needs to be up to date

Create good documentations.

Contribute to

Umbraco docs!

Documentation

Done Wrong :[

Screw documentation,

I know better.

Bad documentation

  • Long
  • Hard to read and seek
  • Not up to date

Don't create bad documentions.

Contribute to

Umbraco docs!

Knowledge Sharing

Done Good :)

Pair Programming FTW!

Meetups, conferences, Our, SO, Slack etc...

Trainings!

Help from your teammates

Don't stop learning and share what you've learned.

Knowledge Sharing

Done Wrong :[

Single points of failure. No pair programming.

Focus on delivering work, rather than expanding knowledge.

Trainings!

Help from your teammates

Don't stop learning and share what you've learned.

Continous Integration

Just do it!

CI / CD Workshops

umbUKFest etc.

SOLID and TDD

Done Good :)

.NET skills

You need to feel ashamed of not doing it.

TDD with Umbraco

Lars Erik + Anthony Dang = Workshops @ CG

SOLID and TDD

Done Wrong :[

Lack of .NET skills

Doing it under pressure not because it's good.

TDD with Umbraco

Lars Erik + Anthony Dang = Workshops @ CG

Use what ya mama (Umbraco) gave ya!

SurfaceControllers

IPublishedContent

ModelsBuilder

The Grid

(olso on steroids!)

Examine

Umbraco Cloud

Summary

  • Find or create your own best practices
  • Learn from anti-patterns and bad practices
  • Learn, share, discover
  • Don't complicate stuff - it's not a rocket surgery
  • DRY and the others - use packages and community
  • Be consistent

Thank You! Questions?

@zajkowskimarcin  /  marcin.zajkowski@thecogworks.com

Umbraco (Cog) Best Practices

By Marcin Zajkowski

Umbraco (Cog) Best Practices

Are you wondering what is the most efficient way of doing things with Umbraco? Are you curious how other teams are dealing with the best .NET open source CMS? Do you want to play a game? :) If so, this talk is perfect for you! During this session, Marcin will share some cog-best-practises covering areas like team management and Umbraco development used inside The Cogworks organization. Photo credits: Douglas Robar, Korsan Studio, Twitter.

  • 6,639