SlideShare a Scribd company logo
Tips & tricks for building
your product faster
Christopher MANEU
Azure Engineer & Advocate @ Microsoft
@cmaneu
fasterfasterfaster
Most startups fails
ideas
products
features
@cmaneu
A typical project
2
3Ideation
Build
Launch
Measure
1
4
@cmaneu
A typical project
2
3Ideation
Build
Launch
Measure
1
4Learning from users
Only happens here
@cmaneu
A need for a shorter feedback loop
2
3Ideation
Build
Launch
Measure
1
4
@cmaneu
All of this is not new…
@cmaneu
How to be lean and fast?
Rethink your product
Technical shortcurts
Prepare for next round
Tips & tricks for building your product quicker
BENEFICIARY ACTION
TOUCHPOINTS
TIME
Get asked for documents
Face 2 Face / Email / Website
BENEFICIARY ACTION
TOUCHPOINTS
TIME
Get asked for documents Sending documents
Face 2 Face / Email / Website Site web / Email
BENEFICIARY ACTION
TOUCHPOINTS
TIME
Get asked for documents Sending documents
Re-send
documents
Face 2 Face / Email / Website Site web / Email
Phone
Email / SMS
BENEFICIARY ACTION
TOUCHPOINTS
TIME
Get asked for documents Sending documents
Re-send
documents
Receives a
confirmation email
Face 2 Face / Email / Website Site web / Email
Phone
Email / SMS
Email
BENEFICIARY ACTION
TOUCHPOINTS
BENEVOLENT ACTION
TIME
Get asked for documents Sending documents
Re-send
documents
Receives a
confirmation email
Face 2 Face / Email / Website Site web / Email
Phone
Email / SMS
Email
Opening registration website Check documents Send reminders
BENEFICIARY ACTION
TOUCHPOINTS
BENEVOLENT ACTION
BACK STAGE STAFF
LINE OF VISIBILITY
TIME
Get asked for documents Sending documents
Re-send
documents
Receives a
confirmation email
Face 2 Face / Email / Website Site web / Email
Phone
Email / SMS
Email
Opening registration website Check documents Send reminders
Setup registration
Prepare reminders
for latecomers
Prepare beneficiary
groups
Check medical
certificate
Check other
documents validity
Prepare
attendees list
BENEFICIARY ACTION
TOUCHPOINTS
BENEVOLENT ACTION
BACK STAGE STAFF
LINE OF VISIBILITY
TIME
Get asked for documents Sending documents
Re-send
documents
Receives a
confirmation email
Face 2 Face / Email / Website Site web / Email
Phone
Email / SMS
Email
Opening registration website Check documents Send reminders
Setup registration
Prepare reminders
for latecomers
Prepare beneficiary
groups
Check medical
certificate
Check other
documents validity
Prepare
attendees list
Several
sources
Tedious and
manual work
Reminders
Unreadable documents
Wrong documents sent several times
@cmaneu
Do things that don’t scale
Or Worry only about the next order of magnitude.
http://paulgraham.com/ds.html
@cmaneu
Do things that don’t scale
Or Worry only about the next order of magnitude.
http://paulgraham.com/ds.html
Simplify UX with one touchpoint
@cmaneu
Do things that don’t scale
Or Worry only about the next order of magnitude.
http://paulgraham.com/ds.html
Do not automate this at first.
Continue do to it manually
& focus on experience
@cmaneu
@cmaneu
The unexpected metric
@cmaneu
@cmaneu
@cmaneu
Measure things early
Not implementing the audio preview
made the key metric for this feature grow
by ~200%
https://aka.ms/fast/insights
@cmaneu
Measure things early
https://aka.ms/fast/insights
Tips & tricks for building your product quicker
@cmaneu
Which service you’ll not build yourself?
• Exceptions Telemtry
• Logging
• Email gateway
• SMS / Push notifications
gateway
• Payment processing
• User management
• CD/CI agents
• DNS Servers
• Search
• Content moderation
• Personalization (if not core business)
• SSH Bastions
• In-App Chat
@cmaneu
Use existing tools, prepare for replacement
public interface ITelemetryService : INotifyPropertyChanged
{
void SetUserId(string userId);
void TrackPageView(string pageName);
void TrackPageView(string pageName, IDictionary<string, string> parameters);
void TrackException(Exception ex);
void TrackException(Exception ex, string message);
void TrackException(Exception ex, string message, bool isFatal);
void TrackEvent(string eventName);
void TrackEvent(string eventName, IDictionary<string, string> properties);
void Trace(string message);
void Trace(string format, params object[] arguments);
void SendAllData();
}
internal sealed class AppInsightsTelemetryService : ITelemetryService
{
public async void TrackException(Exception ex, string message, bool isFatal)
{
// For now, all data are not send in an ExceptionTelemetry
// We send it also as a custom event
Dictionary<string, string> properties = new Dictionary<string, string>();
properties.Add("a.env", _appConfiguration.Environment.ToString());
properties.Add("Type", ex.GetType().ToString());
properties.Add("Message", message);
properties.Add("RawException", ex.ToString());
properties.Add("StackTrace", ex.StackTrace);
ulong appMemoryUsage = MemoryManager.AppMemoryUsage / 1024 / 1024;
ulong appMemoryUsageLimit = MemoryManager.AppMemoryUsageLimit / 1024 / 1024;
properties.Add("d.memused", appMemoryUsage.ToString());
@cmaneu
Use “off-the-shelf” APIs and services
When a document is
uploaded, categorize it
If it’s a picture of
someone, check quality
If we already have a
picture on another
document, check if it’s
the same person
If it’s an official
document, get specific
fields values for the
database
When all documents have been uploaded, send a confirmation email
@cmaneu
Use “off-the-shelf” APIs and services
@cmaneu
Use “off-the-shelf” APIs and services
@cmaneu
Use “off-the-shelf” APIs and services
@cmaneu
Use “off-the-shelf” APIs and services
@cmaneu
No UI
• Reduce the amount of UI
needed
• Try to see if you can have an
email-based / chat-based /
etc.. UI
• AMP-project can help you
create interactive emails
https://amp.dev/documentati
on/examples/?format=email
https://docs.microsoft.com/en
-us/outlook/actionable-
messages/index
@cmaneu
No UI
@cmaneu
No account management
@cmaneu
No account management – JWT tokens
@cmaneu
Recipes for account management
• JWT Tokens
• JWT Tokens + Revocation
• Outsource user management (Azure AD B2C)
• Roll you own user management
@cmaneu
Widen your definition of “Databases”
• CSV and simple storage FTW
• Table storage
• Document storage
• NoSQL Databases (MongoDB, …)
• Excel files on a storage / share
Tips & tricks for building your product quicker
@cmaneu
Use an API Gateway
@cmaneu
Use scientist libraries
public bool CanAccess(IUser user)
{
return Scientist.Science<bool>("widget-permissions", experiment =>
{
experiment.Use(() => IsCollaborator(user)); // old way
experiment.Try(() => HasAccess(user)); // new way
}); // returns the control value
}
@cmaneu
Automate all the things
Infrastructure, Code deployment, …
Azure ARM template Terraform template
GitHub Actions
@cmaneu
Rethink your
product
Map a customer
journey
Do things that
don’t scale
Measure early
Technical
shortcurts
Use & abuse existing
APIs
Find ways to remove
UI
Widen your
definition of
databases
Prepare for next
round
Use an API
Gateway
Use scientist
libraries and
features flags to
refactor
Automate early
Q&A
Christopher MANEU
Azure Engineer & Advocate @ Microsoft R&D
@cmaneu
Thanks !
Christopher MANEU
Azure Engineer & Advocate @ Microsoft R&D
@cmaneu
Image credits
DonWells -
https://en.wikipedia.org/wiki/File:
XP-feedback.gif CC BY-SA 3.0

More Related Content

PPTX
Immutability: from code to infrastructure, the way of scalability - snowcamp ...
PPTX
Be a modern developer ! #liveCoding #cloud #docker #akka #scala #amqp - at Ch...
PPTX
Getting More Out of WordPress with Plugins
PPTX
How to scale your applications ? - #bzhcamp
PPTX
How to fix the design issues that matter on the pages that matter [2016 Smash...
PDF
BETA - Securing microservices
PDF
QCon Sao Paulo Keynote - Microservices, an Unexpected Journey
PPTX
How to manage large amounts of data with Iteratee - ScalaDays Berlin 2014
Immutability: from code to infrastructure, the way of scalability - snowcamp ...
Be a modern developer ! #liveCoding #cloud #docker #akka #scala #amqp - at Ch...
Getting More Out of WordPress with Plugins
How to scale your applications ? - #bzhcamp
How to fix the design issues that matter on the pages that matter [2016 Smash...
BETA - Securing microservices
QCon Sao Paulo Keynote - Microservices, an Unexpected Journey
How to manage large amounts of data with Iteratee - ScalaDays Berlin 2014

What's hot (20)

PDF
Your hero images need you: Save the day with HTTP2 image loading / Tobias Bal...
PPTX
The impact of the trac system
PPTX
I want to be an efficient developper - APIdays Berlin 2014
PPTX
Getting More Out of WordPress With Plugins
PPTX
Streams on top of Scala - scalar 2015 Warsaw
PPTX
RabbitMQ 101 : job scheduling, micro service communication, event based data...
PPTX
How to Organize Your Life and Business Using Asana
PPTX
Alexandre Roman - How Pivotal Cloud Foundry can help you run Spring at scale ...
PPTX
The end of server management : hosting have to become a commodity - #devoxxPL...
PDF
Kanban stand-up meetings
PDF
Principles of Microservices - NDC 2014
PDF
Performance-driven websites with AMP - NeosCon May 2019
PPT
Teaching with Cloud at Unitec
PPTX
Kanban Methodology
PPT
How to use to build a website using WordPress: For normal people
PPTX
Creating change from within - DevReach 2012
PPT
Smarr Oscon 2007
PPTX
Hack your process
PPTX
Why do you need Clever Cloud ?
PDF
Denver AWS Users' Group Meeting - July 2018 Slides
Your hero images need you: Save the day with HTTP2 image loading / Tobias Bal...
The impact of the trac system
I want to be an efficient developper - APIdays Berlin 2014
Getting More Out of WordPress With Plugins
Streams on top of Scala - scalar 2015 Warsaw
RabbitMQ 101 : job scheduling, micro service communication, event based data...
How to Organize Your Life and Business Using Asana
Alexandre Roman - How Pivotal Cloud Foundry can help you run Spring at scale ...
The end of server management : hosting have to become a commodity - #devoxxPL...
Kanban stand-up meetings
Principles of Microservices - NDC 2014
Performance-driven websites with AMP - NeosCon May 2019
Teaching with Cloud at Unitec
Kanban Methodology
How to use to build a website using WordPress: For normal people
Creating change from within - DevReach 2012
Smarr Oscon 2007
Hack your process
Why do you need Clever Cloud ?
Denver AWS Users' Group Meeting - July 2018 Slides
Ad

Similar to Tips & tricks for building your product quicker (20)

PPTX
LITE 2018 – A Deep Dive Into the API [Iain Brown]
PPTX
Flexible Custom Workflows for Banner ERP and the Campus
PPTX
rapidMATION Webinar: The future of work: humans and software bots working tog...
PPTX
Cheap or Free UX Tools
PPT
On the importance of done
PPT
How to Implement Practice Management
PPSX
Scrum and Visual Studio 2010
PPTX
WF 202 Advanced Workflow Solutions
PPTX
Brisbane Salesforce User Group - May 2015 - Lightning Process Builder
PDF
Frappe Open Day - June 2015
PPTX
Agile User Stories
PPTX
Serverless: What happens next will blow your mind!
PDF
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
PDF
Automation and delegation of exchange and office 365 adminstrative tasks with...
PDF
Frappé / ERPNext Open Day October 2015
PPTX
IT User Documentation Matters
PPTX
WalkThru Presentation
PPTX
Managesp 160805190411
PDF
SMC2015: Work Life Hacks
PPTX
Stitching Shop Management System.pptx
LITE 2018 – A Deep Dive Into the API [Iain Brown]
Flexible Custom Workflows for Banner ERP and the Campus
rapidMATION Webinar: The future of work: humans and software bots working tog...
Cheap or Free UX Tools
On the importance of done
How to Implement Practice Management
Scrum and Visual Studio 2010
WF 202 Advanced Workflow Solutions
Brisbane Salesforce User Group - May 2015 - Lightning Process Builder
Frappe Open Day - June 2015
Agile User Stories
Serverless: What happens next will blow your mind!
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Automation and delegation of exchange and office 365 adminstrative tasks with...
Frappé / ERPNext Open Day October 2015
IT User Documentation Matters
WalkThru Presentation
Managesp 160805190411
SMC2015: Work Life Hacks
Stitching Shop Management System.pptx
Ad

Recently uploaded (20)

PDF
Approach and Philosophy of On baking technology
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
cuic standard and advanced reporting.pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
A Presentation on Artificial Intelligence
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
MYSQL Presentation for SQL database connectivity
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
KodekX | Application Modernization Development
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
DOCX
The AUB Centre for AI in Media Proposal.docx
Approach and Philosophy of On baking technology
Review of recent advances in non-invasive hemoglobin estimation
cuic standard and advanced reporting.pdf
Digital-Transformation-Roadmap-for-Companies.pptx
A Presentation on Artificial Intelligence
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
The Rise and Fall of 3GPP – Time for a Sabbatical?
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
20250228 LYD VKU AI Blended-Learning.pptx
Network Security Unit 5.pdf for BCA BBA.
MYSQL Presentation for SQL database connectivity
“AI and Expert System Decision Support & Business Intelligence Systems”
KodekX | Application Modernization Development
Unlocking AI with Model Context Protocol (MCP)
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Building Integrated photovoltaic BIPV_UPV.pdf
Mobile App Security Testing_ A Comprehensive Guide.pdf
The AUB Centre for AI in Media Proposal.docx

Tips & tricks for building your product quicker