Jeremy Hylton : weblog : 2003-06-22

Sprint notes, day 1

Sunday, June 22, 2003

There was a small sprint at Zope Corp. world headquarters today -- Jim Fulton, Chris McDonough, Paul Winkler, and me. I took a few notes as we were getting started.

Jim observed that we haven't focused on the non-programmer user of Zope. These are the people who made Zope2 successful. Zope2 didn't succeed with Python programmers. Zope3 focuses on Python programmers, but we need to make sure it is useful for non-programmers.

One important thing about the non-programmer user is that they have a problem they are trying to solve. They may understand a problem domain much better than a programmer who must gather requirements first. Zope2 allowed these novice programmers can build very important software without understanding a lot about software development. They know what they need to accomplish, if not the best software practices for accomplishing it.

Chris observed that its possible to create an application using relatively little framework. The AARP application uses basic CMF but the rest is mostly Python scripts. A framework may be useful for a user who understands it deeply, but a lot of users want to build their application without investing a lot of time learning the framework.

In my tutorial notes, I mentioned that security failures are particularly inscrutable. Apparently, there is a checker logging service that Shane implemented. Jim thinks its controlled by an environment variable.

What is registration? Local software: Stored in ZODB, but developed as much like regular Python software as possible. Distributed via bundles -- contains the software and the configuration. Registration is "the configuration of how an object will be used." Many services are registries. Adapter service registers factories by interface. Example: postal lookup utilities. You can have multiple registrations for the utility, one active, the others inactive. If you install a new utility and find it has a problem, you should be able to uninstall it and have the old utility become the active registration. Services that require registration are a lot harder to write.