joi, 22 octombrie 2009

[Agile] The Technical Cluster

The Technical Cluster

-> main idea: deliver value for customer

Business value:
-> Reducing time to market of developing software
-> Increase value to market
- the most useful software to the customer. Does it help them to do their job better?
-> Increase quality to market
- deal with concepts such as defects, usability, and scalability.
- ability to respond to changes they request
-> Increase visibility
- customer’s ability to see the true state of the project as it progresses. -> manage risks and expectations
-> Reduce cost: Faster, better, cheaper.
- cost associated: manhours to build the system, maintenance of the system over time, and hardware as well as software platform costs.
The 80/20 rule says that roughly 20% of the product is used 80% of the time.
-> Increase product lifetime
- directly affects the product’s Return on Investment (ROI).
- Rank Business Values (from customer point of view)
- Compare to your values
- Determine key values
- Focus on issues that increase business value
- Implement a practice to improve a particular business value
- Periodic reading to verify that the practice is working.

- An indicator of something that has gone wrong.
- Deciding what issues need to be addressed and in what order.
- There are Business smells (visible to customers) and Process Smells (inner)

Business Smells
- Quality Delivered to Customer is Unacceptable
- Delivering New Features to Customer Takes Too Long.
-> Issues:
• Features rely on expert resources that are bottlenecked.
• The testing cycle takes significant time.
• Features required were unforeseen and are hard to add given the existing architecture.
- Features Are Not Used By Customer
-> Customers didn't know what they really needed at the requirement phase
-> Requirements from marketing are just a forecast. The forecast isn't always on-track.
-> Some features are used much less frequently than we anticipated.
-> Developers have been known to add features that they were sure would be useful but were not.
-> Requirements changed.
- Software Is Not Useful To Customer
- Software Is Too Expensive To Build

Process Smells
- Us vs. Them at any level indicates that there are communication barriers and that business value is not on the radar.

- Customer Asks for Everything Including the Kitchen Sink
- Direct and Regular Customer Input is Unrealistic.
-> Our marketing team is our pseudocustomer. They are separate and have their own work to do.
-> features are not used by customer; software is not useful to custome; and software is a burden to use.
- Management is Surprised—Lack of Visibility
Bottlenecked Resources
-> There is significant research showing that multi-tasking is significantly less efficient than single-tasking.
- Projects miss their deadlines multiple times.
- Hundreds (Possibly Thousands) of Bugs in Bug-Tracker
- Integration is Infrequent
->The lack of Integration results in a significant amount of untested code.
-> A significant number of errors, miscommunications, and misconceptions remain undiscovered until the end of the release cycle.

- Prioritized list of business values and a prioritized list of smells that need fixing.
- Practices and Clusters that Improve Business Value

- Practices and Clusters that Alleviate Smells

- Be Business-Value Focused
-> If you do not have access to the customer then you should do your best to get that access
- Be Goal-Oriented
-> Marketing doesn’t care if you are adopting Test First Development or not. They care that the product has fewer defects.
- Adopt Iteratively -> Adopt in small steps
- Be Agile About Your Adoption - Use the feedback from those retrospectives to modify your
development process
Test-Driven Adoption Strategies

1. Start with an evaluation of the status quo
2. Set goals that you want to reach.
3. Pull the first practice or cluster off the list you created.
4. Read the pattern that is related to that cluster or practice.
5. Read the pattern thoroughly.
6. Periodically evaluate
7. Go back to 1.

Next here.

Un comentariu:

  1. Next on Agile: