10 Ways to Screw Up with Scrum and XP
Henrik Kniberg talks about 10 possible reasons to fail while doing Scrum and XP. Maybe the team does not have a definition of what Done means to them, or they don't know what their velocity is.
Tracking change and innovation in the enterprise software development community
Posted by Rob Thornton on Nov 16, 2007 01:05 PM
"Classes are dead, long live interfaces" was declared by Rickard Oberg at Oredev this week where he announced Qi4j. Qi4j brings the new idea of Composite Oriented Programing, in which is no behaviour at all is put in a class, instead the class becomes a 'composite' of mixins and interfaces declared on the class via annotations.
Qi4j itself is a Java framework built to make Composite Oriented Programming available to all Java developers. While Composite Oriented Programming will require a large mind-shift, it does not require separate tools, language, or XML. Qi4j applications will be able to run inside a Spring application, a web application container, OSGi, and elsewhere. Qi4j makes heavy use of annotations to push the knowledge of framework specifics away and bring developers closer to the business rules. Rickard Öberg and Niclas Hedhman, the founders of the project, describe it in a press release as:
"Qi4j is a framework for domain centric application development, including evolved concepts from Aspect Oriented Programming, Dependency Injection and Domain-Driven Design, leveraging the Java 5 platform and eco-system", says Niclas Hedhman a long-term Java framework developer and now active Apache member.
"I need a system that puts the domain model and business rules back in focus, allowing clear communication between domain experts and developers.", says Rickard Öberg, the former JBoss, Webwork and XDoclet founder.
As this is only the initial revealing of the framework and paradigm, documentation and examples are still sparse. However, the goal of Composite Oriented Programming is to switch from thinking about objects to thinking about composites. Composites are composed of re-useable fragments. Fragments are the building blocks of Qi4j. They carry the state of composites (in mixins), validate and constrain the usage of them (in constraints), handle cross-cutting concerns (in concerns) and provide notifications, cache and undo management, and other asynchronous needs (in side effects). The switch of programming paradigms is not an easy one. Oberg describes the reactions to Composite Oriented Programming as:
The pattern I have seen very consistently is two reactions: a headache from the brain frantically trying to unlearn the bad ideas from everything they previously did, and a smile from understanding the potential of what we are suggesting
Qi4j is still very new and unstable. At this point they are working on stabilizing the framework and trying to get the ideas of Composite Oriented Programming developed and presented to the community. They admit that they are not quite ready for people to dive in to the framework, and suggest people focus on understanding the concepts for the next couple months.
Guide to Calculating ROI with Terracotta Open Source JVM Clustering
Spring App Platform, Java Concurrency/Multicore, Eclipse Mylyn and more @ QCon SF Nov 19-21
Gamma's Jazz platform's first implementation: Rational Team Concert (Trial Download)
JProbe Freeware – Eclipse Plugin for efficient memory analysis and diagnosis
I've posted some thoughts on this on my (reopened and renamed) blog: http://www.jroller.com/rickard/entry/reloaded_the_continuing_adventures_of Much more to do, but as pointed out above and on the mailing list, what we are mostly interested in at this point is to attract others who want to significantly improve the current state of application development. We want thinkers, not coders. We estimate that it will not be ready for use in production until some time later next year. But things are progressing at a furious rate, more than even I had anticipated myself, so it's difficult to make any useful time estimates.
Cool! Is this the evolution of your extreme AOP idea ?
Yes, and then some :-)
Hi Rickard, 1 - Review the VS C# component model. The use of ISite is an improvement over BeanContext. 2 - Review Simonyi. [http://www.intentsoft.com/] 3 - It is not clear why you distinguish between Components and 'fragments'. Please elaborate. The key to this holy grail is Semantic Adaptation. Contextual composition is (clearly) important, but it will not solve the problem. Think illiterates assembling Laptops. /Regards "J"
Henrik Kniberg talks about 10 possible reasons to fail while doing Scrum and XP. Maybe the team does not have a definition of what Done means to them, or they don't know what their velocity is.
This article outlines 9 principles Marc Lammers discovered while building the world’s best field hockey team, mapping them to software development practices.
Michael Poulin explains the necessity for SOA governance to ensure an Enterprise SOA's success, relying on concepts from the OASIS SOA Reference Model and Reference Architecture.
This article covers setting up a RichFaces portlet using JBoss Portlet Container and JBoss Portlet Bridge, deploying a RichFaces portlet, and RichFaces capabilities.
This article discusses scalability worst pratices including The Golden Hammer, Resource Abuse, Big Ball of Mud, Dependency Management, Timeouts, Hero Pattern, Not Automating, and Monitoring.
Obie Fernandez shares his experience selling consulting services for both Thoughtworks and Hashrocket and give tips how Ruby developers can work with clients.
Jeffries and Hendrickson derive Agile practices from the natural laws of software development. They don't just say "Be Agile!", but they explain why Agile practices make perfect sense.
Jinesh Varia talks about the architecture of one of Amazon's web services called Alexa. Jinesh explains how Amazon has reached scalability, performance and reduced costs for the Alexa service.
4 comments
Reply