in

 

Joe Ocampo (AgileJoe)

Answering all world issues and questions with, "...it depends..."

September 2007 - Posts

  • There is always time for TDD

    I just finished reading Dean Wamplers post on Why you have time for TDD (but may not know it yet...).  He brings up excellent's points that Agilist struggle with when trying to convey to a client on why they need TDD and how they can justify spending the time to do it.  A must read.

  • I'm looking for a few good developers - contract

    If you are in the San Antonio area and want to work with a great Agile team on a 6 month contract let me know.  I am currently taking application for 3 web developers.  If you are interested go ahead and click on the contact link.

    Here is the job description:

    Job Duties: Under general direction, perform web application development of the Internet Loan Systems

    Experience/Skills Required: To provide guidance and understanding of various software development practices as part of a team. Will be responsible for evangelizing Agile Development practices and Object-Oriented development practices as it relates to the Internet Loan Systems.

    Under general direction, the Web Developer will be responsible for understanding customer needs, and developing enterprise domain centric software. They will be required to effectively communicate with business partners, technical counterparts, and all levels of management regarding development, release status and unit test coverage. This individual must be willing to work a flexible work shift as needed to participate in the implementation of scheduled system releases. They must be able to coordinate and effectively facilitate group meetings. They should be able to mentor junior web developers, as well as manage varying priorities, and provide practical recommendations for improvement for the software development life cycle within a team environment.

    Education/Training: Education and/or work experience equivalent to a Bachelor’s Degree in Computer Science, Mathematics, or Business.

    Special Qualifications:

    Strong knowledge of:

    · ASP.NET 1.1 & 2.0

    · Agile Development Practices

    · ORM (Object Relational Mapping)

    · SOAP/WSDL Definition Syntax (Contract First Approaches)

    · C# 1.1 & 2.0 in an object-oriented environment utilizing design patterns (ex. Decorator, Factory, Observer)

    · NUnit in a Test Driven Development scenario

    · Practical application of agile development methodology.

    · SOA (Service Oriented Architecture)

    · Advanced JavaScript (Utilizing Object Oriented prototypes scripting patterns)

    · T-SQL

    · Enterprise Design Patterns (ex. Domain Logic, Object-Relational Structure, Session State)

    · XML

    · XSLT

    Knowledge in any of the following areas is a plus:

    • C++
    • Java
    • MSSQL 2000/2005
    • IIS
    • Windows Share point Services
    • Windows Server 2003
    • WSE (Web Service Enhancements)
    • Large development projects and system architecture
    • ASP
    • COM+
  • Cont: Where does the Ubiquitous Language come from?

    legos This is a follow up post to a question Scott Bellware asked me concerning origins of the Ubiquitous Language. To save you time with having to go back an forth between the post this was my response.

    "We practice a hybrid approach to the planning phase which introduces another layer above the story.  Cohn refers to this as an epic; we have elected to use the term Feature.

    The interesting aspect to all this is that the product owner(s), in our case 8 Business analyst all ask for varying features some even overlap at times.  The modeling teams which consist of a one BA, Modeler(developer), Developer, and QA all get together to model the feature from a high level.  It is a wonderful exercise as the team practices DDD modeling with everyone involved.  Spoken and written ideas form a HIGH LEVEL domain model.  Don't confuse our modeling with UML. 

    So we have a feature originating ubiquitous constructs a model that then refines those constructs into additional stories that can be prioritized in a backlog.  All the while cultivating the "ubiquitous language".  At the end of the day the developers all get together and present their models to the development team.  We distill the models to insure that other modeling teams are not coming up with the same ubiquitous terms and refine/clarify if needed.  If their are any major changes we reengage the business with QA.

    Why did I give everyone all this detail.  Because "it depends" on how your process originates terms that form the ubiquitous language.  Even though the terms may have existed far beyond any developer showing up, the terms are galvanized when people talks towards them in the hope of producing better software."

    And Scott Responded with:

    "Good points, Joe.

    My follow-up observation then is to your specific process.  Or rather, it's a question (or two):

    What are the benefits to eschewing story practices as the initiation of the process and going with agile modeling?"

    This is a very good question that Scott has asked but you need to know some background before I answer it.

    Background

    Our team started with XP around 4 years ago.  At first there was allot of resistance towards Agile in general.  It was too esoteric in nature for anyone to even trust or try.  Everyone was frustrated Developers, Business Analyst and Systems Analyst all where ready to give up.  There were several attempts to return to a traditional methodology but several members of the team stood fast and helped the department at least TRY Agile.

    As the team moved forward with developing systems for the business they learned to embrace Story cards but only to a certain extant.  Design documents were still drafted and accompanied the story cards.  This is a very bad thing!  Once a design document appears it is gospel and dialog ceases to flow.  It become very one sided and the discussion flows like this, "Make it work this way!"  The birth of entropy!  Time passed and we were able to convince them to discuss the stories with us prior to looking at design document.  There was a dialog that was forming but it wasn't ubiquitous.  In fact we discovered that even amongst the domain experts they had several terms for the same artifact!  Half of the country would call it one term while the other would call it another.  Another aspect that was suffering were acceptance tests.  The quality group didn't have enough information gathered during the planning sessions to write effective acceptance test.  We were practicing Agile but we were just getting by.  Sure we were creating working software every 6 weeks and quality was at an all time high but understanding of the Domain outside of the business and amongst the business was slowing deteriorating.  The system was getting so large that the business was stepping on each other.

    At this point our solution was at about 300K lines of code and approximately 2500 unit tests.  Pretty large.  What happened next is what really tested our team and Agile.

    We were given a new project that would extend and double the functionality of the current system.  To make things worse this project was date driven! We only had 9 months to complete it.  Based on the enormity of the project the team size practically tripled over night.  We had 12 business analyst 3 of which were remote.  We had a team of 7 quality technicians and 16 developers! 

    Don't forget we still had existing communication issues with what we were doing and this new effort only compounded that.  We had to do something to streamline the communication and cultivate the design of the new system.  Enter Domain Driven Design.

    We decided that if we were going to do this we needed a mechanism to flush the domain concepts out on the table and put the issues out there for everyone to see but we had to make sure it happened BEFORE we touched the code.  Having read Domain Driven Design twice by this point, I decided to train not only the development team but the business and quality group as well on the activities.  What happened next was simply amazing!

    Storming

    Before a release the team gets together with the business to discuss what "Features" the business is desiring.  After the business gives us a summary of the functionality we give each Feature a weight of High, Medium or Low.  What this signifies is an approximation of how long it will take to model each feature.  A "high" is 8 hours, a "medium" is 4 hours and a "low" is 2 hours.

    So what is a modeling session?

    A modeling session consist of a Business Domain Expert, a developer , QA, and a developer who has the soft skills to lead a modeling session, we call this developer "the modeler." 

    It begins by asking the Domain Expert to talk about the features, establishing the bounded context.  During the discussion the modeler is diagramming the model with colored note cards.  Entities are green, Value Objects are yellow, services blue etc.  The white cards typically notates the usage stereotypes of the model.  During the discussion the group pays special attention to insure that the ubiquitous terms are being used.  Because the dialog now has a tangible pictorial representation the team talks towards the model.  Anyone can add a new Entity or change a behavior to help cultivate the "ubiquitous language".  Problematic business cases immediately come to fruition and are dealt with outside of writing code but not done in a vacuum as traditional UML is practiced today.  The team has to pay additional focus in insuring that the modeling session stays within the features context.  If there are any artifacts that spill outside of the context that are put in a parking lot box and reprioritized for later modeling sessions.

    At the completion of the session the Modeler distills the model with the team into smaller stories that can exist on their own and deliver part of the feature.  It is important that as the Stories are being created that the QA representative examine the model to look for all the acceptance test that are going to be needed to call this story done.  If the QA representative can not figure out how to test it then it isn't a story! 

    What makes things complicated is that we have at any given point in time 4-5 modeling sessions happening concurrently.  So what happens at the end of the day.

    At the end of the day the modelers(developers) get together and compare their models.  They go through them to find any duplicate concepts or issues that may arise as a result of blending certain models together.  They take great care in using "Ubiquitous" terminology in expressing their models with one another.  If an issue arises then both teams reengage (Dev, QA, BA) to figure out a solution.  Usually it take a short time to refine both models so they play nice with one another.  The awesome part is that everyone learns!  The business understands their system much better and the developers have a greater understanding of what they are building as well.

    Now that we have all the stories defined for the release, the traditional planning game commences with SWAGS being given for how many points it is going to take to finish each story.  A give and take occurs between the business and development team but the business has a better picture of how the "nice to have stories" fit in with the "must have stories" due to the modeling exercise.

    So how long is this modeling/planning phase? Approximately a week.  Releases look like this typically.

    • Storming Phase (1 Day)
    • Modeling/Planning Phase (Approximately a week)
    • Iteration A (One week long)
    • Iteration B (One week long)
    • Iteration C (One week long)
    • SIT (One week long)
    • UAT/Production (One week long)

    What do you do with the models after a release?  If you ask me this at work, I am going to tell you that we archive them for future reference and review them periodically to insure that are integrally sound.  Outside of work.  The are put in a file cabinet or on a shelf and we rarely go back to them.  Usually if we have a  new similar feature arise we model again to insure that "time" has not changed it intention or value.

    Why the hell did you give us so much detail to answer this question?

    "What are the benefits to eschewing story practices as the initiation of the process and going with agile modeling?"

    Because (drum role) it depends!  If you have a small shop and one to two domain experts on site then modeling may be over kill.  Story cards should be all that you need to issue in discussion about the domain and still come up with a great design and a "ubiquitous language".  I gave you this detail to show you the evolution of the evaluation of circumstances that resulted in a domain modeling solution.  As Agile practitioners you must think outside the box.  Not one practice or methodology may make sense but don't blame the methodology or the practice.  Remember that "Agile" is an adjective not a noun.  Be agile when you approach any software development issue.  Use Agile development methodologies and proven agile software engineering practices as a chest of tools that help you to get your job done.  Above all never be dogmatic, be agile.

  • ...Programmers still in the Dark Ages???

    Have to say I was a little intrigued after reading this article on CNet.

    Which lead me to Charles Simonyi's company Intentional Software that claims to have a solution.  I couldn't find the solution but I did find this.

    "Businesses invest a great deal of time and expense developing software. But all too often the knowledge and insights gained during the development disappear into the details of the code or at best only exist in documents with slender ties to the actual source code. Another name for this latent value is the intent behind the software. That is why we call this approach Intentional Software™.

    Intentional Software captures the tremendous latent value that is usually lost in the design and development process and makes it part of the software. Using Intentional Software the domain knowledge is captured, not lost. All stakeholders - programmers, subject matter experts and others - can have their design intent clearly represented in the code. This increases the quality and value of the software, primarily by making it easier to develop, maintain and change.

    Many problems have been solved in our product development and we are currently working on application development projects with other organizations. A few more select projects with leaders in high value application areas would also be welcome."

    Isn't this what the BDD and Agile community is trying to address as a whole? Am I missing something?  How is this innovative?

  • Forget UltraMon Checkout Display Fusion

    I am a huge fan of multiple monitors.  I currently have a 24" windscreen LCD surrounded by two 19" LCDs.  To me this is development nirvana but it order to truly be productive you need software to help you manage so much screen real estate.  In the past I have used UltraMon.  This was great when I was running Windows XP but when I migrated to Vista UltraMon's usefulness was crippled by Aero.  That is until I ran across Display Fusion.

    Display Fusion is an awesome multi monitor utility.  It has a small footprint and best of all it is written in .Net 2.0.  I love that it doesn't depend on buttons being added to the title bar but key board shortcuts that utilize the lonely windows key.

    It does allot more but I will let the site speak to that.  Go ahead a check it out.

    Posted Sep 25 2007, 10:06 PM by Joe Ocampo with 3 comment(s)
    Filed under:
  • Folders 4 GMail

    I have officially given up on Internet Explorer as my preferred browser and now exclusively use FireFox!

    Since moving over to FireFox I have discovered the wonderful world of AddOns that FireFox has to offer.  If you are an avid user of GMail you will love the Better GMail addon.  It is basically a superset of some awesome GreaseMonkey scripts that make GMail a little more streamlined if you can believe that.

    One of the features that Better GMail adds is a folder structure for your labels that I have been craving for quiet sometime.  The difficult part and the inspiration for this post are that you wont find any documentation on how to enable it.  If you follow this link it should make things much easier.

    Posted Sep 23 2007, 01:04 AM by Joe Ocampo with 1 comment(s)
    Filed under:
  • Agile vs. Traditional Development Cost Models ...Maybe

    One of the developers in the lab had been talking to his friends, who is being introduced to Scrum.  One of the value proposition that they are selling to his friends company is that Agile will save you money in project cost.  I want to caution Agile Practitioners on selling this concept.  Agile produces higher value for the money but doesn't necessarily save you money in project cost.

    The models below are based on the following assumptions.

    "Given that you have one project that is fixed 12 months in duration and has a fixed amount of resources. What is the overall cost of the project?"

    It is important to note that we are not talking about maintenance cycles just the cost to the product owner for a project.

    • The project will last 12 months from January to December
      • Resources
        • 2 Business Analyst - Project cost of $40 an hour
        • 2 Systems Analyst - Project cost of $40 an hour
        • 4 Developers - Project cost of $70 an hour
        • 3 Quality Technicians - Project cost of $45 an hour

    Here is graph depicting the resource cost of a traditional model over the course of a year.

    image

    Not surprising this is what a traditional cost model looks like for a waterfall project but I wanted to add another dimension based on a value stream vs technical debt.

    image

    You can easily see how the cost of change is higher towards the end of the project due to incurring technical debt.  In a traditional methodology technical dept is not addressed head on, it is merely prioritized in a defect log.  I think all of us at one point in our careers have launched a product into production with a couple of hundred known defects.

    "Technical debt is the unfinished work the product development team accumulated from previous releases. This debt includes: design debt, where the design is insufficiently robust in some areas; development debt, where pieces of the code are missing; and testing debt, where tests were not developed or run against the code..."

    Kane Mar has an excellent article on the subject as well.

    Look at this from a Business perspective.  Does it matter that I have this debt?  The project is done and I am making money.  Who cares if it doesn't work exactly as I want. The point of the matter is, it is making money.  Money that can pay for the maintenance line.  Think Microsoft Vista.  Was it perfect?  NO!  Was it close to being perfect?  NO!  Did MS know that Vista had lots of bugs? Yes! Was it done to a state that could bring in money for the company?  Yes!

    One other very important attribute is that the "Value Stream" of the project is not incurred until the end of the project.

    Value Stream is the ROI that is incurred when components of a project are introduced into a production environment producing a revenue stream for the company.

    Now come the Agile models.  This first set of graphs is based on a evolving Agile team that practices an iterative development methodology  but only introduces code into production at the completion of a project.

    image

    As you can see the cost of requirements, development and testing are fixed.  This is due in part to the time boxing effect of Agile's Planning, Development and Testing into smaller releases throughout the duration of the project.  To some this may seem to be a horribly ineffective use of resources but for me it makes things more predictable.  You will also notice that their isn't a design cost.  Theoretically their is it is just absorbed within the development and planning stages.

    Lets look at the overall cost of this type of Agile Development.

    image

    As you can see the project cost are almost doubled in comparison to the traditional model.  However the value stream is substantially more, due in part to the constant feedback from the product owner and the embracement of change principles.  The technical debt is a fraction of the traditional model due in part to quality being introduced from the onset through the development team TDD practices and the testing teams automated testing.

    But lets look at a mature Agile Team that introduces working code into production at the end of every release!

    image

    The value stream is substantially higher due in part to introducing working code into production early on in the project, about every other month!

     

    So lets break it down.

    Methodology Project Cost Value Stream Technical Debt
    Traditional $354,600 $300,000 -$161,000
    Agile Evolving $650,400 $500,000 -$8,600
    Agile Matured $650,400 $1,550,000 -$8,600

     

    If your product owner is strictly concerned on cost and that is all that guides their decision making, then stick with a traditional model. (By the way you may want to consider looking for a new job if you work for this company.)

    As you can see Agile provides tremendous value and not necessarily project cost savings.  The quicker you are able to stabilize a production release the more you will increase the value stream for the business.  A win win for everyone involved.

    If you noticed I intentionally left bold the phrase "project cost savings" because as we all know, projects have end date but production applications don't!  Production systems need to be maintained and in a traditional model this is where the cost incursion becomes enormous due to technical debt.

     

    Before I get a borage of comments on the data that supports these claims, the data is based on perfect scenarios in both methodologies.  Like all data it can be adjusted to many outcomes I just wanted to be as fair as possible to both.

     

    I am really curious to see what this is going to spark out there.  Looking forward to your comments.

    kick it on DotNetKicks.com
  • I am having the Vista USB blues

    OK it has been three days now and Vista still cannot recognize ANY of my USB drives!  I have installed the latest cumulative update from the KB articles and ran through the steps here to recover the metabase for the drivers.  Has anyone else had this issue?

    I am afraid I am going to have to reinstall the OS. 

    Any suggestions would be greatly appreciated.

    Posted Sep 19 2007, 09:52 PM by Joe Ocampo with 6 comment(s)
    Filed under:
  • Do you need a sofa mover or a chair mover?

    I was talking to a peer of mine Tim Quinn, who I have spent the last year mentoring.  I have to say he surprised me, when one of our analyst argued about Paired Programming, Tim came up with this phrase:

    "If you have to move a couch you get two people, if you have to move a chair you get one.  The assumption with most people is that software simply consist of moving chairs, where in acutallity it is an entire household."


    A tear ran down my cheek.  This phrase compliments a post I just here

  • Agile Bibliography Wiki

    <info>

    George Dinwiddie announces the Agile Bibliography Wiki to track readings on the subject of agile, particularly those that are useful to back up a point, or which are useful references, and invites the community to help fill out the reading list.

    </info>

  • Ruby in Steel

    I want to get a little more serious about Ruby.  I was wondering if anyone has had any experience with Ruby in Steel.  It seems like the most logical choice for .Net developers at this time.  What other tools should a Windows developer use to have somewhat of the same development IDE experience of Visual Studio?

    Posted Sep 13 2007, 01:36 AM by Joe Ocampo with 12 comment(s)
    Filed under:
  • Complexity Based Programming

    So what is it? As an Agile practitioner do you ever struggle having to justify Paired Programming to management? Typical management reaction to even the idea of Paired Programming is “Why would I pay two programmers to do something what one programmer can do?” You can rant and rave about quality and breadth of knowledge exchange but to management money talks and (you can fill in the rest). So what can you do to better explain the argument from a cost perspective as well as quality perspective?

    Enter Complexity Based Programming. I don’t want you to think Complexity Based Programming is a radical departure or new concept of Paired Programming. On the contrary it is simply Paired Programming with a planning twist up front, that management usually byes off on.

    Let’s think of a basic story “As a user I want to have a login screen so I can authenticate users to my system.” Once you have the story written the development team usually takes it back and creates task in order to complete the story. A typical application has the following layers.

    image

    As you can see there are many layers that this login screen story will have to traverse in order to call it complete? But let’s think about each layer. I like to start in the middle at the domain layer.

    • The presentation layer simply needs some html.
    • Because you are an awesome shop you have an MVC framework of some kind to call into your Domain Layer and exchange view information into the presentation tier.
    • At the Domain Layer you are probably going to need a “User Entity” that uses a “User Login Service” to Authenticate.
    • The “User Login Service” is going to have to use a “User Repository” of some kind.
    • The “User Repository” is going to talk to a SQL Backend and use the “User Mapper” to map data elements to the User Object etc. (Note: you may not need this step if you are utilizing an ORM framework)
    • The SQL Server is going to have to have the User Table created.

    Ok so I have a list of task to do in order to support the completion of this story.

    • Story: User login Screen
      • Tasks
        • Create html (View)of login screen
        • Create Controller
        • Create User Domain Object (Model)
        • Create User Login Service
        • Create User Repository
        • Create User Mapper
        • § Create SQL for User Table

    Wow that’s quite a list! But let’s think about how the work is accomplished in an Agile development shop.

     

    Organic Self Organization

    Tasks are NEVER dictated and assigned to developers. Agile perpetuates organic self organizing teams. As a manger you simply insure that your back log is prioritized and explain to your team the Goals of that week.

    image

    The team will figure out how to accomplish the stories on their own. They understand that they can’t move on to the next story until one story is complete or two there isn’t enough work for the remaining members of the team. The end result looks like this.

    image

    So as teams self organize around completing story task, they typically pair on each one of the task and then move on to the next upon completion.

    I bet you already Pair Program to some degree and don’t know it. Ever been in a cube and you needed help figuring out an issue, so you asked your buddy next to you to come and help (Humility)? Is that some variation on Pair Programming? Well to some degree it is but let’s investigate this a little further. Why did you ask for help on this particular task? You added some simple html earlier. You created a simple SQL statement to create Table and a couple of fields. Did you not know that this particular component was going to be more complex than the fore mentioned? Nine times out of ten you did. When someone mentioned in the planning session that the team was going to have to create a Repository, SQL Mapper you cringed. There in is the beauty of Complexity Based Programming. Observe.

    Let’s look at the same User Login Story from above and imagine you are in the planning phase of a release. You see that the team has given it an estimate of 2 Units to complete.

    • Story: User login Screen [2 Units]

    That’s great but my team likes to estimate at a more granular level. What they do is put ideal person hours to complete a given task. Remember that this is an approximation.

    NOTE: Completion of task assumes that there are unit test created as well.

    • Story: User login Screen [2 Units]
      • Tasks
        • Create html (View)of login screen [1 Hour]
        • Create Controller [2 Hour]
        • Create User Domain Object (Model) [1 Hour]
        • Create User Login Service [1 Hour]
        • Create User Repository [2 Hour]
        • Create User Mapper [2 Hour]
        • Create SQL for User Table [1 Hour]

    Now that you have your task estimated lets rate them on their complexity. What do you mean by complexity? The Complexity is a subjective rating given to each task based on the teams experience level with the task and or their feelings about the complexity of a given task. To keep things simple the team gives each task a rating of [L]ow or {H}igh. Don’t make this any more complicated than it needs to be. Meaning don’t starting counting lines of code or measuring Cyclomatic complexity ratings on existing classes! Just allow the developers to use their best judgment.

    • Story: User login Screen [2 Units]
      • Tasks
        • [L] Create html (View)of login screen [1 Hour]
        • {H} Create Controller [2 Hour]
        • [L] Create User Domain Object (Model) [1 Hour]
        • {H} Create User Login Service [1 Hour]
        • {H] Create User Repository [2 Hour]
        • {H} Create User Mapper [2 Hour]
        • [L] Create SQL for User Table [1 Hour]

    So what do the complexity ratings give us? They allow you to plan upfront on what tasks are going to need more than one programmer to insure the integrity of the system is working correctly. Yup that right tell management you planned to have two resources on that task. They also allow you to justify the person hours that are needed in order to complete each task. How? Like this.

    • Story: User login Screen [2 Units]
      • Tasks
        • [L] Create … screen [1 Hour] x 1 Developer = 1 Hour
        • {H} Create Controller [2 Hour] x 2 Developers = 4 Hours
        • [L] Create … (Model) [1 Hour] x 1 Developer = 1 Hour
        • {H} Create … Service [1 Hour] x 2 Developers = 2 Hours
        • {H} Create … Repository [2 Hour] x 2 Developers = 4 Hours
        • {H} Create … Mapper [2 Hour] x 2 Developers = 4 Hours
        • [L] Create … Table [1 Hour] x 1 Developer = 1 Hour
      • Total Estimated Person Hours = 17 Hours

    If you are really seasoned team you can take your Total Estimated Person Hours to determine the weight of your story. I don’t encourage this unless you are a really seasoned team. Why? Because the purpose of the planning game is not about accuracy of estimation it is about approximation based on experience of the team with system under development. Velocity will be adjusted based on the team’s delivery of working software not on their estimates. All this scale gives you is the equivalent of a target but that doesn’t mean the team will hit it nor should they be reprimanded if they don’t hit it. Team dynamics of forming, storming, norming and performing affect all these variables. All I am trying to give is options for how to justify 2 people at one keyboard to management in terms they will understand.

    image

    If you don’t like this approach to paired programming, you may want to consider Alistar Cockburn’s Crystal Clear approach of Side by Side programming. As Agile Teams mature they eventually end up here anyway.

    • Scrum Creates Job Opportunities

      Well maybe at least for consultants that is.

       

      I am going to state something that is obvious to me but maybe I am just being naive.

       

      I think that Scrum creates 3 different types of job roles:

      1. Scrum Master: This person is basically a project manager and leader over the process and the project.
      2. Scrum Lord: This is a new term that we came up with during my Scrum Master training a year ago, A Scrum Lord is basically the person in charge of coaching the development group on TDD, Continuous Integration and Pair Programming.
      3. Scrum Duke/Duchess: This is a term I just came up with for the person responsible for teaching Automated Acceptance testing to a quality group.

       

      Depending on the size of the project and the size of the group one person could wear all these hats.  In an enterprise you could easily see many people wearing these hats.  I want to remind everyone that these roles are Leadership and Coaching roles not dictatorships!

       

      I just thought of another term,  what about the people doing the work?  I dub these people: Scrum peasants.  I don't think that will go over that well? LOL

       

      And if you are practicing distributed agile the HSMIC is called the: Scrum Emperor.  Nice monarchy terms.  What would be funny/scary is if these terms caught on!

       

      So I don't forget, these are the actual Scrum roles or idioms:

      Scrum Master: The person, persons in charge of the tracking and the daily updates for the scrum (Equivalent to a Project Manager)

      Pigs: Those who are committed to the tasks (Developers, B.A's, Dba's and tester)
      Chickens: Those who are involved but do not have tasks. (Project Owners etc...)
      Back log: The task to be completed
      Sprint: A 4 to 6 week period in which a set of tasks are committed to and which are finished
      Burn Down: Daily progress for a sprint over the sprints length.

    • The Smells of Refactoring?

      Now that this title has totally confused you.  Jimmy Bogard came up with an awesome quick reference guide on Smells of Refactoring.  I am glad to see he took the time to compile this list.

    • Live Writer Beta 3 Available

      Don't know how I missed this one but being an avid user of Live Writer, Microsoft has released Beta 3 for download.

      I have yet to find a better blog author tool than Live Writer.  What is everyone else using?

    More Posts Next page »
    Copyright Los Techies 2007. All rights reserved.
    Powered by Community Server (Commercial Edition), by Telligent Systems