Project Flow & Tracker
Victor Kane
<!--p class="s5-presdate">20 Sep 2007
DrupalCon Barcelona, 20 Sep 2007 11:00 am
Purpose: A way to clone an efficient process for matching client requirements with the final implementation.
Intended audience: Anyone who needs to face the challenge of building non-trivial (complex) web applications.
Who am I?
I have had...
- Over two decades as a developer
- Assembler, Macro Assembler, C
- Almost two decades working within the object oriented paradigm
- Smalltalk
- C++ and later Java
Ruby on Rails ... Drupal???
- A decade working as System Architect
- A decade working as Process Engineer and Mentor, using the Unified Process and more recently the Agile approach, including CMMI certification experience (levels 2-3).
Who am I?
Most memorable projects that have anything whatsoever to do with what we are talking about:
- 1999 Telephone billing system for Buenos Aires (for Telefónica: C++ & UML (developer), RUP (mentor))
- 2005 Point of Sale system architecture and servers "Pago Fácil" (for Siemens-Itron: Enterprise Java, Spring Framework, RUP)
- 2006 Process Engineering, Quality Assurance Mentor and Architect for SCADA (Supervision, Control and Data Acquisition) system for PDVSA Venezuela: Rup → Agile Approach, Test-driven development.
- 2007 First Drupal web application projects, working for myself, launching awebfactory (Agile Approach, test-driven development).
Introduction
Let´s briefly set the context for the Project Flow & Tracker.
Crisis in Software Development
The crisis in software development is evidenced by failures
- Delays, or not meeting expectations (requirements)
- Going over budget in time, resources, cost.

S/W Development Crisis Cause 1
Failure to identify stakeholders
S/W Development Crisis Cause 2
Failure to identify requirements and features
- Requirements baseline
- Define scope
- Bi-directional traceability
S/W Development Crisis Cause 3

Failure to use configuration management
- Version control
- Automated build
- Release control
- Change management
S/W Development Crisis Cause 4
Failure to test
- Unit testing
- Test case identification and development
- Acceptance tests
S/W Development Crisis Cause 5
Failure to do QA
- QA is not testing
- Starts with a conscious or at least well-intentioned adoption of process.
- Continues with commitment to a capability and maturity model for the organization
- Those who are going to succeed are those willing to shell out and make an investment ahead of time, earlier rather than later.
S/W Development Crisis Cause 6
Failure to mitigate risks
- Failure to maintain a risk list.
- No plan B
- Closely associated with next point (architecture)
S/W Development Crisis Cause 7
Failure to secure early adoption of architecture
Whereas development must be driven by requirements, they should be centered on the architecture. This is obtained through an incremental and iterative approach, with early prototyping.
And that goes double for web applications, which on top of being applications in their own right, need to pay attention and validate with the client the structural (menu) and associate (network) navigational system as early as possible.
Nor should the architecture and the requirements that drive its selection be limited to the latter. Prototype, prototype, prototype!
S/W Development Crisis Cause 8
A failure to plan
- Put your head in the sand
- Put your head in the sand by overplanning
- Put your head in the sand by reducing planning to time
- Put your head in the sand by reducing planning to constantly making excessive demands on the team
The crisis reflected in Drupal
Let´s localize this crisis in concrete terms for Drupal development
[This page intentionally left blank]
Part of the problem or part of the solution?
What are our choices?
-
Blissful mayhem ("you don't need process for a Drupal site!")
-
Waterfall approach: the other extreme
Including many who say they aren't but are, like RUP.
-
The iterative and incremental alternatives
-
Agile approach
The choice made...
... an agile approach to Drupal development
So what are we talking about when we say an agile approach?
Project Flow & Tracker Itself
A Case Study - Happy face
Client involved on a daily basis with their end of the bargain in terms of tasks.
Project coming along well!
A Case Study - A Good Job
High level of client interaction guarantees good job.
No matter what happens -- and in this case, it all did!
- Key stakeholders left the organization before project launch, new person came aboard.
- New interlocutor changed business model from long tail to VIP corporate approach.
- Site navigation cut to the core and changed.
- New theme
- Only technical person in company (who could manage the hosted application) left.
A Case Study - Downright failure
When the client rejects all forms of process...
...except "is it done yet" (is what done yet???) you can't do it for them.
The result is likely to be failure.
A Case Study - Here & Now
That´s us
[if no time, come to my presentation on prototyping with Drupal and we will put the PFT through its paces!]
Project Flow & Tracker Roadmap
- Multi-lingual support!
- Quantitative tracking and statistics
- Linkup with SVN for traceability
- Linkup between requirements and architecture
- Linkup with automated testing
- Multisite install for self-contained projects with top-level overview
- Workflow wizard as well as dashboard for each user when they login
Conclusion
We have to be conscious of objective limitations. We live in a regime where the norm for business is to conduct wars of conquest in which countless men, women and children are killed, every day, and in which what predominates is an anarchy of production and a constant attack on the rights and the quality of life for working people, all with the aim of artificially prolonging the existance of a mode of production which historically has fully run its course.
Conclusion
What we do in our work (and we do have to work for a living) cannot ignore that. But neither can that be an excuse for not striving for excellence. "Just in time" production methods may be the best we can do for now. But in future, communities of working people will be managing their own destinies, worldwide, and we must develop forms of planning and production designed for the benefit of humanity as a whole. So we look to that future, hopefully without wars and exploitation, racism and oppression, also, as a basis for how we work.