creating a collaboration platform (leveraging the django eco system)

28
Creating a Collaboration Platform Leveraging the Django Eco System live slides @ tinyurl.com/djangoeco

Upload: peter-bittner

Post on 06-May-2015

652 views

Category:

Technology


0 download

DESCRIPTION

From the DjangoVillage 2014 event at Orvieto (Italy). These slides are generated PDFs from the original presentation on slides.com (powered by reveal.js). I apologize for the poor quality. See the original at http://slides.com/bittner/creating-a-collaboration-platform

TRANSCRIPT

Page 1: Creating a Collaboration Platform (Leveraging the Django Eco System)

CreatingaCollaborationPlatform

LeveragingtheDjangoEcoSystem

[email protected]/djangoeco

Page 2: Creating a Collaboration Platform (Leveraging the Django Eco System)

>whoamiPeterBittner

ex-javaheadofswd,ex-phpteamleadagilecto,entrepreneur

[email protected]/bittner

Page 3: Creating a Collaboration Platform (Leveraging the Django Eco System)

Agenda1. ModernFairyTale(WithALotOfGrim)2. WhyDjango?(IsForTheLonesomeHacker)3. Research(TheDjangoEcoSystem)4. Development(StrategiesForTheLonesome)5. RealWorldExample(TheDemoYouDeserve)

*{

*Disclosure:bluntDjangopropaganda

Page 4: Creating a Collaboration Platform (Leveraging the Django Eco System)

ModernFairyTale(WithaLotofGrim)

Page 5: Creating a Collaboration Platform (Leveraging the Django Eco System)

CollaborationinaNon-ProfitNightmareonClubStreet

1. Severalpeople,differentbackground,commongoal,differentapproaches

2. Volunteersstartenthusiastically(website)3. Awebsitealonedoesn'tcutit4. Documentschaos(e-mails,dropbox,etc.)5. Notransparency,slowresponse6. Finger-pointingleadstofrustration7. Peoplequit

Page 6: Creating a Collaboration Platform (Leveraging the Django Eco System)

IHaveaDream"...thatonedaytherewillbeefficientonlinecollaboration"

1. Websitealwaysup-to-date(foreveryone)2. Everyone(!)cancontribute3. Fullcontrolovercontentgoinglive4. Wecoach&publish(wedon'twrite!)5. Issuelists,workondocuments,updates6. Everyonetransparentlyinformed7. Everyoneishappy&feelsheard

Page 7: Creating a Collaboration Platform (Leveraging the Django Eco System)

Can'tWeSolveThisProblemEasily?

Cloudplatformsexist,buttheyaresomuch1. revenue/CRM/PMfocused2. clutteredwithfeatures3. restrictive&administrativebynature4. apaintousewithinconsistentUI's5. expensiveforlargeaudiences

Alternative=DIYsoftwaresolution

Page 8: Creating a Collaboration Platform (Leveraging the Django Eco System)

WokeUpSoakingWet1. Nomoneytospend2. Noprogrammingresources(exceptyourself)3. Noalternativesleft

Musttakeatechnologyforlonesomehackers

Page 9: Creating a Collaboration Platform (Leveraging the Django Eco System)

WhyDjango?(IsfortheLonesomeHacker)

Page 10: Creating a Collaboration Platform (Leveraging the Django Eco System)

TheLonesomeHackerJobDescription

Choosewebframework&ecosystemIdentifyusableextensions/pluginsIntegratethemintoasingleexperienceFixshortcomingsofsingleextensionsAddmissingextensionsDowebdesign

Page 11: Creating a Collaboration Platform (Leveraging the Django Eco System)

WhyDjangoIsfortheLonesomeHacker

1. Allpopularframeworkshavebrokenecosystems(Joomla!,Wordpress,Drupal,...)

2. Djangotoo(notworsethantheothers)3. Python=executablepseudocode4. Django=forperfectionistswithdeadlines

tryitcustomizereadcode

Morereadingat:jacobian.org/writing/why-django/

youtube.com/watch?v=n8KnFywpXOE

Page 12: Creating a Collaboration Platform (Leveraging the Django Eco System)

Research(TheDjangoEcoSystem)

Page 13: Creating a Collaboration Platform (Leveraging the Django Eco System)

ResourcesExtensions/Packages="Apps"inDjango

WhereDoIFindDjangoApps?

...

bigbrotherofnsa(google)

djangopackages.comdjango-apps.comelweb.co/33-projects-that-make-devcharm.com/pages/79-must-have-django-packagescode.djangoproject.com/wiki/DjangoResources

Page 14: Creating a Collaboration Platform (Leveraging the Django Eco System)

Components1. CMS2. Blog3. Newsletter4. Events&calendar

CollaborationFeatures1. Sociallogin&userprofiles2. Usergroups&spaces3. Issuelists4. DMS(orintegration)5. Wiki(orthelike)6. Discussionforum(orthelike)

Page 15: Creating a Collaboration Platform (Leveraging the Django Eco System)

WhattoLookatIndicatorsforGoodApps(Projects)

commitactivity/lastcommitcommitcountfewopen/lotsofclosedissuesfewornoopen/lotsofclosedPRsdecentdocumentationdemosystemand/orscreenshots

Page 16: Creating a Collaboration Platform (Leveraging the Django Eco System)

ProbablyGoodChoices

Forums

CMS+Blog+Wiki

django-cms+django-blog-zinniamezzanine

askbot(Q&A)misago(forum)

emencia-django-newsletter

django-todo

mayan(scanneddocs)django-media-tree

django-allauthpython-social-auth

Sociallogin

Newsletter

Documents+Assets

Issuelists

Page 17: Creating a Collaboration Platform (Leveraging the Django Eco System)

MissingChoicesNo(Usable)Ready-to-UseAppsYet

Usergroups&spaces(django-activities)Userprofiles(django-userena)Integrationofdropbox&friendsIntegrationofchat/phone/videoservices

Page 18: Creating a Collaboration Platform (Leveraging the Django Eco System)

Development(StrategiesfortheLonesome)

Page 19: Creating a Collaboration Platform (Leveraging the Django Eco System)

LonesomeHacker'sAdvice

Belazy Don'twriteaplatformfromscratchDon'twritenewappsfromscratch

BeautonomousScript&automateeverythingWritetestsbeforechangingcodePrepareforexchangingcomponents

MakeyourlifeeasierPushyourchangesintoofficialreposBuildonworkofothers&shareDeployearly-inProductionenv

Page 20: Creating a Collaboration Platform (Leveraging the Django Eco System)

MoreAdviceNo-brainers

InfrastructureascodeFigureouthowother(successful)projectsdoitgoogle.com/search?q=django+best+practices

QualityiskeyDrasticallyimprovebadprojectsquickly(orkickthem!)Investinyourownproject!(docs,pep8,packaging)

FocusonyourMVPDon'tgetoverwhelmedbythevastchoiceNotedowninterestingprojects&buildaroadmap

Page 21: Creating a Collaboration Platform (Leveraging the Django Eco System)

BiggestChallengesToCreateaUniqueExperience

1. Integratesingleapps2. Everyartifactreferable(user,group,article,

blog/wiki/evententry,issue,...)3. Simplified,unifieduserexperience(front-end

editingforeverything)4. Combineintranetandpublicworld(without

confusingusers)

Page 22: Creating a Collaboration Platform (Leveraging the Django Eco System)

ObviousConstraints&DutiesForCreatingaProduct

OneappmustbeleadingsystemIntegrateintothisapp(e.g.plugins)MassiveintegrationtestsMassivecautionupgradingapps

Page 23: Creating a Collaboration Platform (Leveraging the Django Eco System)

RealWorldExample(TheDemoYouDeserve)

Page 24: Creating a Collaboration Platform (Leveraging the Django Eco System)

djangoOrganicepipinstalldjango-organice

CoreAppsdjango-cms(leadingsystem)django-blog-zinnia(blog,events,jobs)emencia-django-newsletter

InterestingtoMentionApptype=projectgenerator+metapackageThemesasseparateappswithassetpipeline(Bootstrap,Sass,UglifyJS2)

Page 25: Creating a Collaboration Platform (Leveraging the Django Eco System)

djangoOrganiceLonesomePrinciplesObeyed

1. Documentation2. Easytostart&getitworking3. Scriptsfor(almost)everything4. Rolemodels:zinnia,pootle,...

Page 26: Creating a Collaboration Platform (Leveraging the Django Eco System)

Questions?(I'llTrytoGiveGoodAnswers)

Page 27: Creating a Collaboration Platform (Leveraging the Django Eco System)

PeterBittner,[email protected]@peterbittner

Thedreamlivesonatgithub.com/bittner/django-organice

@organice_io

THANKYOUforyourprecioustime!

Page 28: Creating a Collaboration Platform (Leveraging the Django Eco System)

ImageCreditshttps://www.google.com/search?q=nightmare+elm+street(similarimagesearch)https://www.google.com/search?q=django+unchained(similarimagesearch)http://welcometoclubsilencio.blogspot.ch/2010_04_01_archive.htmlhttp://www.morgenpost.de/kultur/article112144530/Wie-Maerchen-der-Gebrueder-Grimm-jugendfrei-wurden.htmlhttp://www.philanthropyconsulting.com/2014/01/dream/http://beartoons.com/wp-content/uploads/2011/10/Bearman-Cartoons-Occupy-Elm-Street21.pnghttp://www.bluesoft.net.pl/wp-content/uploads/2014/02/django-logo-e1392910534114.pnghttp://disfunctions.de/ubuntu/der-ubuntu-software-store-zukunftsmusik/http://www.celarity.com/how-to-write-a-standout-job-description/http://www.startupfreak.com/the-missing-piece-puzzle-company/http://www.licensinglinenews.com/Newsletter/Edition-48-August-2007/National-Code-of-Practice-for-Induction-for-Construction-Work-declared.aspxhttp://carriekish.com/tag/leading-questions/