SESSION CODE: DEV316 Adam Cogan Chief Architect SSW SUPERCHARGE YOUR PROJECTS Live Backchannel: #AUTechEd #DEV316 (c) 2011 Microsoft.

Download Report

Transcript SESSION CODE: DEV316 Adam Cogan Chief Architect SSW SUPERCHARGE YOUR PROJECTS Live Backchannel: #AUTechEd #DEV316 (c) 2011 Microsoft.

SESSION CODE: DEV316
Adam Cogan
Chief Architect
SSW
SUPERCHARGE YOUR PROJECTS
Live Backchannel: #AUTechEd #DEV316
(c) 2011 Microsoft. All rights reserved.
Do you Use Scrum?
84% of agile projects use Scrum
► In a fixed chunk of time (2 or 4 weeks)
– Sprint Planning
– Sprint
• Daily Stand Ups
– Sprint Review
– Sprint Retrospective
► http://rules.ssw.com.au/Management/RulesToBet
terScrumUsingTFS
www.ssw.com.au/8Steps
The best bits about scrum
► Hand on heart commitment to PBIs for a sprint
► Product owner prioritizes the backlog
► Chicken and pig analogy
About Adam
►
Chief Architect at SSW
–
Developing custom solutions for businesses across a range of industries such as Government, banking,
insurance
►
►
►
►
Microsoft Gold Partner & Regional Director
ALM MVP & Professional Scrum Trainer
Speaker for Microsoft Roadshows, DevCon, VSLive, ODDC
Proud father of two little girls
►
@AdamCogan | www.adamcogan.com
Future Thinking. Immediate Results.
Agenda
► Project Managers
– Project Dashboard
– TFS is the source of truth
► Developers
– Rich Web
– Continuous Integration
– Debugging
► Testers
– Go from a manual testing to
a functional testing
– Focus on UX
Project Managers
www.ssw.com.au/8Steps
There are 3 kinds of project managers…
The Manager from Detroit
► Emails
► Word docs on C:\
► Sticky Notes
► Spreadsheets on C:\
The Manager from Chicago
► Excel + MS Project
on fileshare
► Manually updates
Excel + MS project
► Constantly asking
devs for updates
► Calls a lot of adhoc
meetings
The Manager from Trump Tower
► During sprint- Project Dashboard
–
–
–
Daily - Burn down
Daily - Stories Overview Report
Automated http://rules.ssw.com.au/Management/Ru
lesToBetterScrumUsingTFS/Pages/setup-2-key-reports.aspx
► Excel + MS Project Integration
► Task Board (Physical or Electronic)
► Have the team replying “Done” on each
task or story
► Have the testers testing on the “Done”
of each story
► Wiki
► Fixed 2 week sprint
► Uses TFS and SharePoint as a single
source of truth
Problems
The common problems that project managers face in their development life cycle
Moving from Harlem to Trump Tower
#1 Problem - Communicate and be visible
► Do you have a war room?
► This is going to be where all the action happens
What’s missing?
The Roadmap
Do you have a war room?
► Mockups
► Product Roadmap
► Definition of Done
► Task Board
► SSW Scrum Image
► http://rules.ssw.com.au/Management/RulesToBet
terScrumUsingTFS/Pages/WarRoom.aspx
#2 Problem – How do you manage tasks?
How do you keep track of tasks?
Email
Sticky notes
Some list
– Excel
– Word
Solution: Enter the tasks into TFS
► Excel
► Visual Studio
► MS Project
► Web Access
► Third Party Tools
– TeamCompanion*
– Telerik TeamPulse
– SSW SmashingBarrier
With TFS 2010, in regards to
“companies
that were using work
items, 90% of their use was in
Excel or the Visual Studio UI
”
Adam Cogan
Marlon
Marlon
John
MS Project Integration
MS Project 2007
MS Project 2010
Project Server 2010 Integration
Then in MS Project
► Organise the user stories
► Plan resources
► Add costs
Project automatically worked
out the best way to schedule
these tasks between the
developers
TFS vNext
► New TFS Web Access
– Built in MVC
– Metro UI
“
Once the next version of TFS is
released (say TFS 2012), then I predict
users will quickly discover the web UI
is the richest experience. Then we will
see 90% of web item use will be in the
browser
”
Adam Cogan
Drag and drop
reprioritizing
Drag PBI into sprint to
assign it
Burndown
Quickly break down PBIs
into tasks
Capacity Planning
(aka Who’s not pulling
their weight)
Drag and drop to change
state
#2 Problem - How do you know where the project is at?
How do you report progress?
Ask the developers
– “We’re 90% done”
► Or Schedule these two reports
– http://rules.ssw.com.au/Management/RulesToBette
rScrumUsingTFS/Pages/set-up-2-key-reports.aspx
► Or Dashboards
– Excel Services
– Reporting Services
Reporting Services Reports
http://rules.ssw.com.au/Management/RulesToBetterProjectManagement/
Pages/FindOutWhereTheProjectAt.aspx
Excel Web Services
► Allows customization of built in Excel
reports
► Allows you to upload new reports to your
portal
Do you use Project Server 2010?
How long will it take?
Project Blowouts
#3 Problem - Get your timesheets in!
Our office manager Ulys sends this
every Friday
Developers check in and update hours in TFS
Timesheets are already done (just need to
Send Timesheet)
#4 Problem – Where do you keep project related
files?
Where do you keep project related files?
Word Doc on C:\
Email
Working papers - Filing cabinet
SharePoint
www.ssw.com.au/ssw/standards/rules/rules
tobetterprojectmanagementwithtfs.aspx#
WikiOrDocLibrary
Solution: TFS Project Portal (SharePoint)
► Documents
– Requirements/Specifications
– Mockups
– Additional Information
► Server settings
– Username/Password
SharePoint Wiki
► Allows collaboration from Developers,
Project Managers and other stakeholders
► Quickly store important details:
–
–
–
–
Server details (Dev, Test, Production)
Usernames/Passwords for testing accounts
Change logs
Upcoming features
Developers also get quick access to docs
from Visual Studio 2010
#5 Problem - Communicate and be visible
► How do you know when your developer is
“Done”?
There are 3 levels of “Done” emails (missing
from Scrum)
1. Sending a “Done” email
2. Sending a “Done” email + screenshots +
code
3. Sending a “Done” email + video + code
1. http://screencast.com/t/ps17fqsV
The 7 Levels of “Definition of Done”
http://rules.ssw.com.au/Management/RulesT
oSuccessfulProjects/Pages/DoYouGoBeyond
DoneAndFollowADoneCriteria.aspx
How will I know when I’m done with the
story?
► Acceptance Criteria
► http://rules.ssw.com.au/Management/Rule
sToBetterScrumUsingTFS/Pages/Do-YourUser-Stories-Include-AcceptanceCriteria.aspx
#5 Problem - Communicate and be visible
► Use TWA
#5 Problem - Communicate and be visible
► Use Team Companion to connect your TFS with Outlook
http://rules.ssw.com.au/Communication/RulesToBetterEmail/Pages/DoneReply
AndDeleteEmail.aspx
What’s new for Scrum in 2011?
► http://www.scrum.org/scrum-guide-updates
The best bits about scrum
► Hand on heart commitment forecast of PBIs for a
sprint
► Product owner prioritizes orders the backlog
► Chicken and pig analogy
Developers
Developer from the West
► VS2010
► Build, Attach to w3wp to
Debug
► Deploy by copying DLLs
and install into GAC
► Update web.config
► IIS Reset
► Install VS2010 on server
for debugging
(w3wp.exe)
Developer from the Inner West
► Taking requirements
and asking for
acceptance criteria
► VS2010 + F5
► Uses MVC 3
► Smoke Tests
Jesus
► Unit Tests
► Check-in Policies
► Code Analysis + Style Cop +
SSW Code Auditor
► Continuous Integration with
Build Server
► Gated Check-ins
► Web Tests (Functional Tests)
► Continuous Deployment
► IntelliTrace
► Knows the right tools to use
www.ssw.com.au/8Steps
Use all the TFS Source Control Goodies
► All the good stuff
– Rollback, Compare Changes, Annotate, Merge
► Get the Aug 2011 Power Tools for:
–
–
–
–
–
–
Rollback in the UI
Work Item search
Build automation utilities
Maven 3 support (we already have Ant and Maven 2)
Test Attachment clean-up
http://msdn.microsoft.com/en-us/vstudio/bb980963
Check-in Policies
► Associate to Work Item
► Changeset Comments
► Testing
► Code Auditor
► http://www.ssw.com.au/ssw/Standards/Rul
es/RulesToBetterSourceControlwithTFS.asp
x#CheckInPolicy
How do you do mockups?
► By Hand?
► Balsamiq?
► Sketchflow?
► Visio?
► http://rules.ssw.com.au/Management/RulesToSu
ccessfulProjects/Pages/SpecificationByMockUp.a
spx
Coming in vNext
► PPT!
► Note: No output to code
► http://blogs.msdn.com/b/jasonz/archive/2011/0
5/16/announcing-alm-roadmap-in-visual-studiovnext-at-teched.aspx
Do you use NuGet?
The missing package manager
What is NuGet?
► Simplifies incorporating open source packages
into your projects
► Projects like:
–
–
–
–
–
ELMAH
jQuery
NHibernate
NUnit
log4net
Keep Packages Up-to-Date
Do you know the best alternative to .NET
Reflector?
Do you know the best alternative to .NET
Reflector?
► .NET Reflector bought by Red Gate (now $US
35+)
► Alternatives?
– Telerik – justDecompile – FREE
– JetBrains – dotPeek – FREE
– ILSpy - FREE
ILSpy
PowerPoint noise meter (uses microphone)
(c) 2011 Microsoft. All rights reserved.
RIAs
► Silverlight?
► HTML5?
PowerPoint noise meter (uses microphone)
(c) 2011 Microsoft. All rights reserved.
Q:\ Do you know how to improve your
Javascript and CSS?
► A:\ CoffeeScript, SASS or Less
► It’s the C# or VB.NET equivalent of writing for IL
► Abstractions for JavaScript and CSS
► Reduce lines of code
► Make JS & CSS manageable
How do I get it?
► Extension Manager
► http://visualstudiogallery.msdn.microsoft.com/2b
96d16a-c986-4501-8f97-8008f9db141a
CoffeeScript
CoffeeScript
CoffeeScript:
outer = 1
changeNumbers = ->
inner = -1
outer = 10
inner = changeNumbers()
Javascript:
(function() {
var changeNumbers, inner,
outer;
outer = 1;
changeNumbers = function() {
var inner;
inner = -1;
return outer = 10;
};
inner = changeNumbers();
}).call(this);
http://jashkenas.github.com/coffee-script/
SASS
► Syntactially Awesome StyleSheets
SASS – Giving you structure to CSS
SASS:
CSS:
#navbar {
width: 80%;
height: 23px;
ul { list-style-type: none;
}
li {
float: left;
a { font-weight: bold; }
}
}
#navbar {
width: 80%;
height: 23px;
}
#navbar ul {
list-style-type: none;
}
#navbar li {
float: left;
}
#navbar li a {
font-weight: bold;
}
SASS
► Also does:
– Variables
– Mixins (CSS class inheritance)
– Selector Inheritance
http://sass-lang.com/
LESS
Less – Variables & Functions for CSS
@the-border: 1px;
@base-color: #111;
@red:
#842210;
.header {
background-color: @red;
border-left: @the-border;
border-right: @the-border * 2;
}
.footer {
color: @base-color + #003300;
border-color: desaturate(@red, 10%);
}
LESS
► Does not compile on save
► Supported by Javascript less.js
<link rel="stylesheet/less" type="text/css" href=“teched">
<script src="less.js" type="text/javascript"></script>
Do you use HTML5?
Why write legacy?
Why HTML5?
► Cross Platform
► Cross Browser
► Mobile (aka iPad)
Get the Web Standards Update for Microsoft
Visual Studio 2010
► HTML5
► CSS3
► Note: Can also use Modernizr
► http://visualstudiogallery.msdn.microsoft.com/a1
5c3ce9-f58f-42b7-8668-53f6cdc2cd83
► Screen cap
Accounts at a Glance
http://weblogs.asp.net/dwahlin/archive/2011/08/15/building-the-account-at-a-glancehtml5-jquery-application.aspx
Account at a Glance
► ASP.NET MVC 3
► HTML 5
– *Modernizer
– *HTML5 Boilerplate
► *jQuery + Templates
► CSS3
► SVG

*EF 4.1 Code First

*Unity IoC

JSON and AJAX

SQL 2008

*NuGet
Do you know the best tools to help you
debug?
IntelliTrace
► Three main capabilities
– Record
– Playback
– Rewind
► x64 OS and SharePoint require VS 2010
SP1
Hit F5 and IntelliTrace starts recording
You can see the
SQL calls!
Mary
► Hits a bug
► Submits a bug
► Mary cant do a bad bug report anymore
► Mark – opens the bug
► Double clicks on the IntelliTrace file
► Fixes it
► Mark never needed to repro a bug
Debugger Canvas
► http://msdn.microsoft.com/enus/devlabs/hh227299
► VS 2010 Ultimate SP1 only
Continuous Integration + Build Server
► Goal is to:
– Build often
– Ensure that the code is good and
– We can deploy at any time
Develop an awesome app
Deploy!
Dev Team
Develop an awesome app with TFS
Runs unit tests,
code analysis
Dev Team
Check-in
Build Failed
Bad Code
Ready to Deploy
Develop an awesome app with TFS + Gated Check-ins
Reject check-in
Runs unit tests,
code analysis
Dev Team
Check-in
Build Failed
No problem with code
Ready to Deploy (you
can use some scripts to deploy
and activate)
Develop an awesome app with TFS + Gated Check-ins +
Lab Manager (for functional testing)
Runs unit tests,
code analysis
Dev Team
Check-in
Spins up a VM
Deploys app, runs unit tests,
automated tests, Coded UI
tests and custom scripts
Hyper-V
Lab Manager
Continuous Integration + Build Server +
Gated Check-In + Lab Manager
► Ensures good code quality
► Ensures no broken builds
► No more “It works on my machine”
► Quick deployment
► Sandboxed and “clean” testing
environments
► Automated testing
Testers
Tester from Liverpool
► Manual
► End user testing
► Click everything
Tester from Manchester
► Unit tests
► Web Tests
Tester from Westminster
► Unit Tests
► Web Tests
► Load Tests
► Microsoft Test
Manager + Lab
Management
► Third Parties
– Telerik Test Studio
Development lifecycle
We have built our
code
Q: We are now ready
to give it to testers.
Right?
Bad test
Good test
Development lifecycle
We have built our code
Wrong. We are now ready to give it to testers
The first thing you should be doing is to
create unit tests on fragile code
http://www.ssw.com.au/ssw/Standards/Rules/
RulesToBetterUnitTests.aspx#RegEx
Why create automated tests?
► No resource needed
► Quicker feedback
► Tools are more
reliable
► Test on multiple
operating systems
and configurations
with Lab manager
► Testers can
concentrate on
usability
Types of tests
► Smoke testing
► Unit tests?
► Integration testing
► Functional testing
► Load testing
Web Tests
► Basic web URL testing
► Able to post forms and check returned
content
► Cannot interact with web page (e.g. AJAX)
01
Web Test + Load Test
► Checks the main pages load correctly
► Can test every page (e.g. Products)
► Can simulate some load
– Note: Limited to about 100 test users per computer
before the network fails, run on many computers to
simulate more users
– Load Test Feature Pack http://msdn.microsoft.com/enus/library/gg701769.aspx
Coded UI Tests
► Can test win forms and web forms
► Imitates a physical user interacting with an
application
► Can interact with webpage (e.g. AJAX)
► Test IE and FireFox
02
Javascript Unit Tests with QUnit
► http://docs.jquery.com/QUnit/
function calculateSalesTaxWithRounding (amount) {
return amount * 0.1;
}
$(document).ready(function () {
test("Calculate Sales Tax Test 2", function () {
var expected = 10;
var actual = calculateSalesTaxWithRounding(9.08);
equal(actual, expected, "We expect actual to be " + expected);
});
3rd Party
Telerik Tests
► Can test web forms
► Imitates a physical user interacting with an
application
► Can interact with webpage (e.g. AJAX)
► Maintenance is great
► Tests all 4 browsers
03
Speed of tests
► Choosing the right type of test is
important
Test Comparison
VS Web Test
VS Coded UI
Telerik Web UI
Cross browser
Yes (IE, FF)
No (Make
separate tests)
Yes (IE, FF, Safari,
Chrome)
Test Silverlight
No
Yes (Feature Pack
2)
Yes
AJAX support
No
With Pauses
Yes
Validate speed of page load
Yes
With Code
With Code
Run load test
Yes
Yes
No
Click on elements in page
No
Yes
Yes
Easy to edit
Yes
No
Yes
Load Testing
► Is a test that simulates the expected user
load
“
... An extra 500ms in latency cost us 20% of our search traffic...”
Google
3rd Party
Load Storm
► A online test
► Free (if you use 25 concurrent users)
► Can buy more users for on demand testing
► Dynamically spawn virtual users from Amazon
EC2 and Windows Azure to hit your website
► http://loadstorm.com/software-testing-tools
Sometimes you will get funny results…
Q:\ What happened
here?
A:\ Flood protection on
firewall
Q:\ What happened
here?
A:\ Amazon EC2 went
down
Sometimes you will get funny results…
► Make sure flood protection is turned off (DDoS –
Distributed Denial of Service)
– Blocks IPs after X requests in 30 seconds for 1 minute
► Check
http://www.downforeveryoneorjustme.com/
Releasing and Going Live
► Rules that will help you before you release into
the wild
www.ssw.com.au/8Steps
Do you have a deployment plan
► Definition of Done
► Acceptance criteria
► Deployed to staging
► Signed off by PO
► Check zsValidate
► Rollback plan
http://rules.ssw.com.au/Management/RulesToSucc
essfulProjects/Pages/Do-you-have-a-deploymentplan.aspx
Do you conduct a Retrospective Meeting?
www.ssw.com.au/8Steps
Retrospective
► Adjustment to “Definition of Done”
► Improve processes
– Check your agility index
► Update rules and standards
► http://rules.ssw.com.au/Management/RulesToBet
terScrumUsingTFS/Pages/RetrospectiveMeeting.
aspx
Summary
► Project Managers
– Project Dashboard
– TFS is the source of truth
► Developers
– Rich Web
– Continuous Integration
– Debugging
► Testers
– Go from a manual testing to
a functional testing
– Focus on UX
Resources & Links
► http://rules.ssw.com.au
.NET User Groups
► Free
► Monthly Meetings
– www.ssw.com.au/NETUG
Evals + 2 things
► What is your favourite rule?
@adamcogan
Or
[email protected]
Thank You!
Sydney | Melbourne | Brisbane | Adelaide
[email protected]
www.ssw.com.au
Delivering Awesome Web Applications
Questions?
or a beautiful business card.
Win a Touch Mouse!
Complete your session
evaluation on Schedule Builder
for your chance to win a
Windows 7 Touch Mouse
► Exclusive for Windows 7
► Eleven multi touch gestures
► Contoured shape for superior
comfort
10 prizes drawn every day!*
*Please see Registration for full terms and conditions
GET REWARDED FOR
SIMPLY PARTICIPATING
IN TECH∙ED AUSTRALIA
DOWNLOAD QR CODE READER
FOR YOUR MOBILE DEVICE
► Windows Phone 7 we suggest Quick Reader
► Symbian we suggest the built in reader or mobile Tag
► IOS we suggest QR Reader
► Blackberry we suggest Mobile Tag
► Android phones we suggest Barcode Scanner
GO TO THE TECHQUEST WEBSITE
WWW.TAGLY.COM & CREATE A PROFILE
EXAMPLE ONLY
© 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other
countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing
market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this
presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
(c) 2011 Microsoft. All rights reserved.
Resources
www.msteched.com/Australia
www.microsoft.com/australia/learning
Sessions On-Demand & Community
Microsoft Certification & Training Resources
http:// technet.microsoft.com/en-au
http://msdn.microsoft.com/en-au
Resources for IT Professionals
Resources for Developers
(c) 2011 Microsoft. All rights reserved.