development projects failing? what can the business analyst do?

46
The Smarter Everyday project is owned and operated by CTE Solutions Inc. Jean-Francois Bilodeau [email protected] Why Development Projects Fail?

Upload: cte-solutions

Post on 18-Dec-2014

172 views

Category:

Education


0 download

DESCRIPTION

This seminar strives to explore why development projects often fail to deliver and what the BA can do about it. Though there are no magic solutions that will fix development challenges, there are industry recognized practices that can help the BA or PM strive to keep the work on track and deliver value to the client on time. The first half of the presentation explores the cause of development project failures and the second half presents practical and applicable solutions that any BA or PM can bring back to their team.

TRANSCRIPT

Page 1: Development Projects Failing?  What can the Business Analyst Do?

The Smarter Everyday project is owned and operated by CTE Solutions Inc.Jean-Francois

[email protected]

Why Development Projects Fail?

Page 2: Development Projects Failing?  What can the Business Analyst Do?

About J-F

● 20+ years of professional experience● Certified in Java, Delphi & C#● Practical BA and project management

experience

Page 3: Development Projects Failing?  What can the Business Analyst Do?

Overview

● Let's talk about:– Why project fail and succeed– Activities that BAs should do– Intergrating BA with the development project– Dealing with changes– Testing

Page 4: Development Projects Failing?  What can the Business Analyst Do?

Caveat!

● This is a descriptive presentation – not prescriptive

● No magic potion or silver bullets

Page 5: Development Projects Failing?  What can the Business Analyst Do?

Why Project Fail?

● Is it because of:

– Poor leadership?

– Poor requirement?

– Lack of technical skill?

– Poor communication?

– Client changing their minds?

– Changes in business?

– Changes in technology?

● List is not comprehensive

● First four are internal and can be controlled

● Last three are external and must be managed

Page 6: Development Projects Failing?  What can the Business Analyst Do?

Let's flip that around...

Page 7: Development Projects Failing?  What can the Business Analyst Do?

Why Project Succeed?

● Is it because of:– Good leadership?– Good requirements?– Good technical skills?– Good communication?– Managing changes?

● 'Good enough' is good enough

Page 8: Development Projects Failing?  What can the Business Analyst Do?

What can a BA do about it?

● A BA plays a leadership position (yes, really!)

● BA is responsible for requirements

● Technical skills may not be necessary for a BA, but are handy

● BA is all about communication

● BA must be responsive to changes

Page 9: Development Projects Failing?  What can the Business Analyst Do?

A BA by any other name...

● The role of a BA can be synthetized into two distinct responsibilities:– A BA is responsible to ellicit and understand

requirements– A BA is responsible to communicate and

validate implementation of requirements

Page 10: Development Projects Failing?  What can the Business Analyst Do?

“But wait! That's not how we do things!!?!”

● Yes, I know– Every development team is unique– Every development endeavour is also unique

● Are you a BA by name or by function?● What is under your control or influence?● What is outside your control or influence?● Write it down!

Page 11: Development Projects Failing?  What can the Business Analyst Do?

My BA Control Sheet

What can I control What can I not control

I can start by creating such a table...

Page 12: Development Projects Failing?  What can the Business Analyst Do?

How can I help my project succeed?

● Know the difference between poor, good and great requirements– Poor is of little to no value to the development team– Good provide value to the development team– Great provice immediate and measurable value to the development

team

● A 300 page requirement binder does not equate great requirement

● Good enough is often synonimous with great

Page 13: Development Projects Failing?  What can the Business Analyst Do?

How can I help my project succeed? ../2

● Prioritize!

– Spend effort on high-value and high-risk requirements before low-value or low-risk requirements

● Do you know what your client considers important about the endeavour?

– Is it in writing?

● Do you understand what are the risks?

– If not, ask!

Page 14: Development Projects Failing?  What can the Business Analyst Do?

How can I help my project succeed? ../3

● Requirements should not be locked away– How easy is it for your development team to

access the requirements?– How early will they have access to the

requirements?

Page 15: Development Projects Failing?  What can the Business Analyst Do?

So, to succeed:

● The BA needs to create great requirements!● Easier said than done...

– How do I know my requirements are correct?– How do I deal with changes?– How can I ensure that the client is getting ROI?

Page 16: Development Projects Failing?  What can the Business Analyst Do?

Does this look familiar?

Page 17: Development Projects Failing?  What can the Business Analyst Do?

The Waterfall Model

● What's wrong with this picture?● How can we assume that requirements are correct from

the very get-go?● Any flaws in our requirements will trickle down● Flaws might only be discovered late into the testing

phase● Sounds familiar?

Page 18: Development Projects Failing?  What can the Business Analyst Do?

The (unfortunate) origin of the Waterfall Model

● Popularized by the paper “Managing the Development of Large Software System”

● Published in 1970 by Wiston W. Royce● Never used the term Waterfall● Argued against the waterfall model

Page 19: Development Projects Failing?  What can the Business Analyst Do?

What Wiston Meant

Page 20: Development Projects Failing?  What can the Business Analyst Do?

In other words...

● Software are not built...they are 'grown'● It is dangerous to assume that requirements

can gathered and be correct in a single pass● It is dangerous to assume that testing needs

to be performed in a single pass

Page 21: Development Projects Failing?  What can the Business Analyst Do?

Grown...Not Built

● Houses are built. Roads are built. Bridges are built● Software is grown● No two house or road or bridge can be build the same

– Designs may be shared– Different terrain, material, etc...– Once a bridge is build, it cannot be copy-pasted

● Developing software is more akin to designing a house than building a house, road or bridge

● Once software is written, it can be copied and pasted

Page 22: Development Projects Failing?  What can the Business Analyst Do?

Grown...Not Build ../2

● The BA plays the role of the architect– (Not that of the technical architect!)

● Just like architectural drawings gives a sense of the final product The requirements paint a picture of the finished software– The requirements are not the finished product!

● Until the product is complete, it is difficult—if not impossible—to fully test the requirements

Page 23: Development Projects Failing?  What can the Business Analyst Do?

Would you buy a car if...

● The dealer got you to fill out a questionaire and choose the vehicle for you?

● The dealer gave you only rough drawing of the vehicle?

● You had a chance to sit down in it and test drive it?● The same applies to software

Page 24: Development Projects Failing?  What can the Business Analyst Do?

How do you test requirements?

● With working software● With the client● Early● Often

Page 25: Development Projects Failing?  What can the Business Analyst Do?

How do you test requirements?

● Get to the 'test phase' as quickly as possible!

● Prioritize base on value and risk● Stop using the waterfall

Page 26: Development Projects Failing?  What can the Business Analyst Do?

Stop Using the Waterfall

● “How can we develop software if we don't have requirements??!?”

● You do not need all the requirements before you get started– Not even most– Not even a lot

● Work with the development team as a unified whole

Page 27: Development Projects Failing?  What can the Business Analyst Do?

BA and the Development Team

● The BA is an integral member of the team● The BA is the 'interface' between the client and the

developer● The BA is involved from the beginning to the end of

the project● There should not be 'BA/Development Team'

dichotomy

Page 28: Development Projects Failing?  What can the Business Analyst Do?

Moving Beyond the Waterfall

● It's OK to do work concurrently!

Page 29: Development Projects Failing?  What can the Business Analyst Do?

Modern Development Methodology

● It's not just a good idea—is the norm● Commonly called 'Iterative'

Page 30: Development Projects Failing?  What can the Business Analyst Do?

Iterative Software Development

● Work in Timeboxes● Goals defined before the start of an iteration● Goals are not limited to implementating features● Goals can include:

– Work on requirements– Update/review our understanding of value/risk– Prepare for testing, test and report on test

Page 31: Development Projects Failing?  What can the Business Analyst Do?

An Iteration

Iteration

Define Goals

Start End

Review(Goals Achieved?)

Page 32: Development Projects Failing?  What can the Business Analyst Do?

Are You Doing Iterative?

● Most development teams 'claim' to work in an Iterative fashion– Do your iteration have a written list of goals?– Are those goals developped with the team?– Do your timeboxes have a start and end date?– Do you respect the start and end of your timeboxes?– Were any test run during your iteration?– Where are your test reports?

Page 33: Development Projects Failing?  What can the Business Analyst Do?

Iterative Development and the BA

● BA needs to be involved from start to finish● Multiple incremental deliverable● Client gets a chance to test-drive the product

early● Client can provide feedback and validation early

– But what if the client changes their mind??!?

Page 34: Development Projects Failing?  What can the Business Analyst Do?

Software Development and Change

● How many BAs ever worked on a project that required changes to their requirements?

● How many Bas ever worked on a project that required no changes to their requirements?

● Change is not an exception—it's normal!● Remember: It is difficult, if not impossible to know

everything from the get-go

Page 35: Development Projects Failing?  What can the Business Analyst Do?

Dealing with Changes

● Change is a reality in the software development field– Otherwise, would we will have a job ;)

● It's not a question of protecting against—or resisting—changes, but to manage changes

Page 36: Development Projects Failing?  What can the Business Analyst Do?

How to Deal with Changes

● Agile Project Management● Developped in 2001 by 17 software

developers● Intergrates naturaly with iterative● Agile is a philosophy—not a method!

Page 37: Development Projects Failing?  What can the Business Analyst Do?

Agile Manifesto:

● We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

– Individuals and interactions over Processes and tools– Working software over Comprehensive documentation– Customer collaboration over Contract negotiation– Responding to change over Following a plan

● That is, while there is value in the items on the right, we value the items on the left more.

● http://agilemanifesto.org/

Page 38: Development Projects Failing?  What can the Business Analyst Do?

Agile and Iterative

● Two separate approach

but

● Integrate naturally● Spread from software development into

most project management disciplines

Page 39: Development Projects Failing?  What can the Business Analyst Do?

Caveats!

● Agile and Interative is not a free-for-all!– Requires discipline

● Requires good leadership● Test, test, test

Page 40: Development Projects Failing?  What can the Business Analyst Do?

BA and Testing

● The BA is not the tester● The BA is accountable for the testing!● The BA works with the test team and

ensures that they can and do the tests

Page 41: Development Projects Failing?  What can the Business Analyst Do?

BA and Testing ../2

● Do you:– have a test team?– have a test plan?– have a test lab?

● If not, are they on your iteration goals?

Page 42: Development Projects Failing?  What can the Business Analyst Do?

In summary...

● Prioritize base on value and risk● It's OK for the team to work in parallel● It's OK to start writing code while requirements are

begin gathered● Change happens and it's normal. Manage it● It's OK Necessary to start testing as soon as possible

Page 43: Development Projects Failing?  What can the Business Analyst Do?

Homework

● Write down what you can and cannot control● Identify what your client considers value● Identify risks that would put the endeavour in jeopardy● Write down short term goals that you need to achieve● Commit to a date for the above goal and review them

when that date rolls around.

Page 44: Development Projects Failing?  What can the Business Analyst Do?

Final Wisdom

Write a list of short-term and long-term goals you would like to achieve as a BA

then

Take small, incremental steps to reach those goal

Page 45: Development Projects Failing?  What can the Business Analyst Do?

Training with impactTECHNICAL MANAGEME

NTBUSINESS

MicrosoftVMwareCloud ComputingIT and Cyber SecurityCompTIAJava Programming-LanguagesNovellUNIX

TOGAF Enterprise ArchitectureITILCOBiTAgile and ScrumBusiness AnalysisProject Management

Change ManagementCommunication SkillsLeadership SkillsNegotiation SkillsProblem Solving SkillsFacilitation Skillsand many more…

Page 46: Development Projects Failing?  What can the Business Analyst Do?

CTE Solutions Inc. - Ottawa11 Holland Avenue, Suite 100Ottawa, Ontario, K1Y 4S1 Tel: (613) 798-5353Toll Free: 1 (866) 635-5353Fax: (613) 798-5574  CTE Solutions Inc. - Toronto77 Bloor St. West, Suite 1406Toronto, Ontario M5S 1M2 Tel: (416) 284-2700Toll Free: 1 (866) 635-5353Fax: (416) 284-6797