• Agile Community
  • Agile For All
    • Agile for All Home
    • What We Do
    • Upcoming Courses
    • Contact Us
  • Blog
    • All Blog Posts
    • Agile Resources
    • Homeschool Resources
    • VC Interviews
  • Forums
    • Watercooler
    • Agile Topics
    • Agile Videos
    • Job Postings
    • Pre-Work & Documents for Training
    • Webinars & Live Stream Replays
    Sign in Sign up (it's free!)
    • Agile Community
    • Agile For All
      • Agile for All Home
      • What We Do
      • Upcoming Courses
      • Contact Us
    • Blog
      • All Blog Posts
      • Agile Resources
      • Homeschool Resources
      • VC Interviews
    • Forums
      • Watercooler
      • Agile Topics
      • Agile Videos
      • Job Postings
      • Pre-Work & Documents for Training
      • Webinars & Live Stream Replays

    • Log In
    • Register

    Category: Development

    Object Oriented Programming in a Nutshell

    Next year I’ll likely be teaching Essential Test-Driven Development to a team that includes about 50% COBOL programmers. I told the client I’d look for…

    Rob Myers 2018-11-08
    0 Comments

    Sharpen Your Knives

    You’ve heard the old adage about the lumberjack who—in order to cut a tree in an hour—will take 45 minutes to sharpen the saw? This…

    Rob Myers 2018-08-10
    0 Comments

    Good Design, part IV: The Role of Tests

    We’ve seen how refactoring becomes the primary design activity on an Agile team. Diligent, confident refactoring is possible to the degree that the code is…

    Rob Myers 2018-03-01
    0 Comments

    Good Design, Part III: Refactoring

    Remember this?  

    Rob Myers 2018-01-26
    1 Comment

    Good Design, Part II: Code Smells

    Last month we talked about good software design and introduced the notion of code smells. Code smells are names given to those instinctual thoughts you…

    Rob Myers 2017-12-19
    0 Comments

    Good Design

    I’ve learned not to assume a team has experienced a variety of software design skills. Some are writing elegant functional-paradigm code in archaic, challenging languages.…

    Rob Myers 2017-11-27
    0 Comments

    How TDD is More Than Simply Unit Testing

    I was recently asked about the difference between unit-testing and Test-Driven Development (TDD). Specifically, why—if the end results are the same—would I recommend TDD over…

    Rob Myers 2017-10-04
    1 Comment

    Frequently Asked Questions about Agile Technical Skills

    What are the Agile Engineering Skills, Scrum Developer Practices, or Software Craftsmanship practices? These are three (of many) common names for a set of practices…

    Rob Myers 2017-07-30
    2 Comments

    Be an Expert in a Year – Growing the Agile Way

    The guys over at Expert Table Tennis had a great idea. What would it take to become an expert? Dedication? Heart? Perseverance?

    Peter 2015-02-23
    0 Comments

    Agile antipattern: Sizing or estimating bug fixes

    Is the bug to the left a large bug or a small bug?  It looks HUGE to me!  Well, in reality it is probably between…

    Bob Hartman 2010-05-05
    10 Comments

    New to agile? Remember a user story is more than a card!

    What’s wrong with the user story on the card?  It seems to have everything we need: a) short title, b) a size (in this case…

    Bob Hartman 2010-05-03
    5 Comments

    New to agile? Learn how to split stories

    In my last blog Agile antipattern: Taking on large stories I said I would give you some tips on how to split stories.  First though, it is…

    Bob Hartman 2009-12-10
    5 Comments

    Agile antipattern: Code freezes during each iteration

    Over the past 18 months I’ve encountered a number of teams where it is standard practice to have a code freeze late in the iteration. …

    Bob Hartman 2009-04-23
    7 Comments

    Agile Architecture – It is NOT an Oxymoron!

    Many companies adopting agile have a hard time with the architecture and design of their large systems.  They like the concept of agile, but can’t…

    Bob Hartman 2009-04-06
    1 Comment

    Where do you want to go?

    • Community News Feed
    • Upcoming Courses
    • Blog Posts
    • Groups

    Welcome New Members

    Profile photo of Rodrigo Giraudo

    Rodrigo Giraudo became a registered member 2 days ago

    Profile photo of youssef rzaini

    youssef rzaini became a registered member 3 days ago

    Profile photo of Brian Aaland

    Brian Aaland became a registered member 6 days ago

    Profile photo of Andrew Ryder

    Andrew Ryder became a registered member 6 days ago

    Profile photo of Christine Sakaniwa

    Christine Sakaniwa became a registered member 6 days ago

    Making Agile a Reality.®

    303.766.0917 | 4833 Front Street, B-194 | Castle Rock, CO 80104 | © 2023 - Agile For All

    • AGILE COMMUNITY
    • UPCOMING COURSES
    • WHAT WE DO
    • REQUEST A QUOTE


    Forum Description

    Many companies adopting agile have a hard time with the architecture and design of their large systems.  They like the concept of agile, but can't understand how to emerge and meet architectural requirements just in time for the team to be able to proceed.  They get to the point where they believe "agile architecture" is an oxymoron like "jumbo shrimp" or "deafening silence."  It just doesn't make sense to them. The good news is there is finally starting to be some good information available about agile architecture.  The image on the left is one of many which can be found on the Internet when looking for information about this concept.  Finally, the agile community is putting some effort into answering the question which almost always arises during an agile transformation "What about the system architecture?" First of all, teams need to change a lot of their thinking about architecture.  Instead of "how do all of these pieces and parts fit together nicely", the thought process needs to revolve around minimizing the cost of change and delivering customer value.  So a good first step is thinking "how do I separate all of these pieces so change is easy" and following that up with "what value can be delivered with small pieces of the overall architecture in place?"  David Bernstein has an excellent post "Who Needs Architecture and Design?" on his blog.  In it he points out 6 major differences between agile projects and traditional projects when it comes to architecture and design:
    1. Defer making decisions until they are needed
    2. Constantly strive to provide value to the customer from day 1
    3. Drive development from acceptance tests and unit tests
    4. Use TDD to create “living specifications”
    5. Seek to encapsulate as much as possible
    6. Know what decisions cannot be easily encapsulated and therefore must be made up front.
    It is interesting that all 6 of these items involve more than just an architect.  They involve developers and in some cases testers.  Everyone is involved in making sure the system functions properly as a whole, not just the architects!  All of this is covered in David's Agile Architecture and Development - Essential Patterns and Practices course.  He is giving the course on June 16-17 in Seattle.  The early-bird discount expires on May 15.  This course WILL sell out, so be sure to sign up early at http://agilearchitecture-agileforall.eventbrite.com/.  Remember, this is a course for more than just architects.  Developers will get a tremendous amount out of this course - in fact, many developers say the course is a defining moment for them in their careers because they finally understand how to efficiently emerge code and designs to meet customer requirements rather than just coding to the requirement of the day. The point of all this is to explain to everyone the concept of agile architecture is valid and not an oxymoron.  It requires different techniques and skills in order to be done properly.  You are not likely to just "fall into" doing it correctly.  I have done a bit of research on this topic and there are very few courses available to effectively teach these skills and techniques.  That is one of the reasons I recommend David's course to my clients and now publicly on my blog. Too many companies are starting down the agile path and ask the difficult question "What about the system architecture?"  The answer recently got a lot simpler: take David's course and find out what to do and how to do it!  OK, if you can't do that, then keep a few thoughts in mind and see how far you can get:
    1. What can be encapsulated and decided later?
    2. How can things be separated to reduce dependencies and the cost of change?
    3. How can architecture and design decisions be driven by concentrating on delivering value?  In other words, don't build architecture or design except as needed to deliver something with tangible value.
    4. Which decisions truly need to be made up front in order to drastically reduce waste later?
    Numbers 1 and 4 in the list really are two parts of the same thing in many cases.  If you can defer the decision you will likely have to encapsulate it.  If you can't encapsulate it then you may have to pay a price later for deferring it.  This isn't always true, but it sometimes helps to think of it this way.  However you think about it, you really need to concentrate on "just enough, just in time" or you will overbuild the architecture or design - which costs extra time and money (and in this economy both are in short supply!).  Number 3 is a key driver for success.  Don't just build infrastructure, build it only in the context of delivering value.  The infrastructure will then emerge over time and have exactly the right amount to support the state of the delivered system.  Refactoring will be cheaper than overbuilding as long as the cost of change is kept low.  It seems like more work, but will actually be faster in the end! Until next time I'll be my clients will emerge their architecture and designs in agile ways in order to be Making Agile a Reality™ for their organizations.

    Report

    There was a problem reporting this post.

    Harassment or bullying behavior
    Contains mature or sensitive content
    Contains misleading or false information
    Contains abusive or derogatory content
    Contains spam, fake content or potential malware

    Block Member?

    Please confirm you want to block this member.

    You will no longer be able to:

    • See blocked member's posts
    • Mention this member in posts
    • Invite this member to groups

    Please allow a few minutes for this process to complete.

    Report

    You have already reported this .