Kuali Financial Systems: Development Methodology

44
Kuali Financial Systems: Development Methodology & Project Management Jim Thomas KFS Project Manager [email protected]

Transcript of Kuali Financial Systems: Development Methodology

Page 1: Kuali Financial Systems: Development Methodology

Kuali Financial Systems:

Development Methodology & Project Management

Jim ThomasKFS Project [email protected]

Page 2: Kuali Financial Systems: Development Methodology

Introduction

• Interactive session

• Brainstorming session

• Maybe even have some fun!

…..Well, as much fun as we can have talking about “Project Management”.

Page 3: Kuali Financial Systems: Development Methodology

Introduction

Imagine what it might be like managing a higher ed community source project…..

At first, I imagined something like this…..

Page 4: Kuali Financial Systems: Development Methodology

Introduction

Perhaps surprisingly to some, KFS hasn’t been like that. Rather, we have seen…

• Decisions getting made• Deadlines and commitments being honored• Collaboration for the good of higher education• Sacrificing local needs for the overall good of the project

This does not mean to imply it has been EASY.

Clearly defined principles, goals, org structure, and processes have helped.

Page 5: Kuali Financial Systems: Development Methodology

KFS Project Management

• Overall Project structure

• Communications

• Productivity Tools

• Development Methodology

• Project Timeline

• Lessons Learned

• Q&A

Page 6: Kuali Financial Systems: Development Methodology

Organization

Page 7: Kuali Financial Systems: Development Methodology

KFS Org Chart

KFS Board

KFS Functional Council

KFS ProjectManager

SMESubcommittees *

DevelopmentTeams by Module *

Kuali TechnicalCouncil

* multiple teams

Page 8: Kuali Financial Systems: Development Methodology

KFS Org Chart - Functional

KFS FunctionalCouncil

SMESubcommittees*

QA ManagerTesting

Coordinator

Lead SMEBusinessAnalyst

SMEs Testing Teams

Module Testers* multiple teams

Page 9: Kuali Financial Systems: Development Methodology

KFS Org Chart - Development

KFS ProjectManager

Development Teams *

QA ManagerTesting

Coordinator

DevelopmentManagers *

Lead Developer

Developers

Testing Teams *

Module Testers

* multiple teams

Page 10: Kuali Financial Systems: Development Methodology

KFS Org Chart – Technical Council

Kuali Technical Council(KTC)

- Establish and maintain development standards and methodology

- Establish and maintain technical architecture

- Resolve technical issues- KTC is not involved in day-to-day

operational decisions

Page 11: Kuali Financial Systems: Development Methodology

KFS Org Chart

We are a community

Page 12: Kuali Financial Systems: Development Methodology

Question?

Page 13: Kuali Financial Systems: Development Methodology

Another Question?

How about these guys?

Page 14: Kuali Financial Systems: Development Methodology

Guiding Principles

Page 15: Kuali Financial Systems: Development Methodology

Guiding Principles

• KFS is based on existing FIS functionality and design

• Changes are approved by KFS Functional Council and/or Kuali Technical Council

• Maximize commonality of business practices• Make configurable as much as possible given time

and resource constraints• Burden of proof falls on advocates for change to

show benefits exceed costs• Changes subject to “The Reality Triangle”

Page 16: Kuali Financial Systems: Development Methodology

The Reality Triangle

Scope(KFSFunctionalCouncil) Time

(Project Mgr)

Resources(KFS Board)

Page 17: Kuali Financial Systems: Development Methodology

Communications

Page 18: Kuali Financial Systems: Development Methodology

KFS Communication Challenges

Time zones! Including varied observance of DST!

Page 19: Kuali Financial Systems: Development Methodology

KFS Communication Challenges

• Physical location of staff. In many cases, miles away from each other

• Numbers of people working on the project

• Different ways of doing things

• Different communication styles

• Various levels of experience on the KFS project

Page 20: Kuali Financial Systems: Development Methodology

KFS Communications

• Bi-weekly Board Meeting (used to be weekly)• Weekly Functional Council Meeting• Weekly Development Managers Meeting• Weekly Lead Developers Meeting• Weekly SME Subcommittee Meetings (or as

needed)• Bi-weekly Technical Council Meeting• Quarterly face-to-face meetings of Board, FC, and

development teams (most important!)

Page 21: Kuali Financial Systems: Development Methodology

KFS Meeting Protocol

• Meetings have agendas in advance• Only meet when necessary• Meeting minutes posted • Decisions and action items from meetings

documented and tracked (important! Otherwise, decisions get lost or forgotten!)

• Set deadlines for decision-making AND follow up

Page 22: Kuali Financial Systems: Development Methodology

KFS Communications Tools

Reports and documents– Weekly PM Status Reports– Weekly SME Subcommittee Status Reports– Meeting Minutes– Specification Documents– Scope Document– Technical documentation – configuration, tools,

frameworks, etc

Page 23: Kuali Financial Systems: Development Methodology

KFS Communications Tools

Remote Communications– Video Conferencing– Email lists– IM– VOIP (Skype)– Breeze (web conferencing)

Page 24: Kuali Financial Systems: Development Methodology

KFS Communications Tools

Project Organization and Coordination – Confluence from Atlassian (wiki pages for

documentation, collaboration, etc)– JIRA from Atlassian (task tracking)– Sakai (document sharing, email archive, etc)– MS Excel and Project for project plans and

Gantt charts

Page 25: Kuali Financial Systems: Development Methodology

KFS Communications Tools

Most obvious statement of the day: Communication is key

A formally defined communications plan helps

Effective communications evolve over time• Team learns what works and what doesn’t with

experience• Needs change as stage of the project changes

Page 26: Kuali Financial Systems: Development Methodology

Development Methodology

Page 27: Kuali Financial Systems: Development Methodology

KFS Development Methodology(in a nutshell)

Development Teams• 1 Development Manager• 1 Lead Developer• Small, cohesive teams of 3 to 7 developers• Work with Lead SME and Business Analyst to get

specifications• Work with Testing Coordinator to review reported

bugs• Work with module subcommittee to prioritize

bugs

Page 28: Kuali Financial Systems: Development Methodology

KFS Development Methodology(in a nutshell)

Development Environments• CVS Repository for source control• Regularly scheduled and published builds of test

environments– Unit testing (daily)

– CNV, early functional testing (daily)

– REG, stable functional testing (weekly)

– Kuali Test Drive, production demo site (at each release)

• Continuous Integration Environment

Page 29: Kuali Financial Systems: Development Methodology

KFS Development Methodology(in a nutshell)

Development in Practice• Frequent and ongoing communication with module SMEs,

business analyst, and testers• Work from a documented specification (or in a pinch, refer

to the FIS code)• Adhere to development standards defined by KTC• Make use of the core infrastructure components (KNS)

whenever possible for code reuse and productivity gains• Quarterly face-to-face meetings/focused development

effort• Regularly update project plans

Page 30: Kuali Financial Systems: Development Methodology

KFS Development Methodology(in a nutshell)

Speaking of project plans, with developers, sometimes you have to dig a bit to get under the surface. A slightly exaggerated case …..

Page 31: Kuali Financial Systems: Development Methodology

KFS Development Methodology(in a nutshell)

Standard set of supported development tools• Java IDE – Eclipse• Source Code Management – CVS• Continuous Integration – Anthill Pro• Application Server – Tomcat 5.5.x, Sun

JDK 1.5.x• Web Server – Apache 2• Database – Oracle, MySQL• Build and Deployment – Ant

Page 32: Kuali Financial Systems: Development Methodology

KFS Development Methodology

How are we doing? How will we measure “success”?

My criteria:

• Are we delivering working code that provides functionality our SMEs expect?

• Are we meeting our deadlines?

• Do we have successful implementers?

Page 33: Kuali Financial Systems: Development Methodology

Rate the Quality of a Software Team

using “The Joel Test (by Joel Spolsky)” http://www.joelonsoftware.com

• “Do you use source control?” Yes +1• “Can you make a build in one step?” Yes +1• “Do you make daily builds?” Yes +1 • “Do you have a bug database?” Yes +1• “Do you fix bugs before writing new code?” Most of the time but not a written rule +0.5

Page 34: Kuali Financial Systems: Development Methodology

The Joel Test (continued..)http://www.joelonsoftware.com

• “Do you have an up-to-date schedule?” Yes +1• “Do you have a spec?” Yes +1• “Do programmers have quiet working

conditions?” Some do, some don’t +0.5• “Do you use the best tools money can buy?” Yes +1• “Do you have testers?” Yes +1

Page 35: Kuali Financial Systems: Development Methodology

The Joel Test (continued..)http://www.joelonsoftware.com

• “Do new candidates write code during the interview?”

Some do, some don’t +0.5

• “Do you do hallway usability testing?”

Sometimes but we also make use of usability consultants +1

Page 36: Kuali Financial Systems: Development Methodology

The Joel Test (continued..) http://www.joelonsoftware.com

A score of 12 is perfect. Microsoft runs at 12. (OK, they aren’t “perfect” but they do develop some pretty good software including that which is running this presentation )

KFS “Joel Test” score is about 10.5! That’s not too bad!

(According to Joel, most software companies are much lower……)

Page 37: Kuali Financial Systems: Development Methodology

Project Timeline

Page 38: Kuali Financial Systems: Development Methodology

KFS Project Timeline

Page 39: Kuali Financial Systems: Development Methodology

Lessons Learned

Page 40: Kuali Financial Systems: Development Methodology

KFS Lessons Learned(so far….many more to come)

• Regular face-to-face meetings are a MUST• Do not “squeeze” the QA cycle• Keep things simple• Have a deadline for making decisions. If

consensus cannot be achieved in a timely manner, vote on it

• Monitor productivity closely – Are specs going to be ready when developers are ready? Are developers making reasonable progress?

Page 41: Kuali Financial Systems: Development Methodology

KFS Lessons Learned(so far….many more to come)

• It is a challenge keeping technical documentation up to date

• Avoid going “tool crazy” – use what you’ve got and only introduce new tools when VERY compelling evidence suggests that you should.

• Provide numerous opportunities for communication across development teams

• Code reviews and Infoshares are valuable tools for teaching new developers and keeping things consistent across teams

Page 42: Kuali Financial Systems: Development Methodology

KFS Lessons Learned(so far….many more to come)

• Automated unit testing has been a challenge but is paying off. We’ve learned a lot along the way.

• Pure TDD is difficult to implement and sustain• Centrally manage core infrastructure development• Recognize and avoid “perfectionist” tendencies

that come from knowing code will be shared with world

• Functional staff are extremely valuable and typically the most scarce resource. They still have their “day” jobs and have years of expertise that can’t easily be taught to new staff.

Page 43: Kuali Financial Systems: Development Methodology

Sound like fun?

Want to get more involved in the Kuali Financials Community?

Do you have experienced Java Web Developers? We need them and there is no better way to learn the software

orJoin the Kuali Partners Program (details at

http://www.kuali.org/about/partners.shtml)

Page 44: Kuali Financial Systems: Development Methodology

KFS Project Management

Questions?

Ask now or email

[email protected]