PBE Core Values
As we were helping people to adopt PBE we realized that there were a set of values that helped convey the essence of the PBE. These PBE Core Values include:
1. Patterns are best used in combination, rather than in isolation. When building a solution we expect to use many patterns. The patterns selected will be of varying size and occur at multiple levels of abstraction. As such, we expect to see that the patterns will both connect and overlap.
2. Always identify and build new patterns. We need to be on the lookout for repetitive use cases, repetitive code, repetitive solutions, areas where we are just mechanically participating in the development effort. These all provide opportunities for patterns.
3. Patterns can be built and used within the same project. A challenge that has traditionally surfaced when looking to build reusable assets is determining the timing for when we should build the asset. Often, we decide that we should just wait to the end of the project and then look to build the asset for reuse on a later project. With PBE, along with the associated tooling, we have seen many cases where we have been able to identify and build a pattern implementation within the same project. The asset then pays for itself during the current project and is also available for other projects to use.
4. Make your patterns live When we build patterns we leverage an iterative and incremental approach – building a better pattern over time and looking at ways in which we can increase the scope of the pattern. Such an approach reduces the pressure to produce the perfect pattern, allows us to incorporate feedback, and we deliver value more quickly.
5. Focus on making patterns consumable. All the effort in identifying and building patterns is for naught if our target users are unable to consume the patterns. And of course, we need to make sure that the patterns can be easily found via automated search mechanisms with metadata associated with the patterns.
6. PBE can fit into many different development processes. The guidance, roles and best practices associated with PBE can be leveraged within most other modern software development processes. PBE unto itself is not a process. It is a development practice that can be combined with and leveraged by other practices and processes.
These core values are the foundation upon which PBE is built.