an introduction to software development - ending an iteration, part 1

17
An Introduction To Software Development Using Python Spring Semester, 2014 Class #17: Ending an iteration, Part 1

Upload: blue-elephant-consulting

Post on 19-Jul-2015

78 views

Category:

Education


3 download

TRANSCRIPT

An Introduction To Software

Development Using Python

Spring Semester, 2014

Class #17:

Ending an iteration, Part

1

Where Do We Stand Now?

• User stories and tasks are complete.

• The software development team has been working hard.

• Next:

– How can we spend any extra time that we have?

– How can we fit user testing in?

– Can we do more refactoring or redesign?

– When will we ever fix those bugs?

Image Credit: thecommunicationsstrategist.wordpress.com

Software Development DashboardUser Stories

Burn Down

Next

Completed

Work

Left

Days Left

89

80 60 40 20

Pay with

Visa

Pay with

MCPay with

Paypal

3

3

5

CompleteIn Progress

Pay with Visa / MC / Paypal

What We’ve Accomplished

• Customer driven functionality

• Compiling code

• Monitored builds

• Continuously tested code

• Solid test coverage

• Reliable process tracking

• Pacing that adapts to the team

Test driven development

and automated testing

means

that the code works and

you’ll know if it stops

working!

The burn down graph and your use of velocity means that

your

schedules have real dates and deliverables.

You will know if someone tries to check-in code

that won’t build because of continuous

integration.

Based on user stories and frequent customer

interaction

Image Credit: www.canstockphoto.com

What Most Iterations Don’t Have

• Process improvements

• System testing

• Refactoring of code using lessons learned

• Code cleanup and documentation updates

• Development environment updates

• R&D on new technology being considered

• Personal development time

How can you improve your process next time?

Image Credit: www.clipartof.com

System Testing

• Have to use the system in order to ensure that it works.

– Dedicated end-to-end system testing period

– Let the real users work on the system

• Test the system in a situation that is as close to real-world as is possible.

• System testing is all about reality – the system as a whole, not the individual parts.

Image Credit: cpsobsessed.com

Why Do System Testing?

• Unit testing is a great way to make sure that your specific piece of code works.

• Unit testing can miss the bugs that only show up when different pieces of code are hooked together or when real users start to use the system.

• System testing hooks everything together and treats the system like a black box. The goal is to test the functionality that the user expects.

System testing exercises the functionality of the

system from front-to-back using real-world,

black box scenarios.

Image Credit: joyin6th.blogspot.com

Who Will Do The System Testing?

• Developer Testing

– Already know how the system works

– Know how things work underneath the covers

– Hard to put themselves in the role of a user

• Tester Testing

– Bring a fresh perspective

– Trying to find bugs

– Just want the system to work

Bob

Jane

Image Credit: www.clipartpanda.com

You Need A System To Test!

• You won’t have extra days in your iteration for testing

• You won’t have a system to test until the end of your iteration

• Minimum requirement: the system needs to be system tested at the end of every iteration

– System will not have all of its functionally in the early iterations

– Some user stories will be complete and can be tested

Testing should be done all along – unit

testing. No complete system to test…

A complete system to test

will not be available until the

end of the iteration.

Good System Testing Requires Two Iteration Cycles

• Iterations allow the development team to stay focused

• Provide checkpoints with customers

• You need the same things for good system testing

• How about having two cycles of iteration going at the same time?

Iteration1

Iteration2

Iteration3

FixBugs

Prep for IT

1

Test It. 1 Build

Test It. 2 Build

Test It. 3 Build

Test team signs off on working

version

Mo Iterations Means Mo Problems

• Communication problems

– Inter-team communication issues

– Problem: testing team has questions about last iteration and development team wants to move on

– Solution: Involve testing team rep in development meetings

Image Credit: barbaradenny.com

Mo Iterations Means Mo Problems

• Limited amount of time available for testing

– Need to keep both iterations in synch

– Forcing testing to fit into a limited amount of time

– Need testing estimates for user stories

– Will show you where testing may get hung up

Image Credit: galleryhip.com

Mo Iterations Means Mo Problems

• Fixing bugs while still developing new code

– Development team gets bug reports on 1st iteration while they are working on the 3rd iteration

– Decision: fix immediately, fix in next version, put off for later on

– Treat each bug like a new user story and prioritize accordingly

– Alternative: save time during each iteration to work on bugs

Image Credit: galleryhip.com

Mo Iterations Means Mo Problems

• Dealing with a moving target

– Functionality in user stories can change

– This can frustrate the testing team

– The key is communication!

– Let everyone know when you think something might change

– Make sure that testing team knows that change may occur

Image Credit: www.dreamstime.com

More Iterations =More Communication

• Messy issues: multiple team members, changing requirements, incomplete requirements

• More iteration cycles means more of the same issues – no new issues

• Use your tools to stay in touch with the development team and the testing team

The key to solving most of the problems that you’ll run into while doing

software development is communication. When in doubt, talk with your

team, other teams, the customer, etc…

Image Credit: www.clipartpanda.com

What We Covered Today

1. System testing

2. Iteration problems

Image Credit: http://www.tswdj.com/blog/2011/05/17/the-grooms-checklist/

What We’ll Be Covering Next Time

1. Ending an iteration, Part 2

Image Credit: http://merchantblog.thefind.com/2011/01/merchant-newsletter/resolve-to-take-advantage-of-these-5-e-commerce-trends/attachment/crystal-ball-fullsize/