During the last ten years, Ford Motor Company has developed enterprise applications on the Java platform. This was a period of experimentation, collaboration, and learning for everyone involved, including Ford IT and its supplier community. During that period, a general understanding of patterns enabling enterprise application architecture emerged. The challenge is how to represent those patterns at a level of abstraction that makes them portable and reusable, and at a level of concreteness that permits exemplars of those patterns implemented in working software. – Dr. Rick Minto (2012)
the ped story:
In 2005, the Ford Motor Company Java™ platform journey changed course with a strong commitment to global sourcing. A number of lessons emerged including the use of a Pattern Palette to inspire software flexibility. This generalized approach for business innovation and team empowerment is now labelled – Pattern Enabled Development℠.
Share the journey by requesting a free sixty-minute presentation of a fanatical focus on globally understandable code. Hear the latest and dissect lessons learned:
- What is meant by “Software Flexibility”1 ?
- Does a Palette of Class and Method Patterns emerge from an architectural view?
- Explain the relationship between PED and the Reference Application?
- Does PED scale-down for small to medium-sized shops?
- How does PED impact non-developers on a team?
Marvin Toll (MarvinToll@gtcGroup.com) was the principle visionary for PED at Ford Motor Company and is currently CTO of Pattern Enabled Development℠.
A Pattern Palette:
Maturity in the use of a Pattern Palette is a team exercise. Said another way, every application development project could have a minimal set of patterns that each developer on the team thoroughly comprehends and supports.
which Attributes contributed to The Current class and method patterns represented on this site?
- They are steeped in Java implementation details.
- They represent the work of many people from different cultures, backgrounds and skill levels developing in a globally distributed context.
- They explicitly link a Pattern to a working Reference Application providing clarity.
- They are presented via metaphor (“Palette”) to encourage interpretation
as non-prescriptive, adaptive and extendable.
- Tri-fold Brochure
Viewable – 8.5 x 11 (PDF .5 MB)
- Flexibility (software) – The quality attribute of a working software application whereby changes to its code base are introduced rapidly while preserving the overall functional integrity of the application. Software flexibility is dependent upon a number of other application attributes that ensures its resiliency. These include whether the software is architected for extensibility, scalability, portability and securability, and the ease with which changes are understood, tested and debugged by the development team. Software flexibility is prized by those working on development teams, where it is critical that the software be quickly restored to a fully functional condition despite frequent iterations throughout its maturation. – Dr. Rick Minto (2012)