SlideShare a Scribd company logo
You can build it in a week*
James Aylett
/dev/fort
* even if you get caught in a blizzard
/dev/fort is a tried & tested way of kidnapping a dozen people and
stranding them in an isolated spot where they are at risk of starvation,
hypothermia, whiskey and Carly Rae Jepsen parodies.
As a side effect we build websites.
What is /dev/fort?
A dozen people. An isolated location. No internet. No phones. A week to
choose an idea, develop it, design it & build it.
What is /dev/fort?
Some things we’ve built
WLNY (bit bucket). Mostly Final. Spacelog. History Mesh. BeHabitual.
Technology at about 8.5
I want to talk about one of the reasons I do /dev/fort. Because it’s a
holiday where you do your day job: it’s a bit weird. But in your day job
you’re balancing constraints of the real world against what you know
professionally.
We compromise; it’s rare that we get to turn technology up to 11. Or
even 10.
Before the first fort I’d pretty much given up programming. I didn’t have
any interest in it. I’d also had too many conversations that included
phrases like…
Technology at about 8.5
“We don’t have time”
Technology at about 8.5
“Something something velocity”
Technology at about 8.5
“I don’t care about accessibility”
Technology at about 8.5
“I don’t care about accessibility”
“I don’t care about testing”
Technology at about 8.5
“I don’t care about accessibility”
“I don’t care about testing”
“I don’t care about security”
Technology at about 8.5
“I don’t care about accessibility”
“I don’t care about testing”
“I don’t care about security”
“I don’t care about users”
Technology at about 8.5
“I don’t care about accessibility”
“I don’t care about testing”
“I don’t care about security”
“I don’t care about users”
“We just need to ship this”
If your manager says this, he may mean “our CEO has heard agile means
we move faster”. If your CEO says this, he may mean “our investors have
heard agile means we move faster”.
Technology at 11
But in a fort we get to set our own constraints. We don’t have managers.
CEOs and investors can’t find us. Nor, as a point of fact, can Sainsbury’s
home delivery. Although we did get a book from Amazon once. This is
getting off point.
Technology at 11
Doing the Right Thing
We choose not to compromise on quality. We call it “doing the right
thing”.
And I came back from the first fort excited about building things for the
web again. Other people have as well.
Technology at 11
Doing the Right Thing
Test your code
Technology at 11
Doing the Right Thing
Information security
Technology at 11
Doing the Right Thing
Monitor usage
Technology at 11
Doing the Right Thing
Semantic HTML
Technology at 11
Doing the Right Thing
Maintainable CSS*
* this is a lie; CSS isn’t maintainable
Technology at 11
Doing the Right Thing
Javascript not required
Technology at 11
Doing the Right Thing
And we do this in a week
Since we started /dev/fort I’ve become much more hardline about doing
the right thing when I’m working elsewhere. Sometimes you have to
compromise, but more often than not I’ve been better off sticking to my
guns. I’ve started to feel uncomfortable if anyone suggests otherwise.
People who pay attention to these things have been looking at GDS
recently and saying things like that it’s (quote from Paul) “won [us] the
right to finally say ‘no’ and do less, better, to do it properly and stop
cutting corners”. This is basically the same thing. Maybe, *maybe*, now
we can stop having this argument with managers and so forth…in about
ten years when they’ve heard of GDS.
Internet in a box
Something we get asked a lot is “how do you do this without the
internet?”. And I tend to assume the people asking are intelligent and
mean things like access to documentation rather than Twitter.
So we take the useful bits with us. RFCs, Internet Drafts, w3.org, jQuery
documentation, CPAN, ruby gems, PyPI, npm.
Internet in a box
Package mirrors
CPAN, ruby gems, PyPI, npm…
Internet in a box
Documentation mirrors
RFCs, Internet Drafts, w3.org, jQuery documentation…
Internet in a box
Wikipedia
Wikipedia provide dumps of their content. Turns out that grepping
through giant XML files is a painful way of reading Wikipedia, so we
wrote our own browser.
Internet in a box
Twitter
Oh yeah, and we have twitter as well.
Internet in a box
Bugle
Or rather bugle, “group collaboration tools for hackers in forts”, which
Simon Willison wrote. In a fort. We keep on adding bits to it, so it’s not
particularly like twitter any more. Warning: *only* suitable for use in a
fort due to hideous security holes that don’t really matter when you’re
surrounded by stonking great stone walls.
Internet in a box
github.com/devfort
We try to release anything useful so other people can use it too. Bugle’s
up there, and Steve Marshall is taking the lead in making chef recipes to
build a copy of the useful bits of the internet.
Plus, we put the sites we build up there.
Internet in a box
github.com/spacelog
And there…
Internet in a box
github.com/historymesh
And a lot of places…
What can we learn from this?
There are obvious things like eliminating distractions. Everyone kind of
knows this, but seriously: turn off notifications, don’t let email or IM or
IRC or kittens suck you in. Too many meetings is pretty bad too; you
can’t get away with none at all, but informal talks are usually better.
But there’s other learnings too. Some of them may be more surprising.
What can we learn from this?
Collaborate better
Really quickly, too.
What can we learn from this?
Collaborate better
A group working together
towards a clear goal
It’s surprising how few teams have a clear idea of what they’re trying to
do. It’s surprising how few *companies* have a clear idea. And if they
do, they’re not always great at sharing this with everyone.
What can we learn from this?
Collaborate better
Mentoring works both ways
You don’t really understand something unless you can explain it to
someone else. Also, everyone knows something you don’t. It might be a
trick with vim, a CSS technique you haven’t seen before, or something
really complicated like how to slice an onion. Mentoring provides
benefits in both directions, and isn’t a waste of more experienced folks’
time.
What can we learn from this?
Collaborate better
Try eating together
Some companies have made this a cliché. It’s not about paying for
everyone’s lunch, it’s about socialising. Admittedly at forts we do more
than just eat lunch together; we eat, we cook, we laugh, we drink, we
give impromptu performances of Gangnam Style. You may not want to
go that far.
What can we learn from this?
You can do things properly and
still have velocity
Prioritise what’s important. Make sure things get talked through before
you start building. If someone’s still arguing it means something’s
wrong, although it might not be what they think.
What can we learn from this?
You can do things properly and
still have velocity
Tech doing it right seems to
affect scope less than design
Perhaps because these days there’s *lots* of off-the-shelf support for
what developers care about, but only *almost* what designers care
about. eg: Django ships with a password reset flow that sends a one-use
email token. But it doesn’t log you in after setting the new password,
and doesn’t send HTML email.
What can we learn from this?
Learn to love distributed
git means that you can commit from the battlements.
Scripted deployment (“continuous deployment”) means you can deploy
from anywhere, which means you can fix problems & do your job
anywhere. A pub, a restaurant, the deck of HMS Ocean.
I’d love to say that we’ve released a /dev/fort site from an airport, but
we haven’t. Although we did nearly get one running from a hotel in the
middle of a blizzard.
What can we learn from this?
Don’t get stuck in a blizzard
Seriously, those things are cold.
You may be wondering “how do I come to a fort?”. We run about two a
year, but forts are always popular so I’m talking to potential sponsors so
we can run more. In the meantime, get a recommendation from
someone who’s been.
Additional photos by
Mark Norman Francis
http://flickr.com/photos/mn_francis
Additional photos by
Stephanie Hobson
http://flickr.com/photos/stephaniehobson
Questions?
Questions?
Questions?
james@devfort.com
Questions?
james@devfort.com*
* so call me, maybe?

More Related Content

What's hot

From dev to ops and beyond - getting it done
From dev to ops and beyond - getting it doneFrom dev to ops and beyond - getting it done
From dev to ops and beyond - getting it done
Edorian
 
Nmc11 html5 zobrist
Nmc11 html5 zobristNmc11 html5 zobrist
Nmc11 html5 zobrist
Bill Zobrist
 
Kostentreiber bei der iOS-Entwicklung
Kostentreiber bei der iOS-EntwicklungKostentreiber bei der iOS-Entwicklung
Kostentreiber bei der iOS-Entwicklung
xrb
 
It's Time to Train!
It's Time to Train!It's Time to Train!
It's Time to Train!
Bob Coppedge
 
Working Effectively With A Clinical Publisher
Working Effectively With A Clinical PublisherWorking Effectively With A Clinical Publisher
Working Effectively With A Clinical Publisher
chrisgraflinkedin
 
Maintaining a big open source project: lessons learned
Maintaining a big open source project: lessons learnedMaintaining a big open source project: lessons learned
Maintaining a big open source project: lessons learned
Leonardo Tegon
 

What's hot (6)

From dev to ops and beyond - getting it done
From dev to ops and beyond - getting it doneFrom dev to ops and beyond - getting it done
From dev to ops and beyond - getting it done
 
Nmc11 html5 zobrist
Nmc11 html5 zobristNmc11 html5 zobrist
Nmc11 html5 zobrist
 
Kostentreiber bei der iOS-Entwicklung
Kostentreiber bei der iOS-EntwicklungKostentreiber bei der iOS-Entwicklung
Kostentreiber bei der iOS-Entwicklung
 
It's Time to Train!
It's Time to Train!It's Time to Train!
It's Time to Train!
 
Working Effectively With A Clinical Publisher
Working Effectively With A Clinical PublisherWorking Effectively With A Clinical Publisher
Working Effectively With A Clinical Publisher
 
Maintaining a big open source project: lessons learned
Maintaining a big open source project: lessons learnedMaintaining a big open source project: lessons learned
Maintaining a big open source project: lessons learned
 

Similar to /dev/fort: you can build it in a week @emw

Resisting The Feature Creature
Resisting The Feature CreatureResisting The Feature Creature
Resisting The Feature Creature
Christian Heilmann
 
Reasons to be cheerful - Fronteers 2010
Reasons to be cheerful - Fronteers 2010Reasons to be cheerful - Fronteers 2010
Reasons to be cheerful - Fronteers 2010
Christian Heilmann
 
10 Real Life Network Documentation Hacks & How to Do it Right
10 Real Life Network Documentation Hacks & How to Do it Right10 Real Life Network Documentation Hacks & How to Do it Right
10 Real Life Network Documentation Hacks & How to Do it Right
Graphical Networks
 
Tonethatplone
TonethatploneTonethatplone
Tonethatplone
Paul Roeland
 
HTML5 - Moving from hacks to solutions
HTML5 - Moving from hacks to solutionsHTML5 - Moving from hacks to solutions
HTML5 - Moving from hacks to solutions
Christian Heilmann
 
Liberated Accessibility
Liberated AccessibilityLiberated Accessibility
Liberated Accessibility
Christian Heilmann
 
Mist concept introduction with notes
Mist concept introduction with notesMist concept introduction with notes
Mist concept introduction with notes
Ethereum
 
Let's interface
Let's interfaceLet's interface
Let's interface
Christian Heilmann
 
Naming Things (with notes)
Naming Things (with notes)Naming Things (with notes)
Naming Things (with notes)
Pete Nicholls
 
Devops down-under
Devops down-underDevops down-under
Devops down-under
Robert Postill
 
Mobile App Feature Configuration and A/B Experiments
Mobile App Feature Configuration and A/B ExperimentsMobile App Feature Configuration and A/B Experiments
Mobile App Feature Configuration and A/B Experiments
lacyrhoades
 
Inside GitHub
Inside GitHubInside GitHub
Inside GitHub
err
 
From 🤦 to 🐿️
From 🤦 to 🐿️From 🤦 to 🐿️
From 🤦 to 🐿️
Ori Pekelman
 
How long will it take me to become a Web Designer/Developer?
How long will it take me to become a Web Designer/Developer?How long will it take me to become a Web Designer/Developer?
How long will it take me to become a Web Designer/Developer?
webdesignjhb9
 
From DevOps to NoOps how not to get Equifaxed Apidays
From DevOps to NoOps how not to get Equifaxed ApidaysFrom DevOps to NoOps how not to get Equifaxed Apidays
From DevOps to NoOps how not to get Equifaxed Apidays
Ori Pekelman
 
Choose Boring Technology
Choose Boring TechnologyChoose Boring Technology
Choose Boring Technology
Dan McKinley
 
Reactive Microservice Architecture with Groovy and Grails
Reactive Microservice Architecture with Groovy and GrailsReactive Microservice Architecture with Groovy and Grails
Reactive Microservice Architecture with Groovy and Grails
Steve Pember
 
HTML5 and the future of the web (Dr. Seuss style)
HTML5 and the future of the web (Dr. Seuss style)HTML5 and the future of the web (Dr. Seuss style)
HTML5 and the future of the web (Dr. Seuss style)
Christian Heilmann
 
Anytime, Anywhere, Any Device: Developing a Mobile Website for Your Library
Anytime, Anywhere, Any Device: Developing a Mobile Website for Your LibraryAnytime, Anywhere, Any Device: Developing a Mobile Website for Your Library
Anytime, Anywhere, Any Device: Developing a Mobile Website for Your Library
Mobile Libraries
 
Grails Worst Practices
Grails Worst PracticesGrails Worst Practices
Grails Worst Practices
Burt Beckwith
 

Similar to /dev/fort: you can build it in a week @emw (20)

Resisting The Feature Creature
Resisting The Feature CreatureResisting The Feature Creature
Resisting The Feature Creature
 
Reasons to be cheerful - Fronteers 2010
Reasons to be cheerful - Fronteers 2010Reasons to be cheerful - Fronteers 2010
Reasons to be cheerful - Fronteers 2010
 
10 Real Life Network Documentation Hacks & How to Do it Right
10 Real Life Network Documentation Hacks & How to Do it Right10 Real Life Network Documentation Hacks & How to Do it Right
10 Real Life Network Documentation Hacks & How to Do it Right
 
Tonethatplone
TonethatploneTonethatplone
Tonethatplone
 
HTML5 - Moving from hacks to solutions
HTML5 - Moving from hacks to solutionsHTML5 - Moving from hacks to solutions
HTML5 - Moving from hacks to solutions
 
Liberated Accessibility
Liberated AccessibilityLiberated Accessibility
Liberated Accessibility
 
Mist concept introduction with notes
Mist concept introduction with notesMist concept introduction with notes
Mist concept introduction with notes
 
Let's interface
Let's interfaceLet's interface
Let's interface
 
Naming Things (with notes)
Naming Things (with notes)Naming Things (with notes)
Naming Things (with notes)
 
Devops down-under
Devops down-underDevops down-under
Devops down-under
 
Mobile App Feature Configuration and A/B Experiments
Mobile App Feature Configuration and A/B ExperimentsMobile App Feature Configuration and A/B Experiments
Mobile App Feature Configuration and A/B Experiments
 
Inside GitHub
Inside GitHubInside GitHub
Inside GitHub
 
From 🤦 to 🐿️
From 🤦 to 🐿️From 🤦 to 🐿️
From 🤦 to 🐿️
 
How long will it take me to become a Web Designer/Developer?
How long will it take me to become a Web Designer/Developer?How long will it take me to become a Web Designer/Developer?
How long will it take me to become a Web Designer/Developer?
 
From DevOps to NoOps how not to get Equifaxed Apidays
From DevOps to NoOps how not to get Equifaxed ApidaysFrom DevOps to NoOps how not to get Equifaxed Apidays
From DevOps to NoOps how not to get Equifaxed Apidays
 
Choose Boring Technology
Choose Boring TechnologyChoose Boring Technology
Choose Boring Technology
 
Reactive Microservice Architecture with Groovy and Grails
Reactive Microservice Architecture with Groovy and GrailsReactive Microservice Architecture with Groovy and Grails
Reactive Microservice Architecture with Groovy and Grails
 
HTML5 and the future of the web (Dr. Seuss style)
HTML5 and the future of the web (Dr. Seuss style)HTML5 and the future of the web (Dr. Seuss style)
HTML5 and the future of the web (Dr. Seuss style)
 
Anytime, Anywhere, Any Device: Developing a Mobile Website for Your Library
Anytime, Anywhere, Any Device: Developing a Mobile Website for Your LibraryAnytime, Anywhere, Any Device: Developing a Mobile Website for Your Library
Anytime, Anywhere, Any Device: Developing a Mobile Website for Your Library
 
Grails Worst Practices
Grails Worst PracticesGrails Worst Practices
Grails Worst Practices
 

More from James Aylett

Git, from the beginning
Git, from the beginningGit, from the beginning
Git, from the beginning
James Aylett
 
Django Files — A Short Talk (slides only)
Django Files — A Short Talk (slides only)Django Files — A Short Talk (slides only)
Django Files — A Short Talk (slides only)
James Aylett
 
IA Isn't New, or: What would Samuel Pepys' website look like?
IA Isn't New, or: What would Samuel Pepys' website look like?IA Isn't New, or: What would Samuel Pepys' website look like?
IA Isn't New, or: What would Samuel Pepys' website look like?
James Aylett
 
Django Files — A Short Talk
Django Files — A Short TalkDjango Files — A Short Talk
Django Files — A Short Talk
James Aylett
 
Beyond blockers
Beyond blockersBeyond blockers
Beyond blockers
James Aylett
 
Tree surgery
Tree surgeryTree surgery
Tree surgery
James Aylett
 
On committing well
On committing wellOn committing well
On committing well
James Aylett
 
Accessible by Voice
Accessible by VoiceAccessible by Voice
Accessible by Voice
James Aylett
 
Spacelog: things we did right-ish
Spacelog: things we did right-ishSpacelog: things we did right-ish
Spacelog: things we did right-ish
James Aylett
 
Web heresies
Web heresiesWeb heresies
Web heresies
James Aylett
 
Five class-based views everyone has written by now
Five class-based views everyone has written by nowFive class-based views everyone has written by now
Five class-based views everyone has written by now
James Aylett
 

More from James Aylett (11)

Git, from the beginning
Git, from the beginningGit, from the beginning
Git, from the beginning
 
Django Files — A Short Talk (slides only)
Django Files — A Short Talk (slides only)Django Files — A Short Talk (slides only)
Django Files — A Short Talk (slides only)
 
IA Isn't New, or: What would Samuel Pepys' website look like?
IA Isn't New, or: What would Samuel Pepys' website look like?IA Isn't New, or: What would Samuel Pepys' website look like?
IA Isn't New, or: What would Samuel Pepys' website look like?
 
Django Files — A Short Talk
Django Files — A Short TalkDjango Files — A Short Talk
Django Files — A Short Talk
 
Beyond blockers
Beyond blockersBeyond blockers
Beyond blockers
 
Tree surgery
Tree surgeryTree surgery
Tree surgery
 
On committing well
On committing wellOn committing well
On committing well
 
Accessible by Voice
Accessible by VoiceAccessible by Voice
Accessible by Voice
 
Spacelog: things we did right-ish
Spacelog: things we did right-ishSpacelog: things we did right-ish
Spacelog: things we did right-ish
 
Web heresies
Web heresiesWeb heresies
Web heresies
 
Five class-based views everyone has written by now
Five class-based views everyone has written by nowFive class-based views everyone has written by now
Five class-based views everyone has written by now
 

Recently uploaded

Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
Postman
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
saastr
 
Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
LucaBarbaro3
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
Miro Wengner
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
FREE A4 Cyber Security Awareness Posters-Social Engineering part 3
FREE A4 Cyber Security Awareness  Posters-Social Engineering part 3FREE A4 Cyber Security Awareness  Posters-Social Engineering part 3
FREE A4 Cyber Security Awareness Posters-Social Engineering part 3
Data Hops
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
Edge AI and Vision Alliance
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
HarisZaheer8
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
Antonios Katsarakis
 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
Intelisync
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframeDigital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Precisely
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
saastr
 
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - HiikeSystem Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
Hiike
 

Recently uploaded (20)

Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
 
Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
FREE A4 Cyber Security Awareness Posters-Social Engineering part 3
FREE A4 Cyber Security Awareness  Posters-Social Engineering part 3FREE A4 Cyber Security Awareness  Posters-Social Engineering part 3
FREE A4 Cyber Security Awareness Posters-Social Engineering part 3
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframeDigital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
 
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - HiikeSystem Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
 

/dev/fort: you can build it in a week @emw

  • 1. You can build it in a week* James Aylett /dev/fort * even if you get caught in a blizzard /dev/fort is a tried & tested way of kidnapping a dozen people and stranding them in an isolated spot where they are at risk of starvation, hypothermia, whiskey and Carly Rae Jepsen parodies. As a side effect we build websites.
  • 2. What is /dev/fort? A dozen people. An isolated location. No internet. No phones. A week to choose an idea, develop it, design it & build it.
  • 3. What is /dev/fort? Some things we’ve built WLNY (bit bucket). Mostly Final. Spacelog. History Mesh. BeHabitual.
  • 4. Technology at about 8.5 I want to talk about one of the reasons I do /dev/fort. Because it’s a holiday where you do your day job: it’s a bit weird. But in your day job you’re balancing constraints of the real world against what you know professionally. We compromise; it’s rare that we get to turn technology up to 11. Or even 10. Before the first fort I’d pretty much given up programming. I didn’t have any interest in it. I’d also had too many conversations that included phrases like…
  • 5. Technology at about 8.5 “We don’t have time”
  • 6. Technology at about 8.5 “Something something velocity”
  • 7. Technology at about 8.5 “I don’t care about accessibility”
  • 8. Technology at about 8.5 “I don’t care about accessibility” “I don’t care about testing”
  • 9. Technology at about 8.5 “I don’t care about accessibility” “I don’t care about testing” “I don’t care about security”
  • 10. Technology at about 8.5 “I don’t care about accessibility” “I don’t care about testing” “I don’t care about security” “I don’t care about users”
  • 11. Technology at about 8.5 “I don’t care about accessibility” “I don’t care about testing” “I don’t care about security” “I don’t care about users” “We just need to ship this” If your manager says this, he may mean “our CEO has heard agile means we move faster”. If your CEO says this, he may mean “our investors have heard agile means we move faster”.
  • 12. Technology at 11 But in a fort we get to set our own constraints. We don’t have managers. CEOs and investors can’t find us. Nor, as a point of fact, can Sainsbury’s home delivery. Although we did get a book from Amazon once. This is getting off point.
  • 13. Technology at 11 Doing the Right Thing We choose not to compromise on quality. We call it “doing the right thing”. And I came back from the first fort excited about building things for the web again. Other people have as well.
  • 14. Technology at 11 Doing the Right Thing Test your code
  • 15. Technology at 11 Doing the Right Thing Information security
  • 16. Technology at 11 Doing the Right Thing Monitor usage
  • 17. Technology at 11 Doing the Right Thing Semantic HTML
  • 18. Technology at 11 Doing the Right Thing Maintainable CSS* * this is a lie; CSS isn’t maintainable
  • 19. Technology at 11 Doing the Right Thing Javascript not required
  • 20. Technology at 11 Doing the Right Thing And we do this in a week Since we started /dev/fort I’ve become much more hardline about doing the right thing when I’m working elsewhere. Sometimes you have to compromise, but more often than not I’ve been better off sticking to my guns. I’ve started to feel uncomfortable if anyone suggests otherwise. People who pay attention to these things have been looking at GDS recently and saying things like that it’s (quote from Paul) “won [us] the right to finally say ‘no’ and do less, better, to do it properly and stop cutting corners”. This is basically the same thing. Maybe, *maybe*, now we can stop having this argument with managers and so forth…in about ten years when they’ve heard of GDS.
  • 21. Internet in a box Something we get asked a lot is “how do you do this without the internet?”. And I tend to assume the people asking are intelligent and mean things like access to documentation rather than Twitter. So we take the useful bits with us. RFCs, Internet Drafts, w3.org, jQuery documentation, CPAN, ruby gems, PyPI, npm.
  • 22. Internet in a box Package mirrors CPAN, ruby gems, PyPI, npm…
  • 23. Internet in a box Documentation mirrors RFCs, Internet Drafts, w3.org, jQuery documentation…
  • 24. Internet in a box Wikipedia Wikipedia provide dumps of their content. Turns out that grepping through giant XML files is a painful way of reading Wikipedia, so we wrote our own browser.
  • 25. Internet in a box Twitter Oh yeah, and we have twitter as well.
  • 26. Internet in a box Bugle Or rather bugle, “group collaboration tools for hackers in forts”, which Simon Willison wrote. In a fort. We keep on adding bits to it, so it’s not particularly like twitter any more. Warning: *only* suitable for use in a fort due to hideous security holes that don’t really matter when you’re surrounded by stonking great stone walls.
  • 27. Internet in a box github.com/devfort We try to release anything useful so other people can use it too. Bugle’s up there, and Steve Marshall is taking the lead in making chef recipes to build a copy of the useful bits of the internet. Plus, we put the sites we build up there.
  • 28. Internet in a box github.com/spacelog And there…
  • 29. Internet in a box github.com/historymesh And a lot of places…
  • 30. What can we learn from this? There are obvious things like eliminating distractions. Everyone kind of knows this, but seriously: turn off notifications, don’t let email or IM or IRC or kittens suck you in. Too many meetings is pretty bad too; you can’t get away with none at all, but informal talks are usually better. But there’s other learnings too. Some of them may be more surprising.
  • 31. What can we learn from this? Collaborate better Really quickly, too.
  • 32. What can we learn from this? Collaborate better A group working together towards a clear goal It’s surprising how few teams have a clear idea of what they’re trying to do. It’s surprising how few *companies* have a clear idea. And if they do, they’re not always great at sharing this with everyone.
  • 33. What can we learn from this? Collaborate better Mentoring works both ways You don’t really understand something unless you can explain it to someone else. Also, everyone knows something you don’t. It might be a trick with vim, a CSS technique you haven’t seen before, or something really complicated like how to slice an onion. Mentoring provides benefits in both directions, and isn’t a waste of more experienced folks’ time.
  • 34. What can we learn from this? Collaborate better Try eating together Some companies have made this a cliché. It’s not about paying for everyone’s lunch, it’s about socialising. Admittedly at forts we do more than just eat lunch together; we eat, we cook, we laugh, we drink, we give impromptu performances of Gangnam Style. You may not want to go that far.
  • 35. What can we learn from this? You can do things properly and still have velocity Prioritise what’s important. Make sure things get talked through before you start building. If someone’s still arguing it means something’s wrong, although it might not be what they think.
  • 36. What can we learn from this? You can do things properly and still have velocity Tech doing it right seems to affect scope less than design Perhaps because these days there’s *lots* of off-the-shelf support for what developers care about, but only *almost* what designers care about. eg: Django ships with a password reset flow that sends a one-use email token. But it doesn’t log you in after setting the new password, and doesn’t send HTML email.
  • 37. What can we learn from this? Learn to love distributed git means that you can commit from the battlements. Scripted deployment (“continuous deployment”) means you can deploy from anywhere, which means you can fix problems & do your job anywhere. A pub, a restaurant, the deck of HMS Ocean. I’d love to say that we’ve released a /dev/fort site from an airport, but we haven’t. Although we did nearly get one running from a hotel in the middle of a blizzard.
  • 38. What can we learn from this? Don’t get stuck in a blizzard Seriously, those things are cold. You may be wondering “how do I come to a fort?”. We run about two a year, but forts are always popular so I’m talking to potential sponsors so we can run more. In the meantime, get a recommendation from someone who’s been.
  • 39. Additional photos by Mark Norman Francis http://flickr.com/photos/mn_francis
  • 40. Additional photos by Stephanie Hobson http://flickr.com/photos/stephaniehobson