She's an architect by training and license, but became a software developer at UTexas through this program over the past 16 years.
She has a staff of about 50 application writers and production staff.
Have decentralized applications development - e.g. student records have about 25 folks, as do financial systems people.
Key elements of extreme programming
- communication - can be no repercussions, group mentaility of
success
- simplicity - non technologists come with no preconceived ideas.
Use simple tools, keep simple ideas.
- feedback
- courage
Are there really variables in university software development?
- quality? no - only excellent and insanely excellent are acceptable
- time? little - driven by external schedules
- Resources? adding resources is seldom effectual
- Scope? YES! can address what is deliverable by breaking project into small pieces.
Key elements of XP methodology
- reliance on SCOPE
- quality work - do it once, do it right
- involvement of business experts - important at all levels. have to have articulate and involved business experts. Working with them, they learn to articulate what they do daily.
- incremental development and release - do a little, get it out, see how it works
- continuous testing - run unit tests daily, run functional tests weekly. Taking the time for testing is incredibly important - time needs to be set aside.
- embracing change. if you've done short iterative work, throwing a piece away because you've gone wrong isn't earth-shattering.
- Accepted responsibility - people are expected to step up and choose to take on pieces of the project. Try to run on weekly schedules - no longer. Never think beyond next Saturday - lots of standup meetings in the mornings.
- Local adaptation - how does this fit in local culture?
- Teach Learning - it's ok to experiment and learn - failure tolerated, because of the short increments.
- Play to win - not literal specs, but collaboration, going forward together as partners.
- Work with people's instincts - people like to succeed. Hire staff on their communication skills and interest in working with people.
- Small initial investment
UT - the basics
- six month training program made up of 12 challenges that people need to complete. Each challenge has a different manager, and is evaluated separately. Work in bullpen, like the XP model of everyone working in the same space - they reinforce each other.
- Limited but robust and veratile toolset - Natural plus a local web scripting language that compiles to Java.
Developer efficiency tools - parsers, job generators, etc.
XP stresses understanding the business needs.
Common protocol - this is the way you design an application in this language.
Just rewrote developer documentation, do coding bits, public forum discussions, etc for coding standards.
XP stresses an onsite customer during development, pairs programming, and teaching learning. At UTexas the developers become part and parcel of the business units.
"Versioning" - a new delivery method
Semi-annual project selection and delivery
- communicates to the community - big open forums, booths for products. Everyone given post-its as they come in - ideas posted to the walls, then definition and consolidation is done, then presented back to group. Project "dowsing" - takes a whole morning. Have had as many as 100 people participate. Going to annual rather than semi-annual. But it gets people to understand a lot of what's going on in the University. Then select only a few projects to actually work on - goal is 3-4 projects per semester.
Gives a context for constant evolution, and a framework to assist managers.
They rotate people between project leadership and technical development - keep up their tech skills and give less-experienced people management experience.
Things from XP they don't do:
- the bullpen - but they have set up pairs-programming areas
- Don't think about all of the edge cases in definitions - program for today. XP doesn't stress reusability, which UT has had a hard time giving up.
- Specific team roles (coach, tester, etc).
- automated unit testing - natural/adabase doesn't lend itself to this
Things they do do:
- rough plans to start (dowsing, rough project definition) - as project manager is selected, say what can i really accomplish in this time frame?
- short releases - semester-based.
- iterative metaphor adjustments - many releases within 4-month periods
- testing plans before even starting development
- constant refactoring and reintegration - helps to get people up to speed as project teams shift around
- collective ownership - because everyone has helped pick the projects there's a community sense going forward.
- start with shrink-wrapped mentality - design the box - draw the box of what your software would look like if it shipped - happy quotes from customers, key features, etc.
- controllable cycles, minimize risk. e.g. started looking at Shib this fall, did investigation, started to build communication about why the campus needs this, etc. Because they were throwing a limited time on it to start, the risk is minimized.
- small teams - 3 to 8 people.
- every project has an executive stakeholders group.
- product manager and project manager
- project mgr breaks project into pieces, makes sure it's on time and under budget. drawer A is gotta have deliverables, drawer B is would be nice to have, drawer C is communication and documentation.
- product manager has drawer C as their primary responsibilities.
Visible deadlines and celebration - kick off semesters, specification period, lockdown period, rollout period, then have a hell of a party. Recognize people for their efforts and give short-term rewards.
Instead of a holiday party one year, they had a funeral and buried all the projects that were never going to get attention.
Cheetah team - available to help with small, well-defined pieces of projects that the project team can't get to, or to handle emergency priorities for maintenance. Four people are on this team, but membership rotates.
Stress time estimates - what can you do within this timeframe?
Expand definition of success - a delighted customer.
Need to articulate vision - all about change - every six months evaluate - how we doing and where are we going?
walk the talk - release of ownership - give over authority with responsibility.