Code in the Cloud presentation as presented in Antwerp Lindner Hotel on 8th December 2014
#codeinthecloud
Agenda from the event:
In the AM (Introduction)
- Introduction to Application Lifecycle Management and Visual Studio Online
- Managing your project: what, who and when
- Working with code: keeping the source code safe and in-sync and be productive as a developer
- Tracking progress: how are we doing
- Improving quality: continuous build, deploy and testing
EAT
In the PM (Putting it all into practice)
- Exciting demonstrations and walkthroughs on how to run your project with Visual Studio Online.
11. BACKLOG
REQUIREMENTS
No infrastructure overhead | Pay as you use services | Available anywhere | Connected IDE
Agile Portfolio Management
Kanban customization
Work item tagging
Work item charts
Team Rooms
Code discussions
Flexible version control
Cloud load testing
Web-based test management
Continuous Deployment
Automated builds and CI
Application Insights
Stakeholder feedback
requests
Browser-based lightweight IDE
12. 3) New cloud-only monthly user plans
2) Included for MSDN subscribers
Increased value to existing and new MSDN subscribers User plans purchased via Microsoft Azure.
1) Completely free for small teams
FREE: 5 users
FREE: 60 minutes Cloud Build per month
FREE: 15K virtual user mins per month
FREE: 5 users
Additional users $20/month
All users $45/month
Max 10 per account with this plan
Includes use of the VS Pro IDE
All users $60/month
13. Unlimited projects/repositories
Agile planning
Work item tracking
Code discussions
Work item chart viewing
= Basic capabilities +
Agile Portfolio Management
Team Rooms
Work item chart authoring
Request & manage feedback
= Advanced capabilities +
Web test case management
23. Product Backlog
Customer prioritized
customer features
Time-boxed
Test/Develop
Working code
Ready for deployment
Time-boxed iteration cycles (i.e. 2 weeks)
Product Backlog Back log tasks
Sprint Backlog
Feature assigned
to sprint
Sprint planning meeting
• Review Product Backlog
• Estimate Sprint Backlog
• Commit
Daily Standups
• Done since last standup
• Plan for today
• Any impediments
Sprint Review Meeting
• Demo features to
stakeholders
• Retrospective
Elaborated and
Estimated by team
Team Commitment
29. Strengths Best for
Check-in
Check-out
• Fine level permission control
• Allows usage monitoring
• Large integrated codebases
• Control and auditability over
source code down to the file level
• Offline editing support
• Easy to edit files outside Visual
Studio or Eclipse
• Medium-sized integrated
codebases
• A balance of fine-grained control
with reduced friction
• Fast offline experience
• Complete repository with
portable history
• Flexible advanced branching
model
• Modular codebases
• Integrating with open source
• Highly distributed teams
39. TDD is a robust way of designing software
components (“units”) interactively so that
their behavior is specified through unit
tests.
Whenever you are tempted to type
something into a print statement or a
debugger expression, write it as a test
instead.
Manual or automated testing is much
better for finding bugs.
Automated integration tests are much
better for detecting regression (things that
used to work but have unexpectedly stopped
working).
[TestMethod]
public void Debit_WithValidAmount_UpdatesBalance()
{
// arrange
double beginningBalance = 11.99;
double debitAmount = 4.55;
double expected = 7.44;
BankAccount account =
new BankAccount("Mr. X", beginningBalance);
// act
account.Debit(debitAmount);
// assert
double actual = account.Balance;
Assert.AreEqual(expected, actual, 0.001,
"Account not debited correctly");
}
40. Visual Studio Test Explorer is designed to
support developers and teams who
incorporate unit testing in their software
development practices.
Unit testing helps you ensure the correctness
of your program by verifying that the
application code does what you expect it to
do.
In unit testing, you analyze the functionality
of your program to discover discrete testable
behaviors that you can test as
individual units.
You use a unit testing framework to create
tests of those behaviors and to report the
results of those tests.
46. Business
challenges
Customers desire frequent
updates
Comprehensive manual
testing can impede delivery
speed
Long cycle times result in
increased defects and
decreased quality
Solutions
Reduce scope of feature set
Integrate new features
frequently
Use gated check-in to ensure
unit tests are run
Automate build processes
Minimize code churn after
breakage
Business value
Shorter cycle times lead to
quicker delivery of value
Enforced unit testing
increases quality threshold
Release of quality code
ensures continual value
delivery
48. Configure the gated check-in
build to fail if a test fails, ensuring
the code won’t be checked in
Identify specific test to be run
during the gated check-in build
51. Deploying early and often delivers business value fast, generates early
customer feedback and ensures ‘Go Live’ day ends with Champagne
and not a sleepless night
61. Plenty of opportunities for things to go wrong
Mobile app crashed
Server request too slow
Database overloaded
Downstream service down
Feature too hard to use
62. 1. Telemetry is collected at each
tier: Mobile applications, server
applications and browser
2. Telemetry arrives to
Application Insights service
where it is processed & stored
3. Get 360° view of the
application covering availability,
performance & usage
Application
Insights
63. platform
infrastructure
app
1
3
4
5
Outside-in monitoring
Developer-emitted traces and events
Observed application behavior
Infrastructure performance
URL pings and web tests from global points
of presence
Whatever the developer would like to send
to Application Insights
No coding required – service dependencies,
queries, response time, exceptions, logs, etc.
System performance counters
2 Observed user behavior
How is the application being used?
64. Performing
What’s wrong?
Show me performance problems, memory usage, and
exceptions
The solution – Application Insights
Available
Is my application available and
performing for users?
One Dashboard
Succeeding
Where do we invest next?
Show me top features and customer
Usage patterns
Health Dashboards Notifications & Deep Insights Usage Dashboards