Up-Front Design Versus Evolutionary Design in Denali s Persistence Layer

Size: px
Start display at page:

Download "Up-Front Design Versus Evolutionary Design in Denali s Persistence Layer"

Transcription

1 Up-Front Design Versus Evolutionary Design in Denali s Persistence Layer Jim Little Titanium I.T. LLC 3062 SW 153 rd Dr. Beaverton, OR USA jlittle@titanium-it.com ABSTRACT This experience report describes the evolution of a persistence architecture over the course of nine months. The persistence architecture was developed as part of a common code base for internally developed web applications. The code base, named Denali, was developed from the ground-up using Extreme Programming and a team of six programmers. Denali was originally developed using up-front design and then extended using evolutionary design. Evolutionary design was found to yield better results than up-front design. Keywords Extreme Programming, persistence, evolutionary design 1 INTRODUCTION One of the controversial tenants of Extreme Programming (XP) is that evolutionary design can replace up-front design. In XP, the programmer is encouraged not to design his code in advance, but to use tests and refactoring to drive the design [1]. This approach has been greeted with skepticism on many occasions (e.g., [2]). Is it really possible for a non-trivial system to evolve a consistent, maintainable architecture using nothing but evolutionary design? In this paper, I present my experiences with evolutionary design in a medium-sized project. Although I was a member of a team of developers, this paper is a personal account of my experiences on the project. As a result, I ve written the paper in the first-person perspective. 2 THE PROJECT In May 2000, I was hired to help a team of programmers reduce their maintenance costs. Their manager told me that a new person would arrive and be productive for a few months, but then would come to a standstill, spending all their time updating existing software. After reviewing the situation, I discovered that there was massive duplication of code, no shared knowledge about projects, and no clear prioritization of needs. I recommended that we switch to XP to resolve the prioritization and knowledge sharing issues, and that we develop a common code base for all applications to resolve the maintenance issues. As of June 2001, the project has been in progress for 13 months. We have been using XP from the beginning to develop all of the new code. The project has been an unqualified success. Although the customer would prefer to have more software developed more quickly, we have clearly met her goals. New features are delivered regularly, knowledge is spread throughout the team, and features are clearly prioritized. The common code base, named Denali, has worked out as well. There are currently 18 web-based applications in Denali, all using a common object model and persistence framework. Denali Facts Project Length 13+ months (still active) People 4-12 programmers; currently 5 Programming Language Tests Java servlets (no Enterprise Java Beans or Java Server Pages) 1586 total, 91 acceptance Production Test Total Classes Methods 3,376 3,245 6,621 Statements 10,342 14,254 24,596 Denali was developed from the ground-up using XP. From the beginning, the most complicated part of the system has been the persistence architecture. This paper describes the changes that have occurred in the persistence architecture as we applied XP to the problem. 3 THE PLAYERS I was the technical lead and XP coach for Denali. When the project started, I had about four years of professional programming experience. Of that time, only the prior six months had been spent as a technical lead, and only the prior three months had been spent practicing full XP. I had limited experience with relational databases and no prior experience with object-relational persistence. However, I was an expert Java programmer and had a solid grounding in the theory and practice of object-oriented programming. The remaining developers had more years of programming experience, but limited exposure to programming methodologies and techniques. For most of them, Java and 1

2 object-oriented programming were new technologies. Did we really practice XP? Planning Game Frequent Releases Simple Design Unit Tests and Acceptance Tests Continuous Integration Coding Standards Refactor Mercilessly Pair Programming Collective Code Ownership 40-hour Week System Metaphor On-site Customer Limited Limited 4 TAKE ONE: UP-FRONT DESIGN When we started Denali, I believed that it was destined to become a large system. At the time, I knew of XP s insistence on evolutionary design, but I had no direct experience with it. As a result, I hedged my bets: I researched potential architectures for several days and sketched out a design in advance. The result was a fivelayer architecture based on Martin Fowlers Analysis Patterns [3]. My pairing partner felt that the design was too complicated, but I knew we were going to need to manage complexity in this project and believed that the additional up-front complexity would reduce problems down the road. Was I ever wrong! The first approach consisted of five layers. (See figure 1.) Business objects resided in the middle layer and modeled the domain. At either edge resided the presentation and database layers, each protected from the business layer by a translation layer. The presentation layer would be for applications. Each application would have its own presentation and a façade to protect it from the expected complexities of the business layer. At the other end, the database layer would model the database. The persistence layer would translate the relational data in the database into objects in the business layer. How it worked Although the above architecture looked fine on paper, it encountered some problems in practice. In order to persist an object s data, the persistence layer needed full access to the business objects instance variables. I didn t want to provide accessors and mutators for every single instance variable, as that would violate encapsulation. And I didn t want to make the variables public for the same reason. Eventually, I came up with the idea of using Java s inner classes to provide back-door access into the business objects (see figure 2). In Java, an inner class has an implicit reference to the variables of the outer class [4]. Because the inner class is within the scope of the outer class, it also has access to all of the outer class s private member variables. By providing public methods on the inner class, the programmer can provide additional interfaces to the object s data. In Denali, we called these inner classes Persistence Friends, after the friend access level of C++. Denali s Persistence Friends allowed the persistence layer to act like C++ friends and access the private instance data of business objects. Because the Persistence Friends were actual objects, we could control access by limiting who received an instance of a friend. It seemed like a great solution.

3 Reality sets in Unfortunately, the idea turned out to be extremely complex in practice. The local development team, with no prior experience in Java or object-oriented programming, was completely lost. Furthermore, the approach required a large amount of code to accomplish anything significant. After using persistence friends for several months, the other developers presented me with an ultimatum: Get rid of the persistence friends! Conclusion: Up front design My first attempt at a persistence architecture was driven by up-front design. I was able to come up with a workable solution, but one that was far too complex. In retrospect, I should have introduced the layers much later, when there was a demonstrated need. I believe this approach would have reduced our costs in the short term and would have resulted in a better design in the long term. From this point onward, architectural changes were driven by XP principles, not up-front design. Every future change was a change for the better. 5 TAKE TWO: PUBLIC VARIABLES The near-lynching inspired by the persistence friend architecture caused me to rethink my attitude towards encapsulation. The entire purpose of the persistence friends was to protect business objects instance variables from untoward manipulation. But who exactly was I protecting the code from? Operating on the assumption that we could trust ourselves, the team established the rule that business objects instance variables could be public and accessed by tests and the persistence layer, but not by anything else. This simplified the code immensely. Now the persistence layer just accessed and modified instance variables when it needed to (see figure 3). The team didn t have any problems following the public variable rule. As time went on, though, our tests became too closely coupled with our business objects. After a few months, we started having problems refactoring our code. Conclusion: Public Variables The move from persistence friends to public variables was a huge win. Some people might see it as a step backwards: we went from a solution with very well defined access control to one with no access control at all. The public variable solution was superior, though, because it was far

4 simpler. But it suffered from close coupling in the tests and still had problems with cleanly separating the persistence and business layers. 6 TAKE THREE: SCHEMA ABSTRACTION One thing I ve noticed about our XP project is that we ve never been completely happy with our design. We struggle to get acceptance tests working, and then the architecture feels wrong. We work to get the architecture right, and then the tests need work. We fix the tests, and then we have mock objects [5] scattered all over the place. I don t see this as a problem with our project or XP, though. Instead, I think it s our biggest strength. We re never satisfied with our design and are constantly evaluating our system to see what could improve. There s always some long-term scheme to improve this or that part of the system. Once those changes have been made (often over the course of a month or two), new problems or ideas have come to light. This was the case with our database schema abstraction. We had been using procedural helper methods for a lot of our test set up. We knew that the procedural nature of these classes was a code smell [6], and once we fixed the persistence friend problem, we had a chance to work on them. Most of the classes set up and tore down records in the database, so we refactored them to represent database rows. One instance represented one row in a single database table. This approach was so successful that we decided to migrate it to our production code. Up until this point, our database abstraction had consisted of a thin layer over Java s Database Connectivity (JDBC) package. All of our persistence classes had hand-coded SQL in them. We established the basic Row and Table abstraction fairly quickly. As time went by, we identified many things that could be abstracted out into parent classes. Now all of our basic operations, such as insert, update, delete, and lookup by primary key, are implemented in the parent class and are automatically available for every table. Conclusion: Schema Abstraction The introduction of Row and Table classes was a significant improvement to our architecture. With this change, we were able to move all of our SQL out of the persistence layer and into the database layer. We removed duplicate queries and factored many common needs into a shared parent class. Most importantly, our SQL was now grouped according to database table, not business object. This important change made our code much easier to understand. 7 TAKE FOUR: FORKLIFTS The introduction of Row and Table classes as an abstraction for our database schema was a huge step forward, but we still had a major problem with our architecture: the persistence layer and the business layer were far too closely intertwined. The persistence objects were merely an intermediary between the business layer and the database. When called, they asked the schema abstraction for a variable or set of variables and plugged that back into the business object via the public instance variable backdoor. With the introduction of the Table and Row schema abstraction, all of their SQL was moved and they became nearly useless. At the same time, the business objects were far too complex. The business rules for our system were trivial, but the business objects were large and difficult to understand. The problem was that the business objects managed when the persistence objects were called. They had to keep track of which data had been loaded already and only ask the persistence layer for new data when it hadn t already been pulled in. The schema abstraction gave us the opportunity to reexamine the relationship between our business layer and the persistence layer. With the new abstraction, we saw architectural changes that hadn t been clear before. There were two problems with the existing architecture. First, the need for the persistence layer to access the business layer s instance variables was a perpetual problem. Second, the business layer shouldn t have been responsible for managing caching. With the schema abstraction in place, a new direction was clear: We would move all of our data into the persistence layer and have the business objects focus on business rules. Each business object would contain only a single corresponding persistence object. The persistence object would store all the data for the business object. We

5 expanded our system metaphor to handle this new approach: The database was the warehouse where our data was stored, and the persistence objects were forklifts that carried around our business s data (see figure 5). Conclusion: Forklifts The forklift version of our persistence architecture has been in place for seven or eight months. It s worked great for us so far. For the first time, we re happy with our persistence architecture. Although we continue to make minor improvements, I don t think we ll see any more significant changes to this part of the system. Overall, the forklift approach has worked wonderfully. The code is simpler. The time at which objects are loaded and how we deal with missing information is clear for the first time. I can t stress how much of an improvement this approach is over the previous way of doing things. 9 CONCLUSION Can evolutionary design replace up-front design? In our case, absolutely. Up-front design yielded a workable but overly complex design. Evolutionary design yielded improvement after improvement. It s been an immense success. The evolutionary approach has yielded two surprising results. First, it's easy. Coming up with design improvements required no real effort, because they gradually bubbled up from my subconscious over the course of months of working within the system. The other surprise was how effective evolutionary design is. I believe that the current design is far superior to anything I could have come up with in advance. The reason appears to be that, with evolutionary design, I could simply see farther. As we made each change, new approaches that were previously hidden became visible, and even obvious. I ve noticed one major drawback to evolutionary design. Architectural refactorings are hard and take a lot of work. When we moved from one persistence approach to another, it could take several days per business object. In our case, we only migrated business objects that we worked on, but that has resulted in some infrequently-used objects in our system using old approaches months after a new approach was identified. Overall, the evolutionary approach has been extremely effective. I would recommend it as the primary approach to architecture and design for any project in which aggressive refactoring is feasible. As a result of evolutionary design, our system is a joy to work with. ACKNOWLEDGEMENTS This paper would not have been possible without the support and patience of the Denali programming team. Thanks to David Bean, Lance Black, Ryan Davis, Jarid Love, and Jared Whitlock for their willingness to try new things. Thanks especially to Kim Eaves for letting us turn her traditional procedures upside down. REFERENCES 1. Beck, K. Extreme Programming Explained, 2000, Reading, MA, Addison Wesley Longman, Inc., Evolutionary Architecture discussion on Ward Cunningham s Wiki-Wiki Web. On-line at 3. Fowler, M. Analysis Patterns: Reusable Object Models, 1997, Menlo Park, CA, Addison Wesley Longman, Inc., Gosling, J., et. al. The Java Language Specification. Online at 5. Mackinnon, T., Freeman, S., & Craig, P. Endo-Testing: Unit Testing with Mock Objects. On-line at 6. Fowler, M., et. al. Refactoring: Improving the Design of Existing Code, 1999, Reading, MA, Addison Wesley Longman, Inc.,

Agile Techniques for Object Databases

Agile Techniques for Object Databases db4o The Open Source Object Database Java and.net Agile Techniques for Object Databases By Scott Ambler 1 Modern software processes such as Rational Unified Process (RUP), Extreme Programming (XP), and

More information

Test Driven Development Part III: Continuous Integration Venkat Subramaniam venkats@agiledeveloper.com http://www.agiledeveloper.com/download.

Test Driven Development Part III: Continuous Integration Venkat Subramaniam venkats@agiledeveloper.com http://www.agiledeveloper.com/download. Test Driven Development Part III: Continuous Integration Venkat Subramaniam venkats@agiledeveloper.com http://www.agiledeveloper.com/download.aspx Abstract In this final part of the three part series on

More information

Code Qualities and Coding Practices

Code Qualities and Coding Practices Code Qualities and Coding Practices Practices to Achieve Quality Scott L. Bain and the Net Objectives Agile Practice 13 December 2007 Contents Overview... 3 The Code Quality Practices... 5 Write Tests

More information

Xtreme RUP. Ne t BJECTIVES. Lightening Up the Rational Unified Process. 2/9/2001 Copyright 2001 Net Objectives 1. Agenda

Xtreme RUP. Ne t BJECTIVES. Lightening Up the Rational Unified Process. 2/9/2001 Copyright 2001 Net Objectives 1. Agenda Xtreme RUP by Ne t BJECTIVES Lightening Up the Rational Unified Process 2/9/2001 Copyright 2001 Net Objectives 1 RUP Overview Agenda Typical RUP Challenges Xtreme Programming Paradigm Document driven or

More information

Book 3 Cost Estimating in an Agile Development Environment. (early release)

Book 3 Cost Estimating in an Agile Development Environment. (early release) Book 3 Cost Estimating in an Agile Development Environment (early release) Book 3: Cost Estimating in an Agile Development Environment In this third book I ll use the slides I gave at a speech several

More information

True Stories of Customer Service ROI: The real-world benefits of Zendesk

True Stories of Customer Service ROI: The real-world benefits of Zendesk True Stories of Customer Service ROI: The real-world benefits of Zendesk Introduction Any manager whose business thrives when customers are happy immediately understands the value of excellent customer

More information

How to Overcome the Top Ten Objections in Credit Card Processing

How to Overcome the Top Ten Objections in Credit Card Processing How to Overcome the Top Ten Objections in Credit Card Processing Section #1: Handling the Red Flags Just Fax Your Rates Response: I ll be happy to do that, but until we know if this is truly a fit for

More information

Human Aspects of Software Engineering: The Case of Extreme Programming

Human Aspects of Software Engineering: The Case of Extreme Programming 1 Human Aspects of Software Engineering: The Case of Extreme Programming Orit Hazzan 1 and Jim Tomayko 2 1 Department of Education in Technology and Science, Technion - IIT, Haifa 32000, Israel oritha@tx.technion.ac.il

More information

Why Your Job Search Isn t Working

Why Your Job Search Isn t Working Why Your Job Search Isn t Working 6 mistakes you re probably making and how to fix them I t s easy to think that your lack of success in finding a new job has nothing to do with you. After all, this is

More information

An Introduction to Extreme Programming

An Introduction to Extreme Programming An Introduction to Extreme Programming Ken Auer kauer@rolemodelsoft.com http://www.rolemodelsoft.com RoleModel Software, Inc. 5004 Rossmore Dr. Fuquay-Varina, NC 27526 919-557-6352 Page 1 The Joy of Software

More information

CACHÉ: FLEXIBLE, HIGH-PERFORMANCE PERSISTENCE FOR JAVA APPLICATIONS

CACHÉ: FLEXIBLE, HIGH-PERFORMANCE PERSISTENCE FOR JAVA APPLICATIONS CACHÉ: FLEXIBLE, HIGH-PERFORMANCE PERSISTENCE FOR JAVA APPLICATIONS A technical white paper by: InterSystems Corporation Introduction Java is indisputably one of the workhorse technologies for application

More information

Harlequins Makes Winning Conversion to Bond Payroll Services

Harlequins Makes Winning Conversion to Bond Payroll Services Harlequins Makes Winning Conversion to Bond Payroll Services Success and business growth can have unforeseen consequences, as London rugby club Harlequins discovered when its local outsourced payroll provider

More information

214.823.9999 214.823.6440

214.823.9999 214.823.6440 abich & Associates E. 57th Street Partners 214.823.9999 214.823.6440 www.babich.com www.e57partners.com This question would seem to have a simple answer: employers with a need should interview, that s

More information

Customer Relationship Management: How and why to implement CRM effectively in the Financial Services sector. Research White Paper

Customer Relationship Management: How and why to implement CRM effectively in the Financial Services sector. Research White Paper Customer Relationship Management: How and why to implement CRM effectively in the Financial Services sector Research White Paper Index 1 3 4 5 6 7 8 9 Introduction Where CRM started: its history and commercial

More information

Foreword by Martin Fowler *

Foreword by Martin Fowler * Foreword by Martin Fowler * In my early days in the software industry, one of the most awkward and tense moments of a software project was integration. Modules that worked individually were put together

More information

SQL Server Performance Intelligence

SQL Server Performance Intelligence WHITE PAPER SQL Server Performance Intelligence MARCH 2009 Confio Software www.confio.com +1-303-938-8282 By: Consortio Services & Confio Software Performance Intelligence is Confio Software s method of

More information

OBJECT PERSISTENCE AND AGILE SOFTWARE DEVELOPMENT

OBJECT PERSISTENCE AND AGILE SOFTWARE DEVELOPMENT OBJECT PERSISTENCE AND AGILE SOFTWARE DEVELOPMENT A White Paper by Dirk Bartels and Robert Benson sponsored by Versant Corporation 2009, Versant Corporation 255 Shoreline Drive, Suite 450 Redwood City,

More information

Hybrid: The Next Generation Cloud Interviews Among CIOs of the Fortune 1000 and Inc. 5000

Hybrid: The Next Generation Cloud Interviews Among CIOs of the Fortune 1000 and Inc. 5000 Hybrid: The Next Generation Cloud Interviews Among CIOs of the Fortune 1000 and Inc. 5000 IT Solutions Survey Wakefield Research 2 EXECUTIVE SUMMARY: Hybrid The Next Generation Cloud M ost Chief Information

More information

The Five Biggest MISSED Internet Marketing Opportunities Most Lawyers Don't Know About

The Five Biggest MISSED Internet Marketing Opportunities Most Lawyers Don't Know About The Five Biggest MISSED Internet Marketing Opportunities Most Lawyers Don't Know About Many lawyers and other professionals equate internet marketing with Search Engine Optimization (SEO). And while SEO

More information

The Scrum Master role vs. Project Manager

The Scrum Master role vs. Project Manager The Scrum Master role vs. Project Manager Marco A. Alba Lopez A. Jalasoft marco.albalopez@jalasoft.com RESUMEN It may be usual now a days to see organization asking for these types of roles and believe

More information

Use of Non-IT Testers in Software Development

Use of Non-IT Testers in Software Development Use of Non-IT Testers in Software Development Vineta Arnicane University of Latvia, Raina blvd. 19, Riga, Latvia vineta.arnicane@lu.lv Abstract. Because of a shortage of IT specialists, many companies

More information

Extreme Programming and Embedded Software Development

Extreme Programming and Embedded Software Development Extreme Programming and Embedded Software Development By James Grenning Every time I do a project, it seems we don t get the hardware until late in the project. This limits the progress the team can make.

More information

Job Satisfaction and Motivation in a Large Agile Team

Job Satisfaction and Motivation in a Large Agile Team Job Satisfaction and Motivation in a Large Agile Team Bjørnar Tessem 1, and Frank Maurer 2 1 Department of Information Science and Media Studies, University of Bergen, NO-5020 Bergen, Norway bjornar.tessem@uib.no

More information

Aspect-Oriented Programming

Aspect-Oriented Programming Aspect-Oriented Programming An Introduction to Aspect-Oriented Programming and AspectJ Niklas Påhlsson Department of Technology University of Kalmar S 391 82 Kalmar SWEDEN Topic Report for Software Engineering

More information

A Survival Guide for the Independent Attorney. Sponsored by LexisNexis Firm Manager

A Survival Guide for the Independent Attorney. Sponsored by LexisNexis Firm Manager A Survival Guide for the Independent Attorney Sponsored by LexisNexis Firm Manager The current legal economy sees more law graduates than available positions, and an increasing number of seasoned legal

More information

The Phases of an Object-Oriented Application

The Phases of an Object-Oriented Application The Phases of an Object-Oriented Application Reprinted from the Feb 1992 issue of The Smalltalk Report Vol. 1, No. 5 By: Rebecca J. Wirfs-Brock There is never enough time to get it absolutely, perfectly

More information

How to Choose the Right Web Design Company for Your Nonprofit

How to Choose the Right Web Design Company for Your Nonprofit How to Choose the Right Web Design Company for Your Nonprofit wiredimpact.com 1 A new website can very easily be the kind of can that gets kicked down the road. Many nonprofits are swamped with things

More information

Automated Acceptance Testing of High Capacity Network Gateway

Automated Acceptance Testing of High Capacity Network Gateway Automated Acceptance Testing of High Capacity Network Gateway Ran Nyman 1, Ismo Aro 2, Roland Wagner 3, 1,2,3 Nokia Siemens Network, PO Box 1 FI-02022 Nokia Siemens Networks 1 ran@rannicon.com, 2 ismo.aro@nsn.com,

More information

I N T E R S Y S T E M S W H I T E P A P E R INTERSYSTEMS CACHÉ AS AN ALTERNATIVE TO IN-MEMORY DATABASES. David Kaaret InterSystems Corporation

I N T E R S Y S T E M S W H I T E P A P E R INTERSYSTEMS CACHÉ AS AN ALTERNATIVE TO IN-MEMORY DATABASES. David Kaaret InterSystems Corporation INTERSYSTEMS CACHÉ AS AN ALTERNATIVE TO IN-MEMORY DATABASES David Kaaret InterSystems Corporation INTERSYSTEMS CACHÉ AS AN ALTERNATIVE TO IN-MEMORY DATABASES Introduction To overcome the performance limitations

More information

Big Data Integration: A Buyer's Guide

Big Data Integration: A Buyer's Guide SEPTEMBER 2013 Buyer s Guide to Big Data Integration Sponsored by Contents Introduction 1 Challenges of Big Data Integration: New and Old 1 What You Need for Big Data Integration 3 Preferred Technology

More information

Performance from problem solving. An interview with three leaders at MassMutual

Performance from problem solving. An interview with three leaders at MassMutual 123 Performance from problem solving An interview with three leaders at MassMutual At MassMutual, problem solving leads to higher standards, which in turn mean more problems to solve. The constant cycle

More information

Power Tools for Pivotal Tracker

Power Tools for Pivotal Tracker Power Tools for Pivotal Tracker Pivotal Labs Dezmon Fernandez Victoria Kay Eric Dattore June 16th, 2015 Power Tools for Pivotal Tracker 1 Client Description Pivotal Labs is an agile software development

More information

What is the difference between Workflow Engines and BPM Suites?

What is the difference between Workflow Engines and BPM Suites? What is the difference between Workflow Engines and BPM Suites? Phil Gilbert Chief Technology Engineer Lombardi Software May 2005 Table of Contents Introduction... 3 The Workflow Solutions of the 90 s...

More information

Agile with XP and Scrum

Agile with XP and Scrum Agile with XP and Scrum Amit Goel National Agile Software Workshop @ Indore Agile India Conference Agile Software Community of India Disclaimer and Credits Most of material in this presentation has been

More information

How to Overcome the Top Ten Objections in Credit Card Processing

How to Overcome the Top Ten Objections in Credit Card Processing How to Overcome the Top Ten Objections in Credit Card Processing Handling the Top Ten Objections Objection #1 I have a contract That s exactly why I m calling you, you see most people we work with have

More information

Oracle Forms and SOA: Software development approach for advanced flexibility An Oracle Forms Community White Paper

Oracle Forms and SOA: Software development approach for advanced flexibility An Oracle Forms Community White Paper Oracle Forms and SOA: Software development approach for advanced flexibility An Oracle Forms Community White Paper Malcolm Smith Atos Origin April 2008 Oracle Forms and SOA: Software development approach

More information

Introducing DocumentDB

Introducing DocumentDB David Chappell Introducing DocumentDB A NoSQL Database for Microsoft Azure Sponsored by Microsoft Corporation Copyright 2014 Chappell & Associates Contents Why DocumentDB?... 3 The DocumentDB Data Model...

More information

What is Data Virtualization?

What is Data Virtualization? What is Data Virtualization? Rick F. van der Lans Data virtualization is receiving more and more attention in the IT industry, especially from those interested in data management and business intelligence.

More information

New Generation of Software Development

New Generation of Software Development New Generation of Software Development Terry Hon University of British Columbia 201-2366 Main Mall Vancouver B.C. V6T 1Z4 tyehon@cs.ubc.ca ABSTRACT In this paper, I present a picture of what software development

More information

What Does Large Mean? Copyright 2003 by N. Josuttis and J. Eckstein 3. Why is Large an Issue?

What Does Large Mean? Copyright 2003 by N. Josuttis and J. Eckstein 3. Why is Large an Issue? Skalierung von agilen Prozessen Ein Erfahrungsbericht OOP 2003 Jutta Eckstein Nicolai Josuttis This Talk is About Agility Large Experience Success Copyright 2003 by N. Josuttis and J. Eckstein 2 1 What

More information

I. Computer Consulting in the 21 st Century

I. Computer Consulting in the 21 st Century Managed Services in a Month 2 nd Ed. 9 I. Computer Consulting in the 21 st Century 1. What s Different About Technology Consulting Today? Without getting into a big When I was a kid we had to build our

More information

SharePoint. Governance. Benjamin Niaulin

SharePoint. Governance. Benjamin Niaulin SharePoint Governance By Benjamin Niaulin ABOUT THE AUTHOR Benjamin Niaulin @bniaulin Geek and SharePoint MVP, Benjamin has been around the globe helping people reach their goals by simplifying SharePoint.

More information

EXTREME PROGRAMMING AGILE METHOD USED IN PROJECT MANAGEMENT

EXTREME PROGRAMMING AGILE METHOD USED IN PROJECT MANAGEMENT EXTREME PROGRAMMING AGILE METHOD USED IN PROJECT MANAGEMENT Cruceru Anca Romanian- American University, Faculty of Management- Marketing, 1B Expozitiei Blvd, Bucharest, cruceruanca@yahoo.com, 0723508894

More information

FREE REPORT: Answers To The Top 5 Questions Business Owners Have About Cloud Computing

FREE REPORT: Answers To The Top 5 Questions Business Owners Have About Cloud Computing FREE REPORT: Answers To The Top 5 Questions Business Owners Have About Cloud Computing Discover What Most IT Consultants Don t Know Or Won t Tell You About Moving Your Company s Network To The Cloud By

More information

Revitalizing Your CRM Initiative. Why the Need to Revitalize?

Revitalizing Your CRM Initiative. Why the Need to Revitalize? Revitalizing Your CRM Initiative In this three article series, we re considering a few of the most relevant Customer Relationship Management (CRM) practices that can impact the effectiveness of small and

More information

What You Don t Know Will Haunt You.

What You Don t Know Will Haunt You. Comprehensive Consulting Solutions, Inc. Business Savvy. IT Smart. Joint Application Design (JAD) A Case Study White Paper Published: June 2002 (with revisions) What You Don t Know Will Haunt You. Contents

More information

NEDARC POSITION PAPER

NEDARC POSITION PAPER Which Database Will Serve Your Needs? National EMSC Data Analysis Resource Center Central to any EMS, public health, or large healthcare organization is the collection, storage, retrieval, and analysis

More information

Data virtualization: Delivering on-demand access to information throughout the enterprise

Data virtualization: Delivering on-demand access to information throughout the enterprise IBM Software Thought Leadership White Paper April 2013 Data virtualization: Delivering on-demand access to information throughout the enterprise 2 Data virtualization: Delivering on-demand access to information

More information

In depth study - Dev teams tooling

In depth study - Dev teams tooling In depth study - Dev teams tooling Max Åberg mat09mab@ Jacob Burenstam Linder ada09jbu@ Desired feedback Structure of paper Problem description Inconsistencies git story explanation 1 Introduction Hypotheses

More information

Secrets to Automation Success. A White Paper by Paul Merrill, Consultant and Trainer at Beaufort Fairmont, LLC

Secrets to Automation Success. A White Paper by Paul Merrill, Consultant and Trainer at Beaufort Fairmont, LLC 5 Secrets to Automation Success A White Paper by Paul Merrill, Consultant and Trainer at Beaufort Fairmont, LLC 5 Secrets to Automated Testing Success 2 Secret #1 Practice Exceptional Leadership If you

More information

6.042/18.062J Mathematics for Computer Science. Expected Value I

6.042/18.062J Mathematics for Computer Science. Expected Value I 6.42/8.62J Mathematics for Computer Science Srini Devadas and Eric Lehman May 3, 25 Lecture otes Expected Value I The expectation or expected value of a random variable is a single number that tells you

More information

Why the CRM system you ve got doesn t do what you want

Why the CRM system you ve got doesn t do what you want 1 Why the CRM system you ve got doesn t do what you want Why the CRM system you ve got doesn t do what you want If you often find yourself wondering why your CRM system is not really making your life easier

More information

Standard Bank. Case Study

Standard Bank. Case Study Standard Bank Case Study A move to a new London landmark headquarters built to the latest environmental standards triggered an IT revolution for a top international bank. Today, Standard Bank is reaping

More information

by Heather Oppenheimer and Steve Baldassano

by Heather Oppenheimer and Steve Baldassano Switching Tracks: Finding the Right Way to Get to Maturity Level 2 by Heather Oppenheimer and Steve Baldassano When your customer contract requires that your software development process must be CMMI Level

More information

The Benefits of Deployment Automation

The Benefits of Deployment Automation WHITEPAPER Octopus Deploy The Benefits of Deployment Automation Reducing the risk of production deployments Contents Executive Summary... 2 Deployment and Agile software development... 3 Aim to deploy

More information

Bringing cloud services together. A point of view

Bringing cloud services together. A point of view Bringing cloud services together A point of view O rganisations rarely achieve great things alone. They need partners. People with the specialist expertise to cut through complexity. People who can make

More information

Launching Extreme Programming at a Process- Intensive Company

Launching Extreme Programming at a Process- Intensive Company focus reports from the field Launching Extreme Programming at a Process- Intensive Company James Grenning, Object Mentor A company that has traditional formal processes launched a project using many Extreme

More information

REWARD System For Even Money Bet in Roulette By Izak Matatya

REWARD System For Even Money Bet in Roulette By Izak Matatya REWARD System For Even Money Bet in Roulette By Izak Matatya By even money betting we mean betting on Red or Black, High or Low, Even or Odd, because they pay 1 to 1. With the exception of the green zeros,

More information

THE STATESMAN. A GWC Student Attends Law School. New 2005 George Wythe College Campus. Happy Holidays! From George Wythe College. On Campus Seminars:

THE STATESMAN. A GWC Student Attends Law School. New 2005 George Wythe College Campus. Happy Holidays! From George Wythe College. On Campus Seminars: THE STATESMAN Volume 8 Issue 12 December 2005 Happy Holidays! From George Wythe College On Campus Seminars: Dec 16-17 Mar 4-5 Mar 7-8 May 2-27 May 30-31 July 15-16 Roots of America How to Read a Book A

More information

White Paper 6 Steps to Enhance Performance of Critical Systems

White Paper 6 Steps to Enhance Performance of Critical Systems White Paper 6 Steps to Enhance Performance of Critical Systems Despite the fact that enterprise IT departments have invested heavily in dynamic testing tools to verify and validate application performance

More information

DEFINITELY. GAME CHANGER? EVOLUTION? Big Data

DEFINITELY. GAME CHANGER? EVOLUTION? Big Data Big Data EVOLUTION? GAME CHANGER? DEFINITELY. EMC s Bill Schmarzo and consultant Ben Woo weigh in on whether Big Data is revolutionary, evolutionary, or both. by Terry Brown EMC+ In a recent survey of

More information

The Rules 1. One level of indentation per method 2. Don t use the ELSE keyword 3. Wrap all primitives and Strings

The Rules 1. One level of indentation per method 2. Don t use the ELSE keyword 3. Wrap all primitives and Strings Object Calisthenics 9 steps to better software design today, by Jeff Bay http://www.xpteam.com/jeff/writings/objectcalisthenics.rtf http://www.pragprog.com/titles/twa/thoughtworks-anthology We ve all seen

More information

Scrum Is Not Just for Software

Scrum Is Not Just for Software Scrum Is Not Just for Software A real-life application of Scrum outside IT. Robbie Mac Iver 2/9/2009. Agile methods like Scrum can be applied to any project effort to deliver improved results in ever evolving

More information

www.arden Fumigation.com (408) 279-2040 1

www.arden Fumigation.com (408) 279-2040 1 1 FREE REPORT 5 Crucial Things You Should Know Before Choosing a Pest Control Service 2 We all know how difficult it is when we need to get rid of pests in our house. It is even more difficult to do it

More information

A Simple Guide to Churn Analysis

A Simple Guide to Churn Analysis A Simple Guide to Churn Analysis A Publication by Evergage Introduction Thank you for downloading A Simple Guide to Churn Analysis. The goal of this guide is to make analyzing churn easy, meaning you wont

More information

Zuberance. LeadMD Case Study. Getting More Out of a Marketing Automation Investment

Zuberance. LeadMD Case Study. Getting More Out of a Marketing Automation Investment LeadMD Case Study Zuberance Getting More Out of a Marketing Automation Investment Zuberance was using Marketo prior to finding LeadMD, but they struggled with the platform. Their marketing automation and

More information

Chapter 1. Why the Web Industry Needs XP

Chapter 1. Why the Web Industry Needs XP Chapter 1 Why the Web Industry Needs XP We are all in the gutter, but some of us are looking at the stars. Oscar Wilde Web development is an adolescent, unique in its requirements and unparalleled in its

More information

What is Data Virtualization? Rick F. van der Lans, R20/Consultancy

What is Data Virtualization? Rick F. van der Lans, R20/Consultancy What is Data Virtualization? by Rick F. van der Lans, R20/Consultancy August 2011 Introduction Data virtualization is receiving more and more attention in the IT industry, especially from those interested

More information

Section 1: Introduction to the Employee Satisfaction Roll Out Process 3

Section 1: Introduction to the Employee Satisfaction Roll Out Process 3 TABLE OF CONTENTS: Section 1: Introduction to the Employee Satisfaction Roll Out Process 3 Section 2: The Survey Roll Out Process Defined... 4-15 1: Survey Completed And Data Collected. 4 2: Leaders Trained

More information

What mathematical optimization can, and cannot, do for biologists. Steven Kelk Department of Knowledge Engineering (DKE) Maastricht University, NL

What mathematical optimization can, and cannot, do for biologists. Steven Kelk Department of Knowledge Engineering (DKE) Maastricht University, NL What mathematical optimization can, and cannot, do for biologists Steven Kelk Department of Knowledge Engineering (DKE) Maastricht University, NL Introduction There is no shortage of literature about the

More information

The TrakQuip solution by Corporate Services Decreased Frustrations & Increased Productivity for Bay-Tech Equipment Rentals, Inc.

The TrakQuip solution by Corporate Services Decreased Frustrations & Increased Productivity for Bay-Tech Equipment Rentals, Inc. The TrakQuip solution by Corporate Services Decreased Frustrations & Increased Productivity for Bay-Tech Equipment Rentals, Inc. Bay-Tech Equipment Rentals, Inc. and Bay-Tech Industries, Inc. are full

More information

SEO MADE SIMPLE. Strategies for Dominating the World s Largest Search Engine. Second Edition. by Michael H. Fleischner

SEO MADE SIMPLE. Strategies for Dominating the World s Largest Search Engine. Second Edition. by Michael H. Fleischner SEO MADE SIMPLE Second Edition Strategies for Dominating the World s Largest Search Engine by Michael H. Fleischner SEO Made Simple (Second Edition) All rights reserved Copyright 2011 by Michael H. Fleischner

More information

True Stories: My Debt Crisis

True Stories: My Debt Crisis Read the following article and consider the following questions for the individual involved: 1. What were the threats and poor decisions? 2. What were the positive actions and good decisions? 3. What would

More information

An Approach for Extracting Modules from Monolithic Software Architectures

An Approach for Extracting Modules from Monolithic Software Architectures An Approach for Extracting Modules from Monolithic Software Architectures Ricardo Terra, Marco Túlio Valente, Roberto S. Bigonha Universidade Federal de Minas Gerais, Brazil {terra,mtov,bigonha@dcc.ufmg.br

More information

Migrating from Managing to Coaching

Migrating from Managing to Coaching a ValueSelling Associates Migrating from Managing to Coaching How to bring out the best in sales teams and increase bottom lines The role that frontline sales managers play in coaching to the right skills,

More information

Concepts and terminology in the Simula Programming Language

Concepts and terminology in the Simula Programming Language Concepts and terminology in the Simula Programming Language An introduction for new readers of Simula literature Stein Krogdahl Department of Informatics University of Oslo, Norway April 2010 Introduction

More information

History of Agile Methods

History of Agile Methods Agile Development Methods: Philosophy and Practice CPSC 315 Programming Studio Fall 2010 History of Agile Methods Particularly in 1990s, some developers reacted against traditional heavyweight software

More information

Development Techniques. CSE301 University of Sunderland Harry R. Erwin, PhD

Development Techniques. CSE301 University of Sunderland Harry R. Erwin, PhD Development Techniques CSE301 University of Sunderland Harry R. Erwin, PhD Sources Boehm, 1981, Software Engineering Economics, Prentice- Hall. Stephens and Rosenberg, 2003, Extreme Programming Refactored:

More information

1.2. The key benefits of the shift to the cloud... 3. 1.3. The emergence of No-code metadata driven application platforms... 4

1.2. The key benefits of the shift to the cloud... 3. 1.3. The emergence of No-code metadata driven application platforms... 4 Table of Contents 1. Fundamental shifts driving imminent change for Enterprise Software Applications... 3 1.1. The emergence of the Cloud Computing paradigm... 3 1.2. The key benefits of the shift to the

More information

How to Study Mathematics Written by Paul Dawkins

How to Study Mathematics Written by Paul Dawkins How to Study Mathematics Written by Paul Dawkins Before I get into the tips for how to study math let me first say that everyone studies differently and there is no one right way to study for a math class.

More information

ERP Systems and their Effects on Organizations: A Proposed Scheme for ERP Success

ERP Systems and their Effects on Organizations: A Proposed Scheme for ERP Success ASEE 2014 Zone I Conference, April 3-5, 2014, University of Bridgeport, Bridgeport, CT, USA. ERP Systems and their Effects on Organizations: A Proposed Scheme for ERP Success Khaled Almgren Computer Science

More information

White Paper. Java versus Ruby Frameworks in Practice STATE OF THE ART SOFTWARE DEVELOPMENT 1

White Paper. Java versus Ruby Frameworks in Practice STATE OF THE ART SOFTWARE DEVELOPMENT 1 White Paper Java versus Ruby Frameworks in Practice STATE OF THE ART SOFTWARE DEVELOPMENT 1 INTRODUCTION...3 FRAMEWORKS AND LANGUAGES...3 SECURITY AND UPGRADES...4 Major Upgrades...4 Minor Upgrades...5

More information

Quality in an Agile World BY SCOTT AMBLER Ambysoft, Inc.

Quality in an Agile World BY SCOTT AMBLER Ambysoft, Inc. TALKING POINTS Quality is an inherent aspect of true agile software development. The majority of agilists take a test-driven approach to development where they write a unit test before they write the domain

More information

THE ELEMENTS OF USER EXPERIENCE

THE ELEMENTS OF USER EXPERIENCE THE ELEMENTS OF USER EXPERIENCE USER-CENTERED DESIGN FOR THE WEB Jesse James Garrett chapter 2 Meet the Elements THE ELEMENTS OF USER EXPERIENCE 21 The user experience development process is all about

More information

Picture yourself in a meeting. Suppose there are a dozen people

Picture yourself in a meeting. Suppose there are a dozen people 1 WHAT IS ACCOUNTABILITY, REALLY? Hypocrisy exists in the space between language and action. Picture yourself in a meeting. Suppose there are a dozen people seated around a table and someone says, I m

More information

ITERATIVE DEVELOPMENT: KEY TECHNIQUE FOR MANAGING SOFTWARE DEVELOPMENTS. Dwayne Read Strategic Systems (WA) Pty Ltd dwayne@ss.com.

ITERATIVE DEVELOPMENT: KEY TECHNIQUE FOR MANAGING SOFTWARE DEVELOPMENTS. Dwayne Read Strategic Systems (WA) Pty Ltd dwayne@ss.com. ITERATIVE DEVELOPMENT: KEY TECHNIQUE FOR MANAGING SOFTWARE DEVELOPMENTS Dwayne Read Strategic Systems (WA) Pty Ltd dwayne@ss.com.au Abstract Iterative development provides the fundamental structure that

More information

The Economic Value of Certainty By Les McGuire, MBA August 19, 2003

The Economic Value of Certainty By Les McGuire, MBA August 19, 2003 The Economic Value of Certainty By Les McGuire, MBA August 19, 2003 This is supposed to be an article about Whole Life Insurance, and for those who have eyes to see it is. However, before discussing product,

More information

FREE REPORT: Answers To The Top 5 Questions Business Owners Have About Cloud Computing

FREE REPORT: Answers To The Top 5 Questions Business Owners Have About Cloud Computing FREE REPORT: Answers To The Top 5 Questions Business Owners Have About Cloud Computing Discover What Most IT Consultants Don t Know Or Won t Tell You About Moving Your Company s Network To The Cloud By

More information

How Agile methods resolve chaos and unpredictability in software projects

How Agile methods resolve chaos and unpredictability in software projects WHITE PAPER How Agile methods resolve chaos and unpredictability in software projects Author: Jack Milunsky Scrum Master and COO Brighstpark3 January 2009 INTRODUCTION This paper attempts to show why an

More information

VOXOX 5BENEFITS OF A. HOSTED VoIP SOLUTION FOR MULTI-OFFICE BUSINESSES. a VOXOX ebook. Communications to the Cloud:

VOXOX 5BENEFITS OF A. HOSTED VoIP SOLUTION FOR MULTI-OFFICE BUSINESSES. a VOXOX ebook. Communications to the Cloud: VOXOX 5BENEFITS OF A HOSTED VoIP SOLUTION FOR MULTI-OFFICE BUSINESSES a VOXOX ebook 0Taking 2013 VOXOX, Inc. Communications to the Cloud: CONTENTS 2 INTRODUCTION 3 TOP CHALLENGES 7 FINDING A SOLUTION 12

More information

A conversation with Scott Chappell, CMO, Sessions Online Schools of Art and Design

A conversation with Scott Chappell, CMO, Sessions Online Schools of Art and Design A conversation with Scott Chappell, CMO, Sessions Online Schools of Interviewed by: Steven Groves, StevenGroves.com Guy R. Powell, DemandROMI Can you talk to us a little bit about Sessions and what Sessions

More information

How to Improve Your Software Release Management Process A Real-time Case Study

How to Improve Your Software Release Management Process A Real-time Case Study How to Improve Your Software Release Management Process A Real-time Case Study Software projects take investment, support, development and a lot of hard work and dedication. Good release management practices

More information

INDEX. Introduction Page 3. Methodology Page 4. Findings. Conclusion. Page 5. Page 10

INDEX. Introduction Page 3. Methodology Page 4. Findings. Conclusion. Page 5. Page 10 FINDINGS 1 INDEX 1 2 3 4 Introduction Page 3 Methodology Page 4 Findings Page 5 Conclusion Page 10 INTRODUCTION Our 2016 Data Scientist report is a follow up to last year s effort. Our aim was to survey

More information

Stop being Rails developer

Stop being Rails developer Stop being Rails developer Ivan Nemytchenko 2015 Ivan Nemytchenko I think this book should have been written in 2011. But nobody had written it, and I still see a huge demand for this topic to be covered

More information

Making Data Available on the Web

Making Data Available on the Web Making Data Available on the Web By Simba Technologies Inc. SimbaEngine ODBC SDK Introduction Many companies use web-based services to automate business processes like sales, track items like packages,

More information

The Top 3 Common Mistakes Men Make That Blow All Their Chances of Getting Their Ex-Girlfriend Back Which of these mistakes are you making?

The Top 3 Common Mistakes Men Make That Blow All Their Chances of Getting Their Ex-Girlfriend Back Which of these mistakes are you making? The Top 3 Common Mistakes Men Make That Blow All Their Chances of Getting Their Ex-Girlfriend Back Which of these mistakes are you making? By George Karanastasis, M.D. COPYRIGHT NOTICE THIS ELECTRONIC

More information

Getting started with API testing

Getting started with API testing Technical white paper Getting started with API testing Test all layers of your composite applications, not just the GUI Table of contents Executive summary... 3 Introduction... 3 Who should read this document?...

More information

Agile Software Development in the Large

Agile Software Development in the Large Agile Software Development in the Large GI-Vortrag Braunschweig Jutta Eckstein Nicolai Josuttis What Does Large Mean? Large in... scope time people money risks We focus on Large Teams which implies everything

More information

How To Save Money On Voice And Data For Your Business

How To Save Money On Voice And Data For Your Business 5 Ways Your Company is Wasting Money on Voice and Data 5 Ways Your Company is Wasting Money on Voice and Data By Scott Wells INTRODUCTION When was the last time you really took a cold, hard look at your

More information

Expert. Briefing. \\\\ Make Purpose, Communication Priorities in Data Governance

Expert. Briefing. \\\\ Make Purpose, Communication Priorities in Data Governance \\\\ Make Purpose, Communication Priorities in Data Governance If you aren t careful, data governance can be all bureaucracy and no benefit. To avoid that, managing the process effectively is a must, says

More information