Thoughts from an enterprise architect

David Brandenburg Enterprise ArchitectToday we meet with David Brandenburg, an enterprise architect with 15 years of experience in various technology roles. David is also my fiancee, but we cast aside our wedding planning talk to discuss the interrelationships between our respective fields in enterprise architecture and business analysis.

David helps us see how new technologies can enable fancier functionality. I believe we need to understand what’s possible give today’s solutions to help our business stakeholders break out of preconceived notions regarding technology constraints and “think big”.

What technologies have become available that make many projects feasible today that were not feasible 3-5 years ago?

Three key developments have intersected to make much more sophisticated web applications a reality. The first is AJAX and the wide availability of tool kits to implement AJAX. Second is webservices which enable the re-use of core code bases and business logic across multiple pages within a web or client application. The third is the speed of infrastructure to support the bandwidth and processing power, enabling the effective the use of AJAX and web services in business applications.

What does kind of functionality does AJAX enable?

AJAX is used in web applications and makes them more interactive. Functionality like automatic data updates on the same screen (without a refresh) and field-level validation in the user interface are possible. In the past, businesses that wanted interactive applications where destined to use an installable software package. Today, web applications can be used to offer the same level of interactivity.

AJAX as a technology is not really all that new. But what is new is that there are tool kits and libraries available to implement AJAX, making the front-end development efforts much more efficient.

What does kind of functionality do web services enable?

An example of web services leveraged for reuse is Amazon’s “add to cart” function. This button is available across multiple web pages on the Amazon site and even via third party widgets. When you add something to your cart, Amazon validates the item and executes a core set of business logic. Previously in web programming, that business logic would have been stored on each and every page with the “Add to Cart” button. Now, web services make it possible to have a single piece of code that is consumed by multiple pages. This has significant value in terms of scaling and maintaining of the application.

How does a web service architecture impact software requirements?

When you are updating the business logic for an application that leverages web services for core functionality, you need to be aware of the impact of a change to the service across the enterprise. Requirements and design need to take an “enterprise” view. Small changes to one page or one piece of logic can impact multiple parts of the application.

Where does infrastructure fit in?

Originally, a web page did not require any special hardware. With technologies that enable applications to be built and delivered online, more sophisticated hardware is required to handle the transactions. Faster routers and larger bandwidth capabilities have really enabled companies to leverage technologies like AJAX and web services in powerful ways.

When planning a project, it’s important to understand the potential number of users and page views so that good decisions can be made in designing the infrastructure for a web application.

What’s your perspective on good software requirements?

Good requirements pull together screen shots and the detail behind the logic on the screen. This might come in terms of a use case or a business rules specification. It’s important to understand not just how the application will look but how it will work. If this logic isn’t there, developers come up with a lot of questions about specific scenarios that slows down the development process.

How can business analysts improve how they work with software developers?

I have a pet peeve for when developers get pulled into meetings before the concept is fleshed out. Oftentimes, anything the business wants is possible. The technology is nearly always there to support the requests. Until the concept is nailed down you can’t really talk about trade-offs and possible solutions, and that’s where the development team can provide the most value in terms of contributing to meetings.

Free Training - Quick Start to Success

(Stop the frustration and earn the respect
you deserve as a business analyst.)

Click here to learn more

By signing up, you agree to our Privacy Policy.

Comments

  1. Remember the old rule, keep the whats (Requirements) separate from the Hows (Design). By doing this AND tracing between the two, one amasses a broadened view of the architecture and infrastructure. So, if the org decides to implement the same set of requirements in a brand new way, there is still an understanding of what the core functionality is.

  2. Hi Doug,
    No worries…be as critical as you feel appropriate! I don’t think anything is going to happen to this wedding. 🙂

    You bring up some good points on how a web services architecture also can be served by good requirements traceability. Our organizations are getting more interwoven and complex and with that so are the systems that support them. I’d be interested to hear how you’d approach modeling a web services design in a requirements traceability matrix. Is there a way to keep all of these entities in sync at a requirements level or is it really a design traceability?

    Laura

  3. When reading your post with David, I had in the back of my mind many concepts that also pushed me to write my recent article: The Value of Requirements Traceability http://bit.ly/406hQ6.

    Your post ties nicely into these concepts by describing how organizations are using new technologies to bring forward new capabilities. Therefore, it’s critical to understand core capabilities in a system before altering them or exposing them across an enterprise… or even external to the enterprise. David’s answers regarding web services illustrate this very well,

    “web services make it possible to have a single piece of code that is consumed by multiple pages”

    Reuse and enterprise exposure of core elements has been rapidly changing not only how users interact with systems, but also the way in which those systems are constructed and accessed. To your question about how analysts can improve their work with developers, I’d like to offer the suggestion of collaborative accountability. The two roles should work together in these development scenarios to fully understand impacts to systems and core functionality prior to and during the implementation of changes like the ones David described. To bring this suggestion full circle, the method to accomplish this during the collaboration is requirements traceability.

    BTW….you’re really setting us up here. Even if I had negative criticism of this post, I could never tell you without fear of causing the wedding to be called off.:)

Comment

*

Before you go, would you like to receive our absolutely FREE workshop?

(No formal experience required.)

21689
21690

Quick Start to Success
as a Business Analyst

By signing up, you agree to our Privacy Policy.