Archive for April, 2008

SOA

Monday, April 28th, 2008

Service-oriented architecture is mateloos populair: iedereen praat erover en iedereen wil het hebben. Om te kunnen bepalen hoe nuttig een SOA echt is voor een organisatie, gaan we terug naar de basis en bekijken we wat een SOA nu eigenlijk is. Daarnaast bieden we onder meer verdieping in het interoperability framework, een inleiding in de grafische notatie BPMN en een nadere kijk op tools voor enterprisearchitectuur.

http://www.informatie.nl/artikelen/2008/04/

Cloud Computing: Get Your Head in the Clouds

Monday, April 28th, 2008

Almost every day recently I find myself explaining Cloud Computing to different people at all levels and roles in various organizations. So, I decided to take a stab at it from my point of view. The challenge in explaining cloud computing is that there is more than one answer to the what is it question. The field is evolving rapidly and everyone wants a piece now. This article attempts to define and break down cloud computing to it’s most important components in the context of the business use case.

Kent Langley

http://www.productionscale.com/home/2008/4/24/cloud-computing-get-your-head-in-the-clouds.html

Interview with Donald Knuth

Monday, April 28th, 2008

Andrew Binstock and Donald Knuth converse on the success of open source, the problem with multicore architecture, the disappointing lack of interest in literate programming, the menace of reusable code, and that urban legend about winning a programming contest with a single compilation.

Andrew Binstock and Donald Knuth

http://www.informit.com/articles/article.aspx?p=1193856

Patterns of persistence

Wednesday, April 23rd, 2008

Although many developers use object-relational mapping (ORM) tools for their applications’ persistence tier, some are confused about how to use them and duplicate code unnecessarily. The authors’ experience constructing many persistence tiers has given them a clear understanding of persistence patterns and best practices. The first part of this two-part article covers the basics of a consistent, concise domain model and persistence tier.

Ryan Senior
Travis Klotz
Jim Majure

http://www.ibm.com/developerworks/java/library/j-pop1/?S_TACT=105AGX01&S_CMP=HP

Incremental and Iterative Development

Wednesday, April 23rd, 2008

People still get wrapped around the axle trying to understand the difference between incremental and iterative development. The Unified Process authors in the 1990s didn’t help by indiscriminately calling everything iterative development. The two are different and must be managed differently. Successful teams do both at the same time, usually without thinking about it. Then someone starts thinking about it and does one without the other. Bad news follows.

Alistair Cockburn

http://www.stickyminds.com/BetterSoftware/magazine.asp?fn=cifea

Models for Evaluating and Improving Architecture Competence

Wednesday, April 23rd, 2008

Software architecture competence is the ability of an individual or organization to acquire, use, and sustain the skills and knowledge necessary to carry out software architecture-centric practices. Previous work in architecture has concentrated on its technical aspects: methods and tools for creating, analyzing, and using architecture. However, a different perspective recognizes that these activities are carried out by people working in organizations, and those people and organizations can use assistance towards consistently producing high-quality architectures.

This report lays out the basic concepts of software architecture competence and describes four models for explaining, measuring, and improving the architecture competence of an individual or a software-producing organization. The models are based on (1) the duties, skills, and knowledge required of a software architect or architecture organization, (2) human performance technology, an engineering approach applied to improving the competence of individuals, (3) organizational coordination, the study of how people and units in an organization share information, and (4) organizational learning, an approach to how organizations acquire, internalize, and utilize knowledge to improve their performance.

Len Bass
Paul Clements
Rick Kazman
Mark Klein

http://www.sei.cmu.edu/publications/documents/08.reports/08tr006.html

An Increase In Value

Wednesday, April 23rd, 2008

Value may accure by accident but not often. Professionals must intentionally seek to create value. Its easy for this pursuit to get lost in the day-to-day effort to meet deadlines and resolve issues. It is not an attribute that jumps out at you during development. It isn’t usually visible of its own accord until the product is completed and the absence of value becomes all too apparent and all too difficult to to fix.

John McGregor

http://www.jot.fm/issues/issue_2008_03/column1/index.html

Connecting Design with Code

Wednesday, April 23rd, 2008

Jon Bentley wrote his thesis on divide-and-conquer algorithms and came to greatly admire C.A.R. Hoare’s original quicksort algorithm. Yet for years, Bentley “tiptoed around its innermost loop” because he didn’t understand it (Beautiful Code, O’Reilly, 2007). It was only after he implemented his own quicksort based on an elegant partitioning scheme for Programming Pearls (Addison-Wesley, 1999) that he truly understood the reason for that inner loop. He also trimmed the original bulkier algorithm to a mere dozen tight lines of code. Code clutter and unnecessary complexity can obscure a design. However, connecting design decisions to code won’t happen unless developers embrace the practice of writing code as if expressing design intent matters.

Rebecca J. Wirfs-Brock

http://www.computer.org/portal/cms_docs_software/software/homepage/2008/s2des.pdf

Version Control for Multiple Agile Teams

Tuesday, April 22nd, 2008

If we have several agile development teams working on the same codebase, how do we minimize the risk of stumbling over each other? How do we ensure that there always is a clean, releasable version at the end of each iteration? This paper describes an example of how to handle version control in an agile environment with multiple teams - it is the scheme that we migrated to at the company described in “Scrum and XP from the Trenches”.

This paper is not primarily targeted for version control experts, in fact such experts probably won’t find anything new here. This paper is aimed at the rest of us, those of us that just want to learn simple and useful ways to collaborate. It may be of interest to anyone directly involved in agile software development, regardless of role - branching and merging is everybody’s business, not just the configuration manager.

Henrik Kniberg

http://www.infoq.com/articles/agile-version-control

SOA Governance: Crucial Necessity or Waste of Time?

Tuesday, April 22nd, 2008

The term “governance” has been regularly appearing in IT publications and conferences for some time, but among technical circles, such discussions are often yawn-provoking at best. This article provides a developer-friendly guide to SOA Governance, starting with the general notion of IT governance down through design-time and the second runtime Governance.

Gernot Starke

http://www.infoq.com/articles/governance-gernot-starke

ThoughtWorks Anthology

Tuesday, April 22nd, 2008

This collection of essays covers a wide range of issues facing software developers today. In this book, you’ll find a treasure trove of pragmatic advice to improve the effectiveness of your development efforts.

You’ll find essays on testing, controlling a project, the creation of domain specific languages, issues of build and deploy, programming languages, techniques for software development, and more!

ThoughtWorks is a well-known global consulting firm; ThoughtWorkers are leaders in areas of design, architecture, SOA, testing, and agile methodologies. This collection of essays brings together contributions from well-known ThoughtWorkers such as Martin Fowler, along with other authors you may not know yet.

While ThoughtWorks is perhaps best known for their work in the Agile community, this anthology confronts issues throughout the software development life cycle. From technology issues that transcend methodology, to issues of realizing business value from applications, you’ll find it here.

http://www.pragprog.com/titles/twa

Carnegie Mellon Software Engineering Institute Announces Release of the CERT Resiliency Engineering Framework

Tuesday, April 22nd, 2008

The Carnegie Mellon Software Engineering Institute (SEI) CERT Program, together with the Financial Services Technology Consortium (FSTC), today announced the availability of the CERT® Resiliency Engineering Framework. This framework provides a comprehensive roadmap that enables organizations of all sizes to establish, manage, and evaluate operational resiliency which encompasses both security and business continuity.

The CERT Resiliency Engineering Framework (REF) embodies methods and guidelines that have been developed and proven in practice over the last 20+ years by the SEI, combined with security and business continuity expertise gained through the SEI’s collaboration with FSTC.

“Our collaboration with FSTC over the past couple of years has enabled the SEI to develop and release a roadmap specifically designed for organizations to be flexible and straightforward to implement across all sizes of enterprises and their suppliers,” said Rich Caralli, technical lead for the CERT REF project. “REF is based not only on our own experience. FSTC provided us with unparalleled access to some of the best practitioners in the security and business continuity space.”

“Operational resiliency and effective risk management continue to be a priority for all of us in the financial services industry,” said Dan Schutzer, Executive Director of the Financial Services Technology Consortium. “The Resiliency Engineering Framework provides a compelling new tool to measure and improve resiliency for organizations and their suppliers.”

The framework consists of over 20 comprehensive capability modules, giving organizations the flexibility to implement as few or as many as their needs and strategies require. Benchmarking against the framework will help organizations optimize their operational resiliency investments, make objective peer-to-peer comparisons in their industry sector, and select capable third-party suppliers.

http://www.sei.cmu.edu/about/press/releases/refmodel.html

Measuring Productivity of Individual Programmers

Sunday, April 20th, 2008

My last couple of posts on productivity variations among programmers and the Chief Programmer Team model gave rise to some discussion about hazards of measusring software productivity at the individual programmer level. Software engineering studies normally measure productivity in terms of time to complete a specific task, or sometimes in terms of lines of code per effort-hour, staff-month, or some other measure of effort. Regardless of how you choose to measure productivity, there will be issues.

Steve McConnell

http://forums.construx.com/blogs/stevemcc/archive/2008/04/09/measuring-productivity-of-individual-programmers.aspx

Top Java 5 EE Servers Compared

Tuesday, April 15th, 2008

Do you need to make a good decision on what Java EE application server to use for your organization? Sure, and there are a lot of choices out their. I have used Java application servers for years my self, and total there are actually about 9 different JEE application servers on the market that I know of. Open-source Java EE servers are used as much as the commercial counterparts and I believe the only advantage of going commercial is that you may get better security that way. Though certain commercial JEE servers have proprietary features which are valuable, the same can be said of open-source available features.

The servers we will look at are Sun Microsystems open-source Glassfish 2.0, Red Hat’s open-source JBoss 4.2, IBM’s open-source WebSphere 2.0 Community Edition, and BEA’s commercial WebLogic 10.

Jonathan Campbell

http://weblogs.java.net/blog/jdcampbell/archive/2008/02/top_java_5_ee_s_1.html

Project Caroline - Platform as a Service

Tuesday, April 15th, 2008

An advanced R&D project at Sun Microsystems, Project Caroline is a hosting platform for development and delivery of dynamically scalable Internet-based services. It is designed to serve an emerging market of small and medium sized software-as-a-service (SaaS) providers. Anticipating needs driven by new SaaS business models and processes, Project Caroline helps SaaS providers develop services rapidly using high-level programming languages like the Java(tm) programming language, Ruby, Python, and Perl, to update in-production services frequently, and to automatically flex their use of platform resources to match changing runtime demands.

http://research.sun.com/projects/caroline/