Jesper Boeg on Priming Kanban
In this interview, Jesper Boeg, author of the new InfoQ book – Priming Kanban, discusses the keys to using Kanban effectively, and how to get started if you are currently using other approaches.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Abel Avram on May 28, 2009
Major features of “Oslo” May 2009 CTP are: “Quadrant”, a visual modeling tool, changes of the “M” language specification and the addition of predefined domain models to speed up development.
“Quadrant” has suffered major changes from its initial form as previewed during PDC 2008. It has two related purposes:
[“Quadrant” is a] tool for browsing and editing data, including entity model data. “Quadrant” features new ways to view and explore data. Collections can be viewed using through table, tree, or list viewers. Individual entities can be viewed with property viewers, or list viewers. The data viewing experience is created by switching from one viewer to another at any time. Exploring data is accomplished by dragging and dropping items from a viewer onto the workspace.
and
“Quadrant” is a graphical tool for viewing, editing, and exploring data found in any SQL Server database. A user can connect to an arbitrary number of SQL databases, and open multiple windows (called workpads) for viewing and editing data in connected database sessions.
Types created with the “M” language are not necessarily tied to a specific storage space, but the default extent is created on an SQL 2008 database server. Consequently, “Quadrant” allows users to view and edit both the entity models and the underlying SQL database tables.
The “M” and MGrammar language specifications have been merged into one spec called the MGrammar Language Specification which includes the SQL Mapping Specification.
Other notable new features are:
- The scope-resolution operator :: that explicitly scopes an identifier to a module.
- The about() keyword that queries the catalog for data about "M" declarations
- You can reference external functions using extern, for instance: extern PreDefinedFunction() : Integer32;
- There's a new MGraph Object Model (also known as the AST API) for working with grammars dynamically. We have a big write-up for that on the way, so stay tuned.
One important breaking change in the language is the change of the binding operator from ‘=’ to ‘=>’. Being a functional language, the assignment operator ‘=’ created confusion so it has been deprecated. As a result,
Person {
John { Name = "John", Age = 25}
}
becomes
Person {
John { Name => "John", Age => 25}
}
The Intellipad has a quicker start-up and is generally faster. Also, it offers “the ability to pop up the member completion IntelliSense using Ctrl-Space, just as in Visual Studio.”
The most important change is the addition of five modules containing predefined domain models written in “M”. These models can represent a starting point for developers who do not want to start from scratch. The pre-existing modules, stored as SQL schemas, are:
- Base Domain Library (BDL). This domain set (which consists of the Repository Schema, Repository.Item Schema, and System.Globalization Schema modules in “M” – SQL schemas in the “Oslo” repository) contains models that you can use to support the separation of logical data access (views, in SQL Server 2008) from physical storage (tables); establish Folders, which can be used to secure data access and version schemas and data; establish efficient ID patterns for data; support globalization; and control auditing and other security features in SQL Server 2008. The BDL defines storage extents and utilities for several commonly occurring kinds of data that can be referenced from other domains as well as a set of domain-neutral types and functions that can be incorporated into the definition of other domains. The image file is Repository.mx.
- System_Runtime. The common language runtime (CLR) domain targets the Microsoft implementation of the ECMA CLI specification. It contains the schema of the metadata of a .NET Framework assembly and is installed as the System_Runtime SQL schema. With the CLR loader (LoadAssembly.exe) that is also provided with the “Oslo” SDK, you can load metadata from your own .NET assemblies into the code name “Oslo” repository to examine .NET metadata across a product, a division, or potentially an entire enterprise. The image file is System.Runtime.mx.
- Microsoft.Uml2. The Microsoft.Uml2 domain targets the Object Management Group’s Unified Modeling Language™ (UML™) specification version 2.1.2; it is installed as the Microsoft.Uml2 SQL schema. UML 2.1.2 models in the Object Management Group’s XML Metadata Interchange (XMI) version 2.1 file format can be imported into the code name “Oslo” repository with the UML loader (
LoadUml.exe) that is included with code name “Oslo” modeling technologies. The UML model is work-in-progress that shows approach and direction; it is not a complete implementation of the UML specification. The image file is Microsoft.UML212.mx.- System.Identity. The System.Identity module exists to support applications such as directories which are concerned with storing, searching, and retrieving information (called claims) about physical and digital subjects and resources that can be uniquely identified. At the highest level, the System.Identity schema is about entities called Parties that have PartyToPartyRelationships. Parties include People, Organizations, Groups, Devices, and Software Services. There are also special relationships called Roles that one party can play for another. Parties and Roles have IdentityKeys, or unique names in multiple dimensions issued by Authorities and described in Tokens. They also have (potentially multiple)Locations. Parties access Resources according to Policies. The instances in all these Extents can be specialized through a system of Kinds. In addition, Parties can be arbitrarily extended without schema changes through PartyAttributes. Since information about physical and digital subjects transcends conventional use in directory applications, federating subject and claim information to the code name “Oslo” repository is an important goal.
- Language.Catalog. The Language.Catalog module represents a structured representation of an “M” program, also called the “M” semantic graph. The schema for the catalog is written in “M”, and the compiler can generate instances of a “M” program into that schema.
Useful links: Oslo Content on InfoQ, “Olso” May 2009 CTP Download, Release Notes, Developer Center, “Oslo” Downloads, Oslo Forum.
I see the data, but where's the behavior? Isn't behavior the most interesting aspect of any domain model or domain-specific language? I know Microsoft has gotten this far without that philosophy, but the developers of Oslo seem to be from the smalltalk crowd and should know better than to be as data-centric as they are.
In this interview, Jesper Boeg, author of the new InfoQ book – Priming Kanban, discusses the keys to using Kanban effectively, and how to get started if you are currently using other approaches.
John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.
Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.
Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.
Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).
Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.
Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.
One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.
1 comment
Watch Thread Reply