Showing posts with label SOA. Show all posts
Showing posts with label SOA. Show all posts
Tuesday, May 01, 2007
Monday, September 25, 2006
Missed time to market window! Really?
We know project management is all about the juggling the three balls of time, cost and quality. A project is successfull if it meets the functional and non-functional requirements within predetermined time, cost and quality constraints.
The traditional project management approach (and hence 99% of the tools) focus on completing the defined work within given time constraints and cost limits. However, the recent focus has been shifting more to the quality of the final output!!
Let's look at some examples:
Project requirements can be divided into functional and non-functional buckets. Functional requirements are the core (and supplementry) features of your product. Non-functional requirements are the systemic qualities, which encapsulates all "illities" - Availability, Scalability, Reliability, Flexibility, Extensibility, Interoperability, Compatibility, Testability, Understandability, Load and Performance, Stability, Resiliency, Manageability, Mantainability, Security, Supportability, Adaptability, Configurability and Usability! Note: Not all illities are applicable to all product offerings.
Your product may have over thousand functionalities, but just pick a handful of core ones (maybe 3 to 5) and all of the non-funtional requirements for your first release. A high quality product markets itself: word-of-mouth is the most effective marketing tool. Once a customer is hooked-in, slowly roll-out new features. That way you'll have the relationship going and you can get a continuous inflow of money - easy from SEC's perspective and no hassle of accounting manipulations either! That's what is driving software as a service (SaaS) market today.
SOA is the SaaS enabler and it is changing the way software is released. SOA brings business agility. However, our project management tools are still old-fashioned. Project managers are still focused on TTM and CTM concepts. They are still chasing deadlines and pennies. Quality awareness is forcing ALM companies to come up with more sophesticated tools that stitches the SOA fabric.
For innovation and quality, you are never late to the market!
The traditional project management approach (and hence 99% of the tools) focus on completing the defined work within given time constraints and cost limits. However, the recent focus has been shifting more to the quality of the final output!!
Let's look at some examples:
- Google. Didn't google missed the time to market long before it released its search engine?
- Apple iPOD. Had it made a difference if iPOD was delayed another 6 months?
- Toyota Prius in 2000. Missed the TTM by three years! (Audi released its first hybrid in 1997 and Honda released its hybrid in 1999)
Project requirements can be divided into functional and non-functional buckets. Functional requirements are the core (and supplementry) features of your product. Non-functional requirements are the systemic qualities, which encapsulates all "illities" - Availability, Scalability, Reliability, Flexibility, Extensibility, Interoperability, Compatibility, Testability, Understandability, Load and Performance, Stability, Resiliency, Manageability, Mantainability, Security, Supportability, Adaptability, Configurability and Usability! Note: Not all illities are applicable to all product offerings.
Your product may have over thousand functionalities, but just pick a handful of core ones (maybe 3 to 5) and all of the non-funtional requirements for your first release. A high quality product markets itself: word-of-mouth is the most effective marketing tool. Once a customer is hooked-in, slowly roll-out new features. That way you'll have the relationship going and you can get a continuous inflow of money - easy from SEC's perspective and no hassle of accounting manipulations either! That's what is driving software as a service (SaaS) market today.
SOA is the SaaS enabler and it is changing the way software is released. SOA brings business agility. However, our project management tools are still old-fashioned. Project managers are still focused on TTM and CTM concepts. They are still chasing deadlines and pennies. Quality awareness is forcing ALM companies to come up with more sophesticated tools that stitches the SOA fabric.
For innovation and quality, you are never late to the market!
Labels:
ALM,
CTM,
illities,
innovation,
QA,
quality pandits,
Quality Pundits,
SOA,
Software Quality,
TTM
Friday, September 15, 2006
It all boils down to Metrics!!
Setting up a goal is one thing, but how do we know that we have achieved our goal? Software engineering is becoming more of an art than science. Success is a relative term! A project manager with exceptional artistic and articulative skills can sell a project, which is on road to failure, as a successful investment to the executives. In absence of real numbers, the darkness prevails. And under this darkness, all decisions lead to the path of failure.
Snapshot:
Sounds Familiar? Interesting, isn't it?
Let's face it, we need sophisticated tools that can generate real time metrics for anyone to make informative decisions. People often mix product quality with process quality. Even though a high quality process generates a high qualiy product (TQM principle), I believe the metrics for the two should be different. For example, higher percentage of test automation improves QA process quality and doesn't directly improve underlying product quality! Note: the automation of processes in the early ALM cycle would have a more direct impact on the product quality.
Here are the list of questions, that metrics should be able to answer:
Snapshot:
"We have a GA date approaching. PPM calls a Projet-Team meeting and takes a vote of confidence, which decides the fate of the software!!"
"A P1 bug is not a show-stopper if it already exists in production. The release will not degrade the production quality!!"
"QA gives a conditional GO with list of risks. By the time decision propogates to executives, the attachment is dropped and the Conditional-Go turns into a Sure-shot-Go!!"
"PM: The problem is not in our piece of the code. The issue is because of the other component that we are dependent on!!"
Sounds Familiar? Interesting, isn't it?
Let's face it, we need sophisticated tools that can generate real time metrics for anyone to make informative decisions. People often mix product quality with process quality. Even though a high quality process generates a high qualiy product (TQM principle), I believe the metrics for the two should be different. For example, higher percentage of test automation improves QA process quality and doesn't directly improve underlying product quality! Note: the automation of processes in the early ALM cycle would have a more direct impact on the product quality.
Here are the list of questions, that metrics should be able to answer:
- Q1. What is the overall Quality Index (QI) of the product. QI for a particular feature or requirements? What is the QI of different components?
- Consistency of the processes and measures is the key here.
- It is easy to fabricate a QI model that concentrates on intrinsic product quality!
- Q2. What's our Release Readiness? What's the risk if we release our product today?
- Q3. What's the QI trend for differenet releases and different builds?
- Trend is more important than actual QI snapshot.
- Errors in the QI (if any) cancel out when you read trends
- Q4. What's the Dependency Matrix (DM)? How does other SOA components impact my product? How does my product impact other offerings in the organization?
- Current snapshot from QI perspective
- Roadmap overlap for future releases. Cross-project Backlog Management.
- Q5. What's the realtime Coverage graphs?
- Test Coverage (test validating requirements)
- Code Coverage (tests validating code)
- Q6. Testing Strategy Automation.
- When files A, B and C change, which features get impacted. What test cases and configurations should a test lead plan for next build?
- Q7. Process Quality. How productive is my team?
- Measures of test automation.
- Comparisons with baseline (and manual testing)
- We are ready for the release!! Our product QI crossed 85% in the last build.
- Because of TTM (time to market) pressures, we have decided to release our product with 65% QI. To mitigate the risk, we have also decided to increase our customer support resources.
- Our product is not ready for GA because we have a dependency on products B, C and D, and product B has a QI of only 30%. Since B is tightly coupled with our core, we are not in a position to release our product.
- I can effecively utilized my QA resources to concentrate on only the impacted features in a build. We don't have to regress every build every time. We can validate a build with handfull of fixes in less than two hours, and that too with over 95% confidence!!
- We can now sell SLAs and QLAs around certan metrics because we have a consistent (and automated) way of capturing them.
- I can trace a customer escalation all the way back to requirements, because we have end-to-end integration of ALM tools with excellent search facilities.
Friday, September 08, 2006
Role of a Quality Architect
I found a really interesting article on Application Quality by Allen Stoker. Make sure you read both part 1 and part 2. Best part is that it discusses the need of a Quality Architect:
The Role of a Quality Architect:
The role requires a fine balance between extraordinary people skills and hands-on technical skills!
Trackback URL: Role of a Quality Architect
"Quality begins in the team - not the application. Proper planning, communication and processes are essential to any successful project. Projects that lack these fundamentals will likely produce problematic applications. I'm a firm believer that large teams with diverse skill sets need a Quality Architect - a highly skilled technical person on your team who has no assignment but to support or ‘enable’ the other team resources. Such a resource can mean the difference between project success and failure."This is even more interesting to me because I spent some time last year just to understand the role. I would agree 101% with Allen that this role can make a world of difference and can be responsible for a project's success or failure, especially in light of the fact that quality is the measure of success! (assuming quality is part of the defined business goals)
The Role of a Quality Architect:
- Get the business, engineering, and QA teams to agree on common quality goals (i.e. define quality!)
- Establish QA infrastructure to boost team's efficiency and effectiveness
- Establish processes that complement the tools and provides end-to-end traceability
- Review product architectures and provide feedback on systemic qualities before development cycle starts
- Understand the ALM process and idenify risk elements from quality perspective
- Standardize processes and procedures to be able to develop SLAs and QLAs
- Work with cross-functional teams to combine elements of project management and business analytics, especially w.r.t. SOA interdependencies
- Translate quality metric data into information! Enable inuitive reporting to drive transparency into product's intrinsic quality.
- Participate, Review and Approve testing strategies
The role requires a fine balance between extraordinary people skills and hands-on technical skills!
Trackback URL: Role of a Quality Architect
Labels:
ALM,
QA Infrastructure,
Quality Architect Role,
quality pandits,
SOA
Subscribe to:
Posts (Atom)