<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-356516183452551110</id><updated>2012-02-12T02:35:27.924-08:00</updated><title type='text'>Software Engineering</title><subtitle type='html'>Flow of experience-based thoughts on some of the practical aspects of Software Engineering</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://se-thoughtograph.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://se-thoughtograph.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Raja Bavani</name><uri>http://www.blogger.com/profile/03107697584076683320</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-12aynZTIiyk/TX2xwHprUhI/AAAAAAAAAGc/kJd9gMNUqJo/s220/IMG_91491.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>44</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-356516183452551110.post-6669437763869810408</id><published>2012-02-06T07:53:00.000-08:00</published><updated>2012-02-06T07:53:36.598-08:00</updated><title type='text'>Cloud Computing:  Will Standards Ensure Compliance?</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-hWl9KuaAlVk/Ty_yzMVSVHI/AAAAAAAAANg/a1zexv3lVus/s1600/Cloud2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="184" sda="true" src="http://4.bp.blogspot.com/-hWl9KuaAlVk/Ty_yzMVSVHI/AAAAAAAAANg/a1zexv3lVus/s320/Cloud2.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;﻿In 1979, Relational Software, Inc. which became Oracle Corporation at a later stage introduced the first commercially available implementation of SQL. Also, several other vendors such as Ingres (based on Ingres project led by Michael Stonebraker and Eugene Wong at University of California Berkley during late 70s) and Sybase introduced database products with SQL. The American National Standards Institute (ANSI) announced SQL standard (also known as ANSI-SQL) in 1986. The International Standards Organization (ISO) announced another standard (known as ISO-SQL) in 1987.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;However, database vendors could not follow any of these standards completely due to various reasons. A prominent &lt;a href="http://stackoverflow.com/questions/784900/why-do-no-databases-fully-support-ansi-or-iso-sql-standards"&gt;reason&lt;/a&gt; was that the standards were seemingly ‘guidelines’ with lack of clarity and room for multiple interpretations.&amp;nbsp; Consequently, the portability of applications or data migration from one database product to the other remained a challenge.&amp;nbsp; After several years of product evolution, some of the database vendors &lt;a href="http://www.oracle-base.com/articles/9i/ANSIISOSQLSupport.php"&gt;announced compliance with SQL standards&lt;/a&gt;.&amp;nbsp;&amp;nbsp;&amp;nbsp;However, the portability or migration challenges have not been addressed yet.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.infoq.com/articles/problem-with-cloud-computing-standardization"&gt;The problem with cloud-computing standardization&lt;/a&gt; as elaborated by Sixto Ortiz Jr. in his article published in IEEE Computer, July 2011 is significant. Obviously, the lack of standards means limited adoption. This is because of the limitations in comparing and evaluating offerings and hence there is a potential danger of vendor lock-in.&lt;br /&gt;&lt;br /&gt;The good news is that last month(Jan 2012) the Open Group has published the first technical standard for the Cloud. This is called SOCCI (Service Oriented Cloud Computing Infrastructure framework) and it outlines the concepts and architectural building blocks necessary to support SOA and Cloud initiatives.&lt;br /&gt;&lt;br /&gt;We are going to see new standards related to Cloud Computing over the next five years.&amp;nbsp;Will standards ensure compliance? We need to wait and see!&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Useful Links:&lt;/u&gt;&lt;br /&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;&lt;em&gt;NIST (National Institute of Standards and Technology) Definition of Cloud Computing:&amp;nbsp;&lt;/em&gt;&lt;a href="http://csrc.nist.gov/publications/nistpubs/800-145/SP800-145.pdf"&gt;&lt;em&gt;http://csrc.nist.gov/publications/nistpubs/800-145/SP800-145.pdf&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;NIST Cloud Home Page: &lt;/em&gt;&lt;a href="http://www.nist.gov/itl/cloud/"&gt;&lt;em&gt;http://www.nist.gov/itl/cloud/&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;Critique on NIST Definition: &lt;/em&gt;&lt;a href="http://blogs.technet.com/b/yungchou/archive/2011/12/19/an-inconvenient-truth-of-the-nist-definition-of-cloud-computing-sp-800-145.aspx"&gt;&lt;em&gt;http://blogs.technet.com/b/yungchou/archive/2011/12/19/an-inconvenient-truth-of-the-nist-definition-of-cloud-computing-sp-800-145.aspx&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;The First Cloud Computing Technical Standard:&amp;nbsp; &lt;/em&gt;&lt;a href="http://blog.opengroup.org/2012/01/24/1st-technical-standard-for-cloud-computing-socci/"&gt;&lt;em&gt;http://blog.opengroup.org/2012/01/24/1st-technical-standard-for-cloud-computing-socci/&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;HP Blog on First Standard: &lt;/em&gt;&lt;a href="http://h30499.www3.hp.com/t5/Grounded-in-the-Cloud/Cloud-Computing-gets-its-first-technical-standard-SOCCI-from-The/ba-p/5502543"&gt;&lt;em&gt;http://h30499.www3.hp.com/t5/Grounded-in-the-Cloud/Cloud-Computing-gets-its-first-technical-standard-SOCCI-from-The/ba-p/5502543&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;SOCCI (Service Oriented Cloud Computing Infrastructure framework) Announcement:&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www3.opengroup.org/news/press/open-group-publishes-new-standards-soa-and-cloud"&gt;&lt;em&gt;http://www3.opengroup.org/news/press/open-group-publishes-new-standards-soa-and-cloud&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;Article on SOCCI: &lt;/em&gt;&lt;a href="http://cloudcomputing-365.info/news_full.php?id=20929&amp;amp;title=The-Open-Group-publishes-new-standards-for-SOA-and-cloud"&gt;&lt;em&gt;http://cloudcomputing-365.info/news_full.php?id=20929&amp;amp;title=The-Open-Group-publishes-new-standards-for-SOA-and-cloud&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;The Problem with Cloud-Computing Standardization by Sixto Ortiz Jr.:&amp;nbsp;&lt;/em&gt;&lt;a href="http://www.infoq.com/articles/problem-with-cloud-computing-standardization"&gt;&lt;em&gt;http://www.infoq.com/articles/problem-with-cloud-computing-standardization&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;The Problem with Cloud-Computing Standards, Paul Strassman’s Blog: &lt;/em&gt;&lt;a href="http://pstrassmann.blogspot.in/2011/08/problem-with-cloud-computing-standards.html"&gt;&lt;em&gt;http://pstrassmann.blogspot.in/2011/08/problem-with-cloud-computing-standards.html&lt;/em&gt;&lt;/a&gt;&lt;em&gt; &lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;Cloud-Computing’s Vendor Lock-In Problem: Why the Industry is Taking a Step Backward? &lt;/em&gt;&lt;a href="http://www.forbes.com/sites/joemckendrick/2011/11/20/cloud-computings-vendor-lock-in-problem-why-the-industry-is-taking-a-step-backwards/"&gt;&lt;em&gt;http://www.forbes.com/sites/joemckendrick/2011/11/20/cloud-computings-vendor-lock-in-problem-why-the-industry-is-taking-a-step-backwards/&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;Perspectives on Cloud-Computing and Standards, Peter Mell, Tim Grance, NIST, Information Technology Laboratory: &lt;/em&gt;&lt;a href="http://www.omg.org/news/meetings/tc/dc/special-events/Cloud_Computing/NIST.pdf"&gt;&lt;em&gt;http://www.omg.org/news/meetings/tc/dc/special-events/Cloud_Computing/NIST.pdf&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356516183452551110-6669437763869810408?l=se-thoughtograph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://se-thoughtograph.blogspot.com/feeds/6669437763869810408/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=356516183452551110&amp;postID=6669437763869810408&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/6669437763869810408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/6669437763869810408'/><link rel='alternate' type='text/html' href='http://se-thoughtograph.blogspot.com/2012/02/cloud-computing-will-standards-ensure.html' title='Cloud Computing:  Will Standards Ensure Compliance?'/><author><name>Raja Bavani</name><uri>http://www.blogger.com/profile/03107697584076683320</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-12aynZTIiyk/TX2xwHprUhI/AAAAAAAAAGc/kJd9gMNUqJo/s220/IMG_91491.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-hWl9KuaAlVk/Ty_yzMVSVHI/AAAAAAAAANg/a1zexv3lVus/s72-c/Cloud2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356516183452551110.post-7494969328403663646</id><published>2012-01-27T07:11:00.000-08:00</published><updated>2012-01-27T07:12:57.001-08:00</updated><title type='text'>Agile Teams: Try Drumming for Team Building!</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;My &lt;a href="http://se-thoughtograph.blogspot.com/2012/01/application-of-triz-in-software.html"&gt;previous blog&lt;/a&gt; mentioned a little bit about the “&lt;a href="http://www.3is.biz/"&gt;5th Indira International Innovation Summit&lt;/a&gt;”&amp;nbsp; presented by &lt;a href="http://www.indiraicem.ac.in/"&gt;Indira College of Engineering and Management&lt;/a&gt;.&amp;nbsp; One of the sessions in this event was “Building Teams One Beat at a Time” by Ms. Aliya Hasal, CEO, &lt;a href="http://www.drumcafe.in/"&gt;Drum Café International&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;15 minutes before the start of this session, event volunteers swiftly distributed Djambe drums to almost all 400 attendees in the auditorium. When the anchor &lt;a href="http://www.funandjoyatwork.com/"&gt;Dr. Raju Bhatia&lt;/a&gt; invited the presenters on stage, the audience started beating the Djambe drums whimsically. I could feel a sudden desire or change of mind among all to keep beating the drums until the presenters acknowledged the enthusiasm and calmed down everyone!&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-tL3M427-CFs/TyK7iAHwZ8I/AAAAAAAAANI/I-8W5LunGWQ/s1600/Drumming03.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" gda="true" height="179" src="http://2.bp.blogspot.com/-tL3M427-CFs/TyK7iAHwZ8I/AAAAAAAAANI/I-8W5LunGWQ/s320/Drumming03.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;We were in complete silence. Dr. Vinod Hasal (Director, Drum Café, India) started leading the performance on stage and miraculously gave us very simple instruction to follow the beats! Within minutes, the entire auditorium was in rhythm. We could feel unity, team-building, relaxation, creativity, learning and fun! He was a great coach! &amp;amp; He engaged the team of 400 enthusiastic, novice drummers very well! The result was rhythmic drum beats! The patterns changed every three minutes and the audience followed without missing the beats! A vast majority of&amp;nbsp;us had never touched a Djambe drum before! However, we could join the team on stage and follow their rhythm.&amp;nbsp;&amp;nbsp;As a result, this session rejuvenated us and made us believe in the power of co-creation.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-mRawTJnAbBQ/TyK71OGxGKI/AAAAAAAAANQ/MUn2THflPvI/s1600/Drumming02.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" gda="true" height="228" src="http://2.bp.blogspot.com/-mRawTJnAbBQ/TyK71OGxGKI/AAAAAAAAANQ/MUn2THflPvI/s320/Drumming02.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I strongly believe that drumming sessions like this one can benefit organizations and communities. These sessions can help us build Agile teams. No doubt about it! My experience in this session reemphasized the fact that we must trust our team, give them the necessary infrastructure and tools, and provide them an open environment. This is because &lt;a href="http://www.mindtree.com/resource-center/thought-posts/quality-of-your-workday-counts"&gt;the quality of our workday counts&lt;/a&gt;! When we do this our teams become creative and innovative.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-FzhvRM5-cT4/TyK79YFB_rI/AAAAAAAAANY/ACAN6peXAwQ/s1600/Drumming04.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" gda="true" height="212" src="http://2.bp.blogspot.com/-FzhvRM5-cT4/TyK79YFB_rI/AAAAAAAAANY/ACAN6peXAwQ/s320/Drumming04.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Above all, we must identify an agile coach. This is the foundation of agile teams. With a good coach, team members will align and start performing! When they perform together over multiple iterations there will be continuous improvement and high quality.&lt;br /&gt;&lt;br /&gt;Have you been through a ‘drumming’ session for team building? What do you think?&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356516183452551110-7494969328403663646?l=se-thoughtograph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://se-thoughtograph.blogspot.com/feeds/7494969328403663646/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=356516183452551110&amp;postID=7494969328403663646&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/7494969328403663646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/7494969328403663646'/><link rel='alternate' type='text/html' href='http://se-thoughtograph.blogspot.com/2012/01/agile-teams-try-drumming-for-team.html' title='Agile Teams: Try Drumming for Team Building!'/><author><name>Raja Bavani</name><uri>http://www.blogger.com/profile/03107697584076683320</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-12aynZTIiyk/TX2xwHprUhI/AAAAAAAAAGc/kJd9gMNUqJo/s220/IMG_91491.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-tL3M427-CFs/TyK7iAHwZ8I/AAAAAAAAANI/I-8W5LunGWQ/s72-c/Drumming03.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356516183452551110.post-8516745744085515353</id><published>2012-01-24T08:08:00.000-08:00</published><updated>2012-01-24T08:09:29.421-08:00</updated><title type='text'>Application of TRIZ in Software Engineering</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-wvLJ951P0ms/Tx7XdekjDjI/AAAAAAAAAM0/r7qGto-ozIc/s1600/InnovationAward.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" gda="true" height="320" src="http://1.bp.blogspot.com/-wvLJ951P0ms/Tx7XdekjDjI/AAAAAAAAAM0/r7qGto-ozIc/s320/InnovationAward.jpg" width="240" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="center"&gt;﻿&lt;/div&gt;Last year at SPIN Chennai Annual Conference (SPICON 2011), I delivered a talk on “&lt;a href="http://www.spinchennai.org/spinchennai/images/stories/spicon_2011/day1presentations/InventiveProblemSolving_RajaBhavani_SPICON11_Day1.pdf"&gt;Inventive Problem Solving for Customer Value Creation&lt;/a&gt;”. My talk was based on a real life problem solving experience. When you go through the presentation you will get a broad understanding of this talk.&lt;br /&gt;&lt;br /&gt;This year, I got an invitation to speak at “&lt;a href="http://www.3is.biz/"&gt;5th Indira International Innovation Summit&lt;/a&gt;”&amp;nbsp; presented by &lt;a href="http://www.indiraicem.ac.in/"&gt;Indira College of Engineering and Management&lt;/a&gt; .&amp;nbsp; During&amp;nbsp;this event, the event organizers honored me with “Excellence in Innovation Award”. &lt;br /&gt;&lt;br /&gt;It was a house-full event with more than 400 participants. The planning and execution of this event was very impressive. The selection of topics and speakers on both days offered a good balance between &lt;a href="http://www.indiraedu.com/3i/index.html"&gt;serious discussions and fun-filled learning&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;In Software Engineering and Software Services Industry there are numerous opportunities to innovate. What we have accomplished is just the beginning. We have a long way to go! Do you have an experience to share? Feel free to write to me.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356516183452551110-8516745744085515353?l=se-thoughtograph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://se-thoughtograph.blogspot.com/feeds/8516745744085515353/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=356516183452551110&amp;postID=8516745744085515353&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/8516745744085515353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/8516745744085515353'/><link rel='alternate' type='text/html' href='http://se-thoughtograph.blogspot.com/2012/01/application-of-triz-in-software.html' title='Application of TRIZ in Software Engineering'/><author><name>Raja Bavani</name><uri>http://www.blogger.com/profile/03107697584076683320</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-12aynZTIiyk/TX2xwHprUhI/AAAAAAAAAGc/kJd9gMNUqJo/s220/IMG_91491.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-wvLJ951P0ms/Tx7XdekjDjI/AAAAAAAAAM0/r7qGto-ozIc/s72-c/InnovationAward.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356516183452551110.post-1114979863790192847</id><published>2012-01-18T20:08:00.000-08:00</published><updated>2012-01-18T20:08:25.709-08:00</updated><title type='text'>Do You Follow Defect Prevention Techniques?</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-29TQi2LL88I/TxeVkMTyR-I/AAAAAAAAAMs/8kJoipbx4vE/s1600/Defect+Prevention.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="224" nfa="true" src="http://3.bp.blogspot.com/-29TQi2LL88I/TxeVkMTyR-I/AAAAAAAAAMs/8kJoipbx4vE/s320/Defect+Prevention.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;The term 'Defect Prevention' (DP) relates to defect analysis and preventive action planning related to defects found in various streams of project activities. Typically defects can be &lt;a href="http://se-thoughtograph.blogspot.com/2011/12/inspections-and-reviews-in-agile.html"&gt;review&lt;/a&gt; defects or testing defects (there are other types of defects as well - For example, configuration defects or other forms of defects that are not captured during reviews or testing).&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;What can be our approach to DP? It can be something that includes a systematic way of collecting and analyzing defects and preventive action planning. Also, this approach includes the frequency of performing DP and a clear definition of ownership so that DP happens as planned. The objective of DP is to make sure that a significant number of those defects do not occur in future.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Creating and executing test cases, test automation, and code quality checks are meant for ‘Defect Detection'. Not for ‘&lt;a href="http://se-thoughtograph.blogspot.com/2011/12/can-inspections-make-defect-prevention.html"&gt;Defect Prevention&lt;/a&gt;’.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;So, how do we do DP? Well, we can do DP by gathering data on all defects, categorizing them, analyzing them and deriving certain conclusions. Based on these conclusions we decide on preventive actions and implement them.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;If we do not derive and implement preventive actions, all we accomplish is a pure 'Defect Analysis' (also known as Bug Analysis). DP requires you to travel an extra mile (in terms of identifying and implementing preventive action plan) after you complete Bug Analysis.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;80/20 principle is adopted as one of the DP techniques. When you analyze test defects you perform ‘Pareto Analysis' to understand the distribution of defects. Based on your findings, you come up with action items that help you prevent 80% of defects. There are other techniques too.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Agile teams go through iteration-end retrospectives. How can DP techniques help them perform better? What has been your experience? Do you follow DP techniques? Let us discuss.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356516183452551110-1114979863790192847?l=se-thoughtograph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://se-thoughtograph.blogspot.com/feeds/1114979863790192847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=356516183452551110&amp;postID=1114979863790192847&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/1114979863790192847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/1114979863790192847'/><link rel='alternate' type='text/html' href='http://se-thoughtograph.blogspot.com/2012/01/do-you-follow-defect-prevention.html' title='Do You Follow Defect Prevention Techniques?'/><author><name>Raja Bavani</name><uri>http://www.blogger.com/profile/03107697584076683320</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-12aynZTIiyk/TX2xwHprUhI/AAAAAAAAAGc/kJd9gMNUqJo/s220/IMG_91491.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-29TQi2LL88I/TxeVkMTyR-I/AAAAAAAAAMs/8kJoipbx4vE/s72-c/Defect+Prevention.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356516183452551110.post-8720680892189036046</id><published>2012-01-06T08:56:00.000-08:00</published><updated>2012-01-06T08:57:23.447-08:00</updated><title type='text'>Clouded by Cloud Security Concerns?</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-Vi9Jfp4hpsA/TwcnmjTbveI/AAAAAAAAAMk/IDCp0xSSYlE/s1600/Cloud.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="209" rea="true" src="http://2.bp.blogspot.com/-Vi9Jfp4hpsA/TwcnmjTbveI/AAAAAAAAAMk/IDCp0xSSYlE/s320/Cloud.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;Cloud Computing is an emerging trend or seemingly an evolution in IT industry. When electricity, water, telephone, etc., are provided as utilities, why not the power of computing or data storage? Thoughts on similar lines triggered the concept ‘Utility Computing’ during early 60s. This concept has matured over years. With the power of internetworking it has reincarnated as ‘Cloud Computing’. &lt;br /&gt;&lt;br /&gt;However, end users are clouded. They are unclear and concerned. The source of their concerns is ‘Cloud Security’. We park our expensive cars on streets. We are not concerned because of an appropriate car insurance plan. We do keep our hard earned money in banks. We use bank lockers to store important documents, jewelry, etc., We are used to these paradigms or provisions whether or not they offer adequate security. &lt;br /&gt;&lt;br /&gt;Is there a cloud we can trust? This is what CIOs ask. As a matter of fact,&amp;nbsp; product companies are working on &lt;a href="http://spectrum.ieee.org/computing/networks/a-cloud-you-can-trust/1"&gt;clouds we can trust&lt;/a&gt;. Cloud platforms will have an increasing level of adoption when security concerns are addressed adequately. In addition to this, cloud providers will have to get into contractual terms and commit to legal obligations in serving end users or customers. Until now, not many providers address these areas. Therefore, customers think twice and decide to adopt private clouds. &lt;br /&gt;&lt;br /&gt;We will go through this evolution. However, Cloud Computing has its promises. It is possible to optimize IT budgets by leveraging the benefits of cloud. The term ‘&lt;a href="http://sdt.bz/36215"&gt;Clouptimization&lt;/a&gt;’ relates to this possibility.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356516183452551110-8720680892189036046?l=se-thoughtograph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://se-thoughtograph.blogspot.com/feeds/8720680892189036046/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=356516183452551110&amp;postID=8720680892189036046&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/8720680892189036046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/8720680892189036046'/><link rel='alternate' type='text/html' href='http://se-thoughtograph.blogspot.com/2012/01/clouded-by-cloud-security-concerns.html' title='Clouded by Cloud Security Concerns?'/><author><name>Raja Bavani</name><uri>http://www.blogger.com/profile/03107697584076683320</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-12aynZTIiyk/TX2xwHprUhI/AAAAAAAAAGc/kJd9gMNUqJo/s220/IMG_91491.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-Vi9Jfp4hpsA/TwcnmjTbveI/AAAAAAAAAMk/IDCp0xSSYlE/s72-c/Cloud.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356516183452551110.post-8553608514715712345</id><published>2011-12-20T06:28:00.000-08:00</published><updated>2011-12-20T06:28:54.594-08:00</updated><title type='text'>Inspections and Reviews in Agile Projects</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-MxmwPv9ng8w/TvCbAOz9htI/AAAAAAAAAMQ/EwxhZq_yZh4/s1600/Reviews+and+Inspections+in+Agile.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="228" oda="true" src="http://3.bp.blogspot.com/-MxmwPv9ng8w/TvCbAOz9htI/AAAAAAAAAMQ/EwxhZq_yZh4/s320/Reviews+and+Inspections+in+Agile.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="center"&gt;﻿&lt;/div&gt;In my previous blog "&lt;a href="http://se-thoughtograph.blogspot.com/2011/12/can-inspections-make-defect-prevention.html"&gt;Can Inspections Make Defect Prevention Effective?&lt;/a&gt;"&amp;nbsp;, I emphasized on spending one or two hours per iteration on reviews and inspection in Agile projects. Also, I wrote that &lt;a href="http://en.wikipedia.org/wiki/Fagan_inspection"&gt;Fagan inspection&lt;/a&gt; can be fine tuned to suit Agile&amp;nbsp;projects so that team members can perform inspections or reviews in small groups of two to four team members, &amp;nbsp;depending on the criticality of such inspections or reviews. In this blog, let us go through when and how this can be done in Agile projects.&lt;br /&gt;&lt;br /&gt;1. &lt;strong&gt;Review of requirements.&lt;/strong&gt; Group reviews makes sense in agile projects. In one of the distributed agile projects we had scheduled conference calls to walk-through requirements at the beginning of iteration. These conference calls were more beneficial than 1-1 interactions because, the entire team could understand and ask questions as group. As a group, we found gaps in requirements and related one user story to another and refined user stories. Don’t we call this backlog grooming?&lt;br /&gt;&lt;br /&gt;2. &lt;strong&gt;Review of architecture and designs.&lt;/strong&gt; This is not about ‘big-upfront’ architecture or design. I have come across situations in agile projects that required our team to do complex designs in order to move forward with reasonable modularity in code. These designs are either UI designs or UML notation etc. In this context, it is valuable to involve all team members and perform group review. This step helps us improve the quality of design.&lt;br /&gt;&lt;br /&gt;3. &lt;strong&gt;Code Refactoring.&lt;/strong&gt;&amp;nbsp; Whether you do pair programming or not, it is a good practice to convene meetings at regular intervals (typically once in a month or on need basis) to discuss some of the key code &lt;a href="http://se-thoughtograph.blogspot.com/2011/07/can-refactoring-improve-design.html"&gt;refactoring&lt;/a&gt; instances. This can be a part of ‘retrospectives’ too. More than this, for critical chunks of source code, group review with two to four engineers is the way to go.&lt;br /&gt;&lt;br /&gt;4. &lt;strong&gt;Test Case Reviews.&lt;/strong&gt; At regular intervals, group review of test cases can help agile teams improve the quality of requirements as well as test cases. &lt;br /&gt;&lt;br /&gt;5. &lt;strong&gt;Configuration Files, Build Files, etc.&lt;/strong&gt; When two or more engineers come together and review configuration files they can streamline the placement of configuration parameters in the right files. Also, reviews of build files can minimize build failures due to scripting or configuration errors.&lt;br /&gt;&lt;br /&gt;Typically these reviews&amp;nbsp;in traditional projects used to&amp;nbsp;take 10 to 15% of efforts. Should we invest in inspections and reviews to eliminate defects proactively? Why not? Ultimately, when we find ways to implement continuous improvement through this experience, we get to improve process as well as product quality.&lt;br /&gt;&lt;br /&gt;One may think or argue that practices such as pair programming and ‘retrospectives’ enable agile teams practice continuous improvement and that is sufficient.&amp;nbsp;&amp;nbsp;'Retrospectives’ are iteration specific. Do we get to apply 80/20 rule by gathering cumulative data of all past iterations in Agile projects? If no, don’t we have to?&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356516183452551110-8553608514715712345?l=se-thoughtograph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://se-thoughtograph.blogspot.com/feeds/8553608514715712345/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=356516183452551110&amp;postID=8553608514715712345&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/8553608514715712345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/8553608514715712345'/><link rel='alternate' type='text/html' href='http://se-thoughtograph.blogspot.com/2011/12/inspections-and-reviews-in-agile.html' title='Inspections and Reviews in Agile Projects'/><author><name>Raja Bavani</name><uri>http://www.blogger.com/profile/03107697584076683320</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-12aynZTIiyk/TX2xwHprUhI/AAAAAAAAAGc/kJd9gMNUqJo/s220/IMG_91491.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-MxmwPv9ng8w/TvCbAOz9htI/AAAAAAAAAMQ/EwxhZq_yZh4/s72-c/Reviews+and+Inspections+in+Agile.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356516183452551110.post-3220187969854743365</id><published>2011-12-19T08:24:00.000-08:00</published><updated>2011-12-20T06:33:22.212-08:00</updated><title type='text'>Can Inspections Make Defect Prevention Effective?</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-SjJTZ5AOXvE/Tu9kGYNXYiI/AAAAAAAAAMI/h7waUt0ZbSc/s1600/Inspection.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="197" oda="true" src="http://4.bp.blogspot.com/-SjJTZ5AOXvE/Tu9kGYNXYiI/AAAAAAAAAMI/h7waUt0ZbSc/s320/Inspection.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="center"&gt;﻿&lt;/div&gt;“Yes”, says Capers Jones. Formal inspection of requirements, architecture, designs, source code, configuration files, build scripts and test cases enable project teams in finding critical defects.&lt;br /&gt;The cost of defects (related to requirements or designs) found during later stages of lifecycle is enormous. The best way to deal with this issue is to detect defects at early stages. Inspection is a way to accomplish this.&lt;br /&gt;&lt;br /&gt;Not all Agile teams do pair programming. What about designs? Or configuration files? Do we inspect? When inspection or reviews are not done, the result can be accumulation of technical debt. Right?&lt;br /&gt;&lt;br /&gt;When we find defects through inspections and reviews, we get an opportunity to classify&amp;nbsp;defects and identify the root causes. Remember 80/20 rule? When we do this we can reduce the number of defects in subsequent iterations.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Fagan_inspection"&gt;Fagan inspection&lt;/a&gt; can be fine tuned to suit Agile projects. Instead of performing inspection in large groups, Agile teams can perform inspections or reviews in small groups of two to four team members depending on the criticality of such inspections or reviews. One or two hours per iteration spent on reviews and inspection in Agile projects can yield immense benefits.&lt;br /&gt;&lt;br /&gt;Have we forgotten the value of inspections and reviews? Caper Jones’s article ‘&lt;a href="http://drdobbs.com/architecture-and-design/231903203?pgno=1"&gt;Do You Inspect?&lt;/a&gt;’ is an eye opener for everyone.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;In the&amp;nbsp;next blog "&lt;a href="http://se-thoughtograph.blogspot.com/2011/12/inspections-and-reviews-in-agile.html"&gt;Inspections and Reviews in Agile Projects&lt;/a&gt;"&amp;nbsp; I have shared&amp;nbsp;5&amp;nbsp;pointers&amp;nbsp;and additional questions.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356516183452551110-3220187969854743365?l=se-thoughtograph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://se-thoughtograph.blogspot.com/feeds/3220187969854743365/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=356516183452551110&amp;postID=3220187969854743365&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/3220187969854743365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/3220187969854743365'/><link rel='alternate' type='text/html' href='http://se-thoughtograph.blogspot.com/2011/12/can-inspections-make-defect-prevention.html' title='Can Inspections Make Defect Prevention Effective?'/><author><name>Raja Bavani</name><uri>http://www.blogger.com/profile/03107697584076683320</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-12aynZTIiyk/TX2xwHprUhI/AAAAAAAAAGc/kJd9gMNUqJo/s220/IMG_91491.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-SjJTZ5AOXvE/Tu9kGYNXYiI/AAAAAAAAAMI/h7waUt0ZbSc/s72-c/Inspection.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356516183452551110.post-1905420197312094030</id><published>2011-12-07T07:26:00.000-08:00</published><updated>2011-12-07T07:27:12.071-08:00</updated><title type='text'>Agile Myths and Misunderstandings</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-oMUqPXGJg4c/Tt-FcC6rCQI/AAAAAAAAAL0/l_QRMtT5If8/s1600/Myth3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="236" mda="true" src="http://3.bp.blogspot.com/-oMUqPXGJg4c/Tt-FcC6rCQI/AAAAAAAAAL0/l_QRMtT5If8/s320/Myth3.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="center"&gt;﻿&lt;/div&gt;In our industry we do come across myths and misinterpretations related to Agile Software Development and Agile Testing. Here are some examples.&lt;br /&gt;&lt;br /&gt;1. Take the waterfall model and add one arrow&lt;br /&gt;2. Agile means 'start coding with no documentation'&lt;br /&gt;3. Agile means 'ad hoc' or 'no processes’&lt;br /&gt;4. Agile means 'no planning'&lt;br /&gt;5. Agile team members must be super stars&lt;br /&gt;6. Agile is for product engineering only&lt;br /&gt;7. Changes can happen on a daily basis&lt;br /&gt;8. Agile is for development projects only&lt;br /&gt;9. Agile impacts work-life balance&lt;br /&gt;10. Agile is just another fad&lt;br /&gt;11. TDD is enough to ensure software testing&lt;br /&gt;12. A chain of unit tests is a complete regression suite&lt;br /&gt;13. Agile doesn’t allow for long-term planning &lt;br /&gt;14. Agile testing is all about unit testing, TDD, and test automation&lt;br /&gt;15. In Agile projects process compliance is a big issue&lt;br /&gt;&lt;br /&gt;Details on each of these are available in this &lt;a href="http://issuu.com/mindtree/docs/agile_myths_busted_for_web"&gt;freely downloadable PDF&lt;/a&gt;. Happy Reading!&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356516183452551110-1905420197312094030?l=se-thoughtograph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://se-thoughtograph.blogspot.com/feeds/1905420197312094030/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=356516183452551110&amp;postID=1905420197312094030&amp;isPopup=true' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/1905420197312094030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/1905420197312094030'/><link rel='alternate' type='text/html' href='http://se-thoughtograph.blogspot.com/2011/12/agile-myths-and-misunderstandings.html' title='Agile Myths and Misunderstandings'/><author><name>Raja Bavani</name><uri>http://www.blogger.com/profile/03107697584076683320</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-12aynZTIiyk/TX2xwHprUhI/AAAAAAAAAGc/kJd9gMNUqJo/s220/IMG_91491.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-oMUqPXGJg4c/Tt-FcC6rCQI/AAAAAAAAAL0/l_QRMtT5If8/s72-c/Myth3.jpg' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356516183452551110.post-1701159463055421576</id><published>2011-12-02T21:22:00.000-08:00</published><updated>2011-12-02T21:23:16.358-08:00</updated><title type='text'>Requirement Engineering: Ten Principles</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-9nxh84akimw/Ttmx5slODtI/AAAAAAAAALs/EHm63RvCGFU/s1600/HIB.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" dda="true" height="223" src="http://2.bp.blogspot.com/-9nxh84akimw/Ttmx5slODtI/AAAAAAAAALs/EHm63RvCGFU/s320/HIB.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="center"&gt;﻿&lt;/div&gt;1. Quality is the top priority and it is possible to deliver high-quality software. In order to make this happen, business analysts need to focus on delivering high-quality requirements. Obviously, both &lt;a href="http://se-thoughtograph.blogspot.com/2011/11/requirement-engineering-specifications.html"&gt;the form and the substance of specifications&lt;/a&gt; are equally important. &lt;br /&gt;&lt;br /&gt;2. Understand the problem before specifying requirements. When business analysts understand the problem accurately, it is highly probable that they are going to create specifications that are very close to what the user wants.&lt;br /&gt;&lt;br /&gt;3. Use appropriate tools, models and practices. It is necessary to understand the organizational culture of customers and be aware of what tools, models and practices have worked for them. Tools, models and practices that provided results in collocated teams may not work well in case of distributed teams. &lt;br /&gt;&lt;br /&gt;4. Awareness, skills, techniques, and discipline are more important that tools. The outcome of any practice is not determined just by the tools that you use. For example, a plumber who is in-charge of your facility requires awareness of your facility. He needs to be skilled. He has to follow certain discipline and understand relevant techniques. Without these qualities, if he claims his strength because of a powerful tool set he has, he is a dangerous plumber. This applies to team members who participate in &lt;a href="http://se-thoughtograph.blogspot.com/2010/01/requirement-engineering-key-aspect.html"&gt;requirement engineering activities&lt;/a&gt; too.&lt;br /&gt;&lt;br /&gt;5. Establish appropriate measurement criteria. How do you measure the progress of requirement engineering activities? It is necessary to have appropriate measurement criteria. Document exchange or data collection is not requirement engineering.&lt;br /&gt;&lt;br /&gt;6. Establish an appropriate verification and validation criteria. How do you verify requirements? How do you validate them? It is essential to have appropriate criteria for V&amp;amp;V activities. Doing it right is more important that making it faster.&lt;br /&gt;&lt;br /&gt;7. Good team and good management are vital to success. Technology comes next. Start-ups succeed when they have a good team that captures product requirements and a good management that fosters product development. Technology is essential. More than technology, a good team and good management are important.&lt;br /&gt;&lt;br /&gt;8. Understanding of customer’s priorities is paramount. This is what helps the team understand &lt;a href="http://se-thoughtograph.blogspot.com/2011/10/distributed-agile-quality-before-design.html"&gt;priority requirements at early stages&lt;/a&gt; and find ways to deliver working software early. The more the customers see, the more they will need. Understanding customer’s priority is a way to deliver valuable features early. Delivering early is the way to understand what else the customer wants. &lt;br /&gt;&lt;br /&gt;9. Use the most efficient communication tools. Information exchange over documents can lead to misinterpretation or inadequate grasp. White board sessions, walkthroughs, using face-to-face meetings or video conferencing sessions are the effective ways of information exchange. &lt;br /&gt;&lt;br /&gt;10. Ask questions. While this is applicable for all areas of software engineering areas, it is very appropriate for requirement engineering. Questions based on various aspects such as business need, functionality, scalability, performance, usability, test data, data volume, geography of users, compliance, etc. help business analyst understand requirements in detail. Asking &lt;a href="http://se-thoughtograph.blogspot.com/2011/09/requirement-engineering-asking-context.html"&gt;context-free questions&lt;/a&gt; are equally important to make a positive impact.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356516183452551110-1701159463055421576?l=se-thoughtograph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://se-thoughtograph.blogspot.com/feeds/1701159463055421576/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=356516183452551110&amp;postID=1701159463055421576&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/1701159463055421576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/1701159463055421576'/><link rel='alternate' type='text/html' href='http://se-thoughtograph.blogspot.com/2011/12/requirement-engineering-ten-principles.html' title='Requirement Engineering: Ten Principles'/><author><name>Raja Bavani</name><uri>http://www.blogger.com/profile/03107697584076683320</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-12aynZTIiyk/TX2xwHprUhI/AAAAAAAAAGc/kJd9gMNUqJo/s220/IMG_91491.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-9nxh84akimw/Ttmx5slODtI/AAAAAAAAALs/EHm63RvCGFU/s72-c/HIB.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356516183452551110.post-4681447866539140880</id><published>2011-11-20T06:02:00.000-08:00</published><updated>2011-11-20T06:02:51.363-08:00</updated><title type='text'>Fixed Price Distributed Agile Projects</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I will be delivering a session on 'Fixed Price Distributed Agile Projects' at &lt;a href="http://www.isec.co/event_detail_info.php?event_id=8"&gt;Agile Tour 2011&lt;/a&gt;, Bangalore on 26th Nov 2011.&amp;nbsp; This session will present the challenges&amp;nbsp;and approaches related to&amp;nbsp;executing Fixed Price projects in Distributed Agile model.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-Ns0NWQo47S4/TskEDsffRiI/AAAAAAAAALk/fXeuawodDVY/s1600/at2011_speaker.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" hda="true" height="106" src="http://2.bp.blogspot.com/-Ns0NWQo47S4/TskEDsffRiI/AAAAAAAAALk/fXeuawodDVY/s320/at2011_speaker.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;In reality, projects are sanctioned based on pre-approved budgets. Customers prefer to get projects done in fixed-cost. Can the scope remain fixed? Can the schedule also remain fixed? &amp;nbsp;The challenges of &lt;a href="http://se-thoughtograph.blogspot.com/2011/03/fixed-price-agile.html"&gt;fixed price projects&lt;/a&gt;&amp;nbsp;&amp;nbsp;emerge from changes in requirements.&amp;nbsp; How do we stick to "Responding to change over following a plan" as mentioned in Agile Manifesto when we execute fixed price projects?&amp;nbsp; How do we value "Customer Collaboration" over "Contract Negotiation"?&lt;br /&gt;&lt;br /&gt;If you are in Bangalore next week,&amp;nbsp;plan to attend&amp;nbsp;&lt;a href="http://www.isec.co/event_detail_info.php?event_id=8"&gt;Agile Tour 2011&lt;/a&gt;.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356516183452551110-4681447866539140880?l=se-thoughtograph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://se-thoughtograph.blogspot.com/feeds/4681447866539140880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=356516183452551110&amp;postID=4681447866539140880&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/4681447866539140880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/4681447866539140880'/><link rel='alternate' type='text/html' href='http://se-thoughtograph.blogspot.com/2011/11/fixed-price-distributed-agile-projects.html' title='Fixed Price Distributed Agile Projects'/><author><name>Raja Bavani</name><uri>http://www.blogger.com/profile/03107697584076683320</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-12aynZTIiyk/TX2xwHprUhI/AAAAAAAAAGc/kJd9gMNUqJo/s220/IMG_91491.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-Ns0NWQo47S4/TskEDsffRiI/AAAAAAAAALk/fXeuawodDVY/s72-c/at2011_speaker.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356516183452551110.post-4260589389229642662</id><published>2011-11-18T07:42:00.000-08:00</published><updated>2011-11-18T07:43:51.150-08:00</updated><title type='text'>Requirement Engineering:  Specifications in which form?</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-8aLDyV40ww8/TsZ85hgjeVI/AAAAAAAAALc/pC_-yTm77zo/s1600/DSC00315.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" hda="true" height="240" src="http://2.bp.blogspot.com/-8aLDyV40ww8/TsZ85hgjeVI/AAAAAAAAALc/pC_-yTm77zo/s320/DSC00315.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="center"&gt;﻿&lt;/div&gt;The day before we started the new project, my team member got curious. He asked, “Are we going to receive requirement specifications from customer? How will the specifications look like? Let us make sure that there are no communication gaps.”&lt;br /&gt;&lt;br /&gt;I responded, “In a document with text, and UML notations in our standard format. We will get wireframes too.”&lt;br /&gt;&lt;br /&gt;We had a short pause. I continued, “We will have a look at existing data and reports. We will do our best to reduce communication gaps.” He nodded silently. &lt;br /&gt;&lt;br /&gt;I could read his mind. We had serious gaps in understanding requirements in our recent project and the result was a huge schedule over run. We wanted to do it better this time. &lt;br /&gt;&lt;br /&gt;Specifications come in what form? Obviously in documents with UML diagrams, wireframes, etc. When it comes to requirements, we cannot afford to say, “Let us not worry about form. Substance is critical.”&amp;nbsp; Both form and substance are equally important.&lt;br /&gt;&lt;br /&gt;“&lt;em&gt;The hardest single part of building a software system is deciding precisely what to build. No other part of the conceptual work is as difficult as establishing the detailed technical requirements, including all the interfaces to people, to machines, and to other software systems. No other part of the work so cripples the resulting system if done wrong. No other part is more difficult to go rectify later&lt;/em&gt;”, says Fredrick P. Brooks, Jr. in his book ‘The Mythical Man-Month (Addison-Wesley, 1995).’ He adds, “&lt;em&gt;I would go a step further and assert that it is really impossible for clients, even those working with software engineers, to specify completely, precisely, and correctly the exact requirements of a modern software product before having built and tried some versions of the product they are specifying.&lt;/em&gt;”&lt;br /&gt;&lt;br /&gt;Can Rapid Prototyping help? Yes. It can help to a certain extent. In fact, Rapid Prototyping can be done at the time of Requirement Gathering and Elicitation. Products meant for this purpose are available in the market these days.&lt;br /&gt;&lt;br /&gt;When we combine the power of such tools with the way we create software using methodologies based on iterative and incremental delivery, we get an opportunity to deliver working software early and frequently. Delivering working software early at regular intervals is a way to make your specifications powerful. This is when you reduce the gap between what is specified, what is delivered and what is needed. &lt;br /&gt;&lt;br /&gt;When you have specifications in written text, UML notations or wireframes for more than a month or two, chances are that they become obsolete. You need to get them validated. When you do rapid prototyping (on a case-to-case basis) and focus on short-iterations to deliver working software you get an opportunity to demonstrate working software and get feedback. You get to improve what you did.&lt;br /&gt;&lt;br /&gt;It is easier said than done. I agree with Brooks. He said it right. Right?&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356516183452551110-4260589389229642662?l=se-thoughtograph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://se-thoughtograph.blogspot.com/feeds/4260589389229642662/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=356516183452551110&amp;postID=4260589389229642662&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/4260589389229642662'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/4260589389229642662'/><link rel='alternate' type='text/html' href='http://se-thoughtograph.blogspot.com/2011/11/requirement-engineering-specifications.html' title='Requirement Engineering:  Specifications in which form?'/><author><name>Raja Bavani</name><uri>http://www.blogger.com/profile/03107697584076683320</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-12aynZTIiyk/TX2xwHprUhI/AAAAAAAAAGc/kJd9gMNUqJo/s220/IMG_91491.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-8aLDyV40ww8/TsZ85hgjeVI/AAAAAAAAALc/pC_-yTm77zo/s72-c/DSC00315.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356516183452551110.post-3563438915347900570</id><published>2011-11-01T09:22:00.000-07:00</published><updated>2011-11-02T02:51:00.455-07:00</updated><title type='text'>Code Quality Metrics: Identification, Collection and Consumption</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-1FUCVTqkOiE/TrAeqfheJ4I/AAAAAAAAALU/AGaYNbIbS8w/s1600/Nineteen.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="226" ida="true" src="http://4.bp.blogspot.com/-1FUCVTqkOiE/TrAeqfheJ4I/AAAAAAAAALU/AGaYNbIbS8w/s320/Nineteen.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;﻿&lt;/div&gt;Unless we identify the code quality metrics we want to consider for a given project or product,&amp;nbsp;before we start coding,&amp;nbsp; it is highly probable that we will get confused with&amp;nbsp;a huge collection of metrics presented by tools and textual content such as books, white papers, blogs, etc. &lt;br /&gt;&lt;br /&gt;We do capture functional and non-functional requirements in software projects. Can we capture requirements that can help us set a common understanding on expected level of code quality?&amp;nbsp; &lt;br /&gt;&lt;br /&gt;When you use a static analysis tool, it is necessary to know acceptable range of values for each metric. Otherwise, how will you access code quality?&lt;br /&gt;&lt;br /&gt;Code review tool does not serve the purpose until developers are cognizant of the semantics of code quality metrics and permissible range of values. I am sure we have heard, ‘A fool with a tool is still a fool.’ Don't you agree?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Every project or product team needs to have a code review checklist, coding standards and guidelines that can set a common understanding among developers on code review criteria. This will enable developers write good quality code to begin with. &lt;br /&gt;&lt;br /&gt;Prevention is better than cure. Isn’t it?&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356516183452551110-3563438915347900570?l=se-thoughtograph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://se-thoughtograph.blogspot.com/feeds/3563438915347900570/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=356516183452551110&amp;postID=3563438915347900570&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/3563438915347900570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/3563438915347900570'/><link rel='alternate' type='text/html' href='http://se-thoughtograph.blogspot.com/2011/11/code-quality-metrics-identification.html' title='Code Quality Metrics: Identification, Collection and Consumption'/><author><name>Raja Bavani</name><uri>http://www.blogger.com/profile/03107697584076683320</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-12aynZTIiyk/TX2xwHprUhI/AAAAAAAAAGc/kJd9gMNUqJo/s220/IMG_91491.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-1FUCVTqkOiE/TrAeqfheJ4I/AAAAAAAAALU/AGaYNbIbS8w/s72-c/Nineteen.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356516183452551110.post-557087013371552751</id><published>2011-10-18T06:21:00.000-07:00</published><updated>2011-10-18T06:22:04.940-07:00</updated><title type='text'>Distributed Agile: Quality before Design</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-nMExRMAi6Ho/Tp18lgp2uKI/AAAAAAAAALA/H_W99U8cqiU/s1600/Nine.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="214" oda="true" src="http://2.bp.blogspot.com/-nMExRMAi6Ho/Tp18lgp2uKI/AAAAAAAAALA/H_W99U8cqiU/s320/Nine.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Distributed Agile involves geographically dispersed teams and short iterations of 2 to 4 weeks. Stakeholders of distributed agile projects need to find ways to improve quality before design by means of providing the right work environment and tools to team members and ensuring that project requirements are of good quality. There are five steps that can help us improve quality before design.&lt;/div&gt;&lt;br /&gt;&lt;strong&gt;Product Vision Document:&lt;/strong&gt; When distributed agile teams execute iteration activities without knowing the product vision or release vision, they not only miss an opportunity to understand the big picture but also fail to interact with stakeholders by asking context-free questions. &lt;a href="http://se-thoughtograph.blogspot.com/2011/09/requirement-engineering-asking-context.html"&gt;Context-free questions&lt;/a&gt; increase project awareness among team members and provide for a strong foundation.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Goal-Oriented Requirements:&lt;/strong&gt; The next step is to ensure that user stories are not generic statements but relate to the goals of end users. When team members receive goal-oriented requirements or users stories, they relate them to the goals of end users and come up with innovative ways to find solutions. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Not Only Functional Requirements:&lt;/strong&gt; The third step is to include non-functional requirements such as performance requirements or security requirements in user stories. When this is accomplished, distributed agile teams optimize the time spent in defining the acceptance criteria and ‘Definition of Done’ for user stories. Also, this improves the quality of test cases and test scripts in projects. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Prioritization:&lt;/strong&gt; Product Owners and Scrum Masters of distributed Scrum projects need to have an objective and proactive prioritization approach in order to define priority categories unambiguously. When prioritization of user stories becomes a reactive approach, it can lead to changes during iterations and hence can put lot of strain on team members. Distributed agile teams need to be aware of the rationale behind the prioritization of user stories. Lack of awareness among team members can lead to perceived notions on lack of inclusiveness. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Tool Selection:&lt;/strong&gt; Tool selection plays a vital role in distributed agile projects. Effective tools for managing user stories as well as related communication and coordination mechanisms contribute positively to distributed agile projects. Indecisive approaches to tool implementation or introduction of new tools during project execution will hamper effective management of user stories. It is strongly recommended that distributed agile teams consider a web based tool that supports specification of user stories as well as facilitates collaboration among team members.&lt;br /&gt;&lt;br /&gt;Finally, quality before design is quintessential to improve project success. My article, ‘&lt;a href="http://www.mindtree.com/resource-center/thought-posts/distributed-agile-steps"&gt;Distributed Agile: Steps to Improve Quality before Design&lt;/a&gt;’, published by Agile Record articulate these steps with additional details. &lt;br /&gt;﻿ &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356516183452551110-557087013371552751?l=se-thoughtograph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://se-thoughtograph.blogspot.com/feeds/557087013371552751/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=356516183452551110&amp;postID=557087013371552751&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/557087013371552751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/557087013371552751'/><link rel='alternate' type='text/html' href='http://se-thoughtograph.blogspot.com/2011/10/distributed-agile-quality-before-design.html' title='Distributed Agile: Quality before Design'/><author><name>Raja Bavani</name><uri>http://www.blogger.com/profile/03107697584076683320</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-12aynZTIiyk/TX2xwHprUhI/AAAAAAAAAGc/kJd9gMNUqJo/s220/IMG_91491.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-nMExRMAi6Ho/Tp18lgp2uKI/AAAAAAAAALA/H_W99U8cqiU/s72-c/Nine.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356516183452551110.post-7300310315537267498</id><published>2011-10-07T08:56:00.000-07:00</published><updated>2011-10-19T17:46:19.039-07:00</updated><title type='text'>The 7 Habits of Highly Effective 21-st Century IT Professionals</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-PEl-1DXOcqg/To8gSEUmUrI/AAAAAAAAAK4/ZFTliwCmpvQ/s1600/RajaBavani.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" kca="true" src="http://3.bp.blogspot.com/-PEl-1DXOcqg/To8gSEUmUrI/AAAAAAAAAK4/ZFTliwCmpvQ/s320/RajaBavani.jpg" width="259" /&gt;&lt;/a&gt;&lt;/div&gt;Gone are those days when monolithic IT systems were developed and maintained by exclusive communities of IT professionals confined to technology-savvy regions of the world. The challenges of software engineering during the 21st century are quite different and multifold because of factors such as globalization and technology evolution.&lt;br /&gt;&lt;br /&gt;In order to face these challenges, 21st-century IT professionals will need to transform successful practices into habits so that these practices become second nature.&lt;br /&gt;&lt;br /&gt;Cutter IT Journal published my article “Force of Habit: 7 Essentials for 21-st Century IT Professionals” in the September 2011 issue. In this article, I&amp;nbsp;have discussed the seven habits that are essential for today’s IT professionals.&lt;br /&gt;&lt;br /&gt;The seven habits discussed in this article empower IT professionals to prepare, act, collaborate, optimize, and influence effectively in their career. &lt;br /&gt;&lt;br /&gt;&lt;strike&gt;Watch this space. I will publish&amp;nbsp;a link to download the article soon&lt;/strike&gt;.&amp;nbsp;&amp;nbsp; If you are a Cutter member, you can download&amp;nbsp;it from &lt;a href="http://www.cutter.com/content/itjournal/fulltext/2011/09/itj1109c.html"&gt;Cutter.com&lt;/a&gt;.&amp;nbsp;&amp;nbsp;&amp;nbsp; Or&amp;nbsp;you can download a free copy of this article from &lt;a href="http://www.cutter.com/offers/forceofhabit.html"&gt;http://www.cutter.com/offers/forceofhabit.html&lt;/a&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356516183452551110-7300310315537267498?l=se-thoughtograph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://se-thoughtograph.blogspot.com/feeds/7300310315537267498/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=356516183452551110&amp;postID=7300310315537267498&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/7300310315537267498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/7300310315537267498'/><link rel='alternate' type='text/html' href='http://se-thoughtograph.blogspot.com/2011/10/7-habits-of-highly-effective-21-st.html' title='The 7 Habits of Highly Effective 21-st Century IT Professionals'/><author><name>Raja Bavani</name><uri>http://www.blogger.com/profile/03107697584076683320</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-12aynZTIiyk/TX2xwHprUhI/AAAAAAAAAGc/kJd9gMNUqJo/s220/IMG_91491.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-PEl-1DXOcqg/To8gSEUmUrI/AAAAAAAAAK4/ZFTliwCmpvQ/s72-c/RajaBavani.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356516183452551110.post-6820530550100103004</id><published>2011-09-29T18:10:00.000-07:00</published><updated>2011-09-29T18:11:34.041-07:00</updated><title type='text'>Can Unit Testing Improve Testability?</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-1dJqoNJQuIo/ToUWz8d9_fI/AAAAAAAAAK0/8wpyLUnt87M/s1600/Seventeen.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="226" kca="true" src="http://3.bp.blogspot.com/-1dJqoNJQuIo/ToUWz8d9_fI/AAAAAAAAAK0/8wpyLUnt87M/s320/Seventeen.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="center"&gt;﻿&lt;/div&gt;While writing unit tests software engineers tend to relook at the source code and improve it so that it becomes testable. This is an internal experience. When you do this your code becomes maintainable as well. Have you gone through this experience?&lt;br /&gt;&lt;br /&gt;You get this experience when you write unit tests for the complex pieces of your source code.&lt;br /&gt;&lt;br /&gt;Two recent articles on topics related to this subject are ‘&lt;a href="http://drdobbs.com/architecture-and-design/231600404"&gt;Breaking Away From The Unit Test Group Think&lt;/a&gt;’ by Cedric Beust and ‘&lt;a href="http://drdobbs.com/architecture-and-design/231601779"&gt;Chasing Code-Coverage Baubles&lt;/a&gt;’ by Andrew Binstock. A good read for all software engineers.&lt;br /&gt;&lt;br /&gt;These articles reveal several misconceptions related to Unit Testing and TDD and provide answers to the following questions.&lt;br /&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;Do you think 90% code coverage through unit testing is sufficient?&lt;/li&gt;&lt;li&gt;Do you think you need to do TDD always in your development cycle?&amp;nbsp;&lt;/li&gt;&lt;li&gt;What is the optimal code coverage? How do you decide?&amp;nbsp;&lt;/li&gt;&lt;li&gt;Has TDD become a common practice in the industry?&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356516183452551110-6820530550100103004?l=se-thoughtograph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://se-thoughtograph.blogspot.com/feeds/6820530550100103004/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=356516183452551110&amp;postID=6820530550100103004&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/6820530550100103004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/6820530550100103004'/><link rel='alternate' type='text/html' href='http://se-thoughtograph.blogspot.com/2011/09/can-unit-testing-improve-testability.html' title='Can Unit Testing Improve Testability?'/><author><name>Raja Bavani</name><uri>http://www.blogger.com/profile/03107697584076683320</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-12aynZTIiyk/TX2xwHprUhI/AAAAAAAAAGc/kJd9gMNUqJo/s220/IMG_91491.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-1dJqoNJQuIo/ToUWz8d9_fI/AAAAAAAAAK0/8wpyLUnt87M/s72-c/Seventeen.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356516183452551110.post-7569965168012033184</id><published>2011-09-22T08:45:00.000-07:00</published><updated>2011-11-18T08:06:51.791-08:00</updated><title type='text'>Governance of Distributed Agile Projects: Critical Success Factors</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-8y6yZw2hdIk/TntX8PUy4DI/AAAAAAAAAKw/T6mSmnccDs4/s1600/at2011_speaker.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" hca="true" height="106" src="http://4.bp.blogspot.com/-8y6yZw2hdIk/TntX8PUy4DI/AAAAAAAAAKw/T6mSmnccDs4/s320/at2011_speaker.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="center"&gt;﻿&lt;/div&gt;On 15th October 2011, I&amp;nbsp;am&amp;nbsp;speaking at 'Agile Tour 2011, Pune'. &lt;a href="http://www.isec.co/event_programevent.php"&gt;India Scrum Enthusiasts Community&lt;/a&gt;&amp;nbsp;is organizing this event.&amp;nbsp;Agile Tour&amp;nbsp;is a forum for&amp;nbsp;Agile practitioners&amp;nbsp;at all levels - from&amp;nbsp;young engineers&amp;nbsp;to professionals at very senior levels. &lt;br /&gt;&lt;br /&gt;The title of my session is '&lt;a href="http://mindtree.com/downloads/AgileTourPune2011_RB.pdf"&gt;Governance of Distributed Agile Projects: Critical Success Factors&lt;/a&gt;'.&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;This session is based on an &lt;a href="http://www.mindtree.com/resource-center/thought-posts/governance-distributed-agile-projects-5-steps-ensure-early-success"&gt;article&lt;/a&gt; published in the July 2011 issue of &lt;a href="http://www.agilerecord.com/"&gt;Agile Record&lt;/a&gt;. &lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356516183452551110-7569965168012033184?l=se-thoughtograph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://se-thoughtograph.blogspot.com/feeds/7569965168012033184/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=356516183452551110&amp;postID=7569965168012033184&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/7569965168012033184'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/7569965168012033184'/><link rel='alternate' type='text/html' href='http://se-thoughtograph.blogspot.com/2011/09/critical-success-factors-for-governance.html' title='Governance of Distributed Agile Projects: Critical Success Factors'/><author><name>Raja Bavani</name><uri>http://www.blogger.com/profile/03107697584076683320</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-12aynZTIiyk/TX2xwHprUhI/AAAAAAAAAGc/kJd9gMNUqJo/s220/IMG_91491.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-8y6yZw2hdIk/TntX8PUy4DI/AAAAAAAAAKw/T6mSmnccDs4/s72-c/at2011_speaker.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356516183452551110.post-3751804899438971522</id><published>2011-09-18T06:25:00.000-07:00</published><updated>2011-09-18T06:31:32.971-07:00</updated><title type='text'>Requirement Engineering: Asking Context-Free Questions</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-px_TGVfj5NA/TnXu15x7S6I/AAAAAAAAAKs/HuCwALb1UDQ/s1600/Four.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="198" rba="true" src="http://2.bp.blogspot.com/-px_TGVfj5NA/TnXu15x7S6I/AAAAAAAAAKs/HuCwALb1UDQ/s320/Four.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;‘&lt;em&gt;Exploring Requirements: Quality Before Design&lt;/em&gt;’ by Donald C. Gause and Gerald M. Weinberg is a must read for students as well as professionals. In this book, the authors emphasize that project teams need to ask context-free questions in order to understand high level details that are necessary to create the right product in the right way. According to them there are two primary categories of context-free questions: a) context-free process questions and b) context-free product questions. Also, they discuss about the third broad category of questions called metaquestions or questions about questions. Context-free questions are applicable to any product design. They consume less effort but provide an opportunity to obtain valuable information.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Context-free questions can be used in Software Engineering irrespective of the lifecycle methodology used. Also, IT consulting teams can use context-free questions during portfolio analysis or assessment phase in order to better understand the customer requirements.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Context-free process questions relate to the process to be followed and the answers to context-free questions relate to the project or the lifecycle activities. Context-free product questions relate to the design of the product and the answers to context-free product questions provide details on attributes, considerations or trade-offs related to design of the product.&amp;nbsp;Let me share few examples here. Most of these examples are based on my experience.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;strong&gt;&lt;u&gt;Examples of Context-Free Process Questions:&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;What are the success criteria for this project? Or how do we measure the success of this project?&lt;/li&gt;&lt;li&gt;What are the driving factors for executing this project with a collocated team (or distributed team) or a consulting partner?&lt;/li&gt;&lt;li&gt;How much time do we have for this project? &lt;/li&gt;&lt;li&gt;What is your trade-off between schedule and quality?&lt;/li&gt;&lt;li&gt;Where else can the solution to this design problem be obtained?&lt;/li&gt;&lt;li&gt;Can we&amp;nbsp;reuse something that already exists? Can we use open source?&lt;/li&gt;&lt;li&gt;Who are the competitors for this product?&lt;/li&gt;&lt;/ol&gt;&lt;div style="text-align: left;"&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;strong&gt;&lt;u&gt;Examples of Context-Free Product Questions:&lt;/u&gt;&lt;/strong&gt;&amp;nbsp;&lt;/div&gt;&lt;br /&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;What problems does this product solve?&lt;/li&gt;&lt;li&gt;What problems could this product create?&lt;/li&gt;&lt;li&gt;What are the operational environments for this product?&lt;/li&gt;&lt;li&gt;What kind of precision is required or desired in the product?&lt;/li&gt;&lt;li&gt;What are the interfacing standards to be followed?&lt;/li&gt;&lt;/ol&gt;&lt;strong&gt;&lt;u&gt;Examples of Metaquestions:&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;Am I asking you too many questions?&lt;/li&gt;&lt;li&gt;Do my questions seem relevant?&lt;/li&gt;&lt;li&gt;Who is the right person to answer these questions?&lt;/li&gt;&lt;li&gt;Do you think our team needs to contact multiple members in your organization to get answers to these questions?&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;Context-free questions help us identify hidden assumptions. They help us identify the right approach to design applications or products. Also they help us design the right applications or products.&amp;nbsp;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356516183452551110-3751804899438971522?l=se-thoughtograph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://se-thoughtograph.blogspot.com/feeds/3751804899438971522/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=356516183452551110&amp;postID=3751804899438971522&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/3751804899438971522'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/3751804899438971522'/><link rel='alternate' type='text/html' href='http://se-thoughtograph.blogspot.com/2011/09/requirement-engineering-asking-context.html' title='Requirement Engineering: Asking Context-Free Questions'/><author><name>Raja Bavani</name><uri>http://www.blogger.com/profile/03107697584076683320</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-12aynZTIiyk/TX2xwHprUhI/AAAAAAAAAGc/kJd9gMNUqJo/s220/IMG_91491.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-px_TGVfj5NA/TnXu15x7S6I/AAAAAAAAAKs/HuCwALb1UDQ/s72-c/Four.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356516183452551110.post-2018638558577418080</id><published>2011-09-12T08:10:00.000-07:00</published><updated>2011-09-13T08:35:45.573-07:00</updated><title type='text'>Computer Programming:  Art or Science?</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-rsESxiSIv6M/Tm4fZ2cEOFI/AAAAAAAAAKo/f4obtC-YjME/s1600/Sixteen.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="236" nba="true" src="http://1.bp.blogspot.com/-rsESxiSIv6M/Tm4fZ2cEOFI/AAAAAAAAAKo/f4obtC-YjME/s320/Sixteen.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;Donald E. Knuth, one of the world’s eminent computer scientists, published hundreds of papers and evangelized computer science through his writings and teachings. His three volumes of ‘The Art of Computer Programming’ are among the most popular books in computer science. &lt;br /&gt;&lt;br /&gt;In an interview&amp;nbsp;he&amp;nbsp;said, “When you write a program, think of it primarily as a work of literature. You’re trying to write something that human beings are going to read. Don’t think of it primarily as something a computer is going to follow. The more effective you are at making your program readable, the more effective it’s going to be: You’ll understand it today, you’ll understand it next week, and your successors who are going to maintain and modify it will understand it.”&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;Programming is not a mechanical activity. Successful compilation of programs is not the end to programming. Putting your programs through a static analysis tool (for eg., JTest) is just the beginning. Programmers need to understand the errors reported by such tools and develop the ability to pick and choose the right set of fixes that can improve code quality. Also, programmers need to practice refactoring in order to improve code quality.&lt;br /&gt;&lt;br /&gt;An interesting analogy is cookery. Those who carry the passion for cooking do not blindly follow a set of instructions or restrict themselves to using state-of-the-art tools. They think of it as a work of art.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;By the way, the full version of &lt;a href="http://drdobbs.com/blogs/architecture-and-design/228700500"&gt;Donald E.Knuth's interview&amp;nbsp;is available at&amp;nbsp;the website of&amp;nbsp;Dr.Dobb's journal&lt;/a&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356516183452551110-2018638558577418080?l=se-thoughtograph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://se-thoughtograph.blogspot.com/feeds/2018638558577418080/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=356516183452551110&amp;postID=2018638558577418080&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/2018638558577418080'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/2018638558577418080'/><link rel='alternate' type='text/html' href='http://se-thoughtograph.blogspot.com/2011/09/computer-programming-art-or-science.html' title='Computer Programming:  Art or Science?'/><author><name>Raja Bavani</name><uri>http://www.blogger.com/profile/03107697584076683320</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-12aynZTIiyk/TX2xwHprUhI/AAAAAAAAAGc/kJd9gMNUqJo/s220/IMG_91491.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-rsESxiSIv6M/Tm4fZ2cEOFI/AAAAAAAAAKo/f4obtC-YjME/s72-c/Sixteen.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356516183452551110.post-1838632670269026127</id><published>2011-09-06T06:49:00.000-07:00</published><updated>2011-09-06T07:56:05.637-07:00</updated><title type='text'>Data Mining for Environmental Protection</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-NKE3jf_e0_A/TmYjWe_IxII/AAAAAAAAAKk/v0nAyvgyXsY/s1600/Eleven.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="199" nba="true" src="http://3.bp.blogspot.com/-NKE3jf_e0_A/TmYjWe_IxII/AAAAAAAAAKk/v0nAyvgyXsY/s320/Eleven.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="center"&gt;﻿&lt;/div&gt;Data Mining is an emerging field of computer science. It involves data processing, data analysis and derivation of useful information from large databases or data marts. &lt;br /&gt;&lt;br /&gt;Life-Cycle Assessment (LCA) is a technique used to estimate the environmental footprints of hardware products by taking a comprehensive view of multiple environmental impacts such as greenhouse emissions of products. Interestingly Data Mining can be used to automate Life-Cycle Assessment (LCA). This is a wonderful application of Software Engineering for environmental protection.&lt;br /&gt;&lt;br /&gt;A recent &lt;a href="http://people.cs.vt.edu/~naren/papers/da-lcaaug2011.pdf"&gt;article titled 'Using Data&amp;nbsp;Mining to Help&amp;nbsp;Design Sustainable Products'&amp;nbsp;published by IEEE&lt;/a&gt; is a very good read on this subject.&lt;br /&gt;&lt;br /&gt;You may ask, ‘How Green is my iPad?’. The answer to this question was elaborated by Daniel Goleman and Gregory Norris in their &lt;a href="http://www.nytimes.com/interactive/2010/04/04/opinion/04opchart.html"&gt;article published by New York Times&lt;/a&gt;, 4th April 2010.&lt;br /&gt;&lt;br /&gt;Another interesting article on this subject has been published by Brazilian Journal of Oceanography.&amp;nbsp;The title of this article is&amp;nbsp;&amp;nbsp;'&lt;a href="http://www.scielo.br/scielo.php?script=sci_arttext&amp;amp;pid=S1679-87592008000100001"&gt;Data mining for environmental analysis and diagnostic: A case study of upwelling ecosystem of Arraial do Cabo&lt;/a&gt;'.&lt;br /&gt;&lt;br /&gt;Is there a way to monitor illegal dumping of garbage and toxic material? The answer is yes. Read ‘&lt;a href="http://www.a-a-r-s.org/acrs/proceeding/ACRS2006/Papers/P-3_P63.pdf"&gt;Monitoring of Illegal Dumping Using Spatial Data Mining and Remote Sensing&lt;/a&gt;’ for more information.&lt;br /&gt;&lt;br /&gt;Here is an example on how governments are funding research in this area: &lt;br /&gt;&lt;a href="http://cordis.europa.eu/search/index.cfm?fuseaction=proj.document&amp;amp;PJ_RCN=5942643"&gt;Environmental data mining: learning algorithms and statistical tools for monitoring and forecasting&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Isn't it interesting?&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356516183452551110-1838632670269026127?l=se-thoughtograph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://se-thoughtograph.blogspot.com/feeds/1838632670269026127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=356516183452551110&amp;postID=1838632670269026127&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/1838632670269026127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/1838632670269026127'/><link rel='alternate' type='text/html' href='http://se-thoughtograph.blogspot.com/2011/09/data-mining-for-environmental.html' title='Data Mining for Environmental Protection'/><author><name>Raja Bavani</name><uri>http://www.blogger.com/profile/03107697584076683320</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-12aynZTIiyk/TX2xwHprUhI/AAAAAAAAAGc/kJd9gMNUqJo/s220/IMG_91491.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-NKE3jf_e0_A/TmYjWe_IxII/AAAAAAAAAKk/v0nAyvgyXsY/s72-c/Eleven.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356516183452551110.post-2680361008678318377</id><published>2011-08-17T05:14:00.000-07:00</published><updated>2011-08-31T06:56:45.905-07:00</updated><title type='text'>Speaking at Java Conference 2011</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div closure_uid_p7optl="111"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" closure_uid_p7optl="217" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.siliconindia.com/events-agenda/java-conference-Bangalore-JavaConf_bangalore_2011.html"&gt;&lt;img border="0" height="70" qaa="true" src="http://3.bp.blogspot.com/-Bk8l4trsvx8/TkuvwNVs63I/AAAAAAAAAKg/Jk4ZfiRgvCY/s400/dyn_eve5n1PDT29.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div closure_uid_p7optl="111"&gt;&lt;div closure_uid_c8ug8p="101"&gt;&lt;div closure_uid_3ult7j="90"&gt;SiliconIndia's &lt;a href="http://www.siliconindia.com/events-agenda/java-conference-Bangalore-JavaConf_bangalore_2011.html"&gt;Java Conference 2011&lt;/a&gt; is scheduled on August 20th 2011 in Bangalore. This conference is for Java professionals as well as IT experts who&amp;nbsp;are into&amp;nbsp;object-oriented languages, evolutionary methodologies (for example, Agile methodologies) &amp;nbsp;and emerging trends such as&amp;nbsp;Cloud&amp;nbsp;Computing&amp;nbsp;.&amp;nbsp; This is a&amp;nbsp; 1-day conference and it has 3 tracks:&lt;/div&gt;&lt;/div&gt;&lt;div closure_uid_c8ug8p="101"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/div&gt;&lt;div closure_uid_c8ug8p="101"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1) Language, Tools &amp;amp; Techniques&lt;/div&gt;&lt;div closure_uid_c8ug8p="101"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2) Architecture and SOA&lt;/div&gt;&lt;div closure_uid_c8ug8p="101"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3) Agile and Cloud. &lt;/div&gt;&lt;div closure_uid_c8ug8p="101"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div closure_uid_c8ug8p="101"&gt;The conference fee is very nominal. If you are in Bangalore, don’t miss this opportunity.&amp;nbsp; I am speaking on '&lt;a href="http://se-thoughtograph.blogspot.com/2011/08/agile-for-legacy-to-saas-migration.html"&gt;Agile for Legacy to SaaS Migration: Ten Key Considerations&lt;/a&gt;'. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356516183452551110-2680361008678318377?l=se-thoughtograph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://se-thoughtograph.blogspot.com/feeds/2680361008678318377/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=356516183452551110&amp;postID=2680361008678318377&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/2680361008678318377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/2680361008678318377'/><link rel='alternate' type='text/html' href='http://se-thoughtograph.blogspot.com/2011/08/speaking-at-java-conference-2011.html' title='Speaking at Java Conference 2011'/><author><name>Raja Bavani</name><uri>http://www.blogger.com/profile/03107697584076683320</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-12aynZTIiyk/TX2xwHprUhI/AAAAAAAAAGc/kJd9gMNUqJo/s220/IMG_91491.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-Bk8l4trsvx8/TkuvwNVs63I/AAAAAAAAAKg/Jk4ZfiRgvCY/s72-c/dyn_eve5n1PDT29.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356516183452551110.post-7889474214299852350</id><published>2011-08-13T08:23:00.000-07:00</published><updated>2011-08-15T05:30:44.926-07:00</updated><title type='text'>Agile for Legacy to SaaS Migration</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-y_5YgYqPOYg/TkaVrroDtbI/AAAAAAAAAKY/C19MAywcE1U/s1600/Thirteen.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="216" naa="true" src="http://1.bp.blogspot.com/-y_5YgYqPOYg/TkaVrroDtbI/AAAAAAAAAKY/C19MAywcE1U/s320/Thirteen.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="center"&gt;﻿&lt;/div&gt;&lt;div closure_uid_hvh65z="100"&gt;During 2000, I was associated with an Independent Software Vendor (ISV) - a small startup firm with not more than fifty employees. The engineering team of this startup firm built a Human Resources Management (HRM) product on J2EE stack with JRun application server and My SQL database. During the first 3 years the sales team sold the product to less than 25 customers. These customers were small to medium size businesses with 100 to 1000 employees. Sales cycles were longer. Every new customer had to go through an installation ceremony followed by a series of customization routine to make the product functional. Even though product customization fetched some revenue through professional services, working with customers spread across geographies and providing them product support became very tedious. Over the next several years the customer base of this product increased by 300%. &lt;/div&gt;&lt;br /&gt;Since the past two years the complexity of product management and customer management has increased multifold. Every customer installation has had some form of customization request queue with less than 50% of the requests implemented in production. Lately, scaling up in the current model has become an insurmountable challenge.&lt;br /&gt;&lt;br /&gt;&lt;div closure_uid_iymrto="113"&gt;Interestingly, this HRM product is a good example of a legacy web product or application that needs to be re-architected or transformed to SaaS paradigm. Can we use Agile for SaaS migration? The answer is “Yes”. However it is essential to reflect on a set of key considerations in such projects. You will find more info on this subject in the free white paper “&lt;a href="http://www.cio.in/whitepaper/agile-legacy-saas-migration-ten-key-considerations"&gt;Agile for Legacy to SaaS Migration: Ten Key Considerations&lt;/a&gt;”. &lt;/div&gt;&lt;div closure_uid_d4r90e="102"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div closure_uid_d4r90e="102"&gt;What has been your experience in this area?&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356516183452551110-7889474214299852350?l=se-thoughtograph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://se-thoughtograph.blogspot.com/feeds/7889474214299852350/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=356516183452551110&amp;postID=7889474214299852350&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/7889474214299852350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/7889474214299852350'/><link rel='alternate' type='text/html' href='http://se-thoughtograph.blogspot.com/2011/08/agile-for-legacy-to-saas-migration.html' title='Agile for Legacy to SaaS Migration'/><author><name>Raja Bavani</name><uri>http://www.blogger.com/profile/03107697584076683320</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-12aynZTIiyk/TX2xwHprUhI/AAAAAAAAAGc/kJd9gMNUqJo/s220/IMG_91491.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-y_5YgYqPOYg/TkaVrroDtbI/AAAAAAAAAKY/C19MAywcE1U/s72-c/Thirteen.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356516183452551110.post-6464210925337412639</id><published>2011-07-29T07:31:00.000-07:00</published><updated>2011-07-29T08:47:30.416-07:00</updated><title type='text'>Can Refactoring Improve Design ?</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-BlsLld0fMAU/TjLAu0uvHkI/AAAAAAAAAKU/Geo6XICzIiA/s1600/DSC00182.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://2.bp.blogspot.com/-BlsLld0fMAU/TjLAu0uvHkI/AAAAAAAAAKU/Geo6XICzIiA/s320/DSC00182.JPG" t$="true" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div closure_uid_adgpr8="121" style="text-align: justify;"&gt;&lt;div closure_uid_cebqyz="129"&gt;Yes, it can but not always!&lt;/div&gt;&lt;/div&gt;&lt;div closure_uid_adgpr8="121" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;When can refactoring improve design? Refactoring can improve design when team members who do refactoring are not only just programmers who know only language constructs but also are designers who know design principles. Team members who perform refactoring need to be experienced programmers. That is not enough. They need to know design principles in order to improve design. Else, they will not be able to figure out if the structure and association of entities or classes need to be changed in order to improve the design of software systems. They will focus only on a single program or subset of classes while refactoring.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Refactoring cannot improve design when we put programmers through a crash course on refactoring. It is essential to train them on object oriented analysis and design. They need to learn all design principles as well as programming principles. If we take this approach, yes, refactoring can improve design.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;There can be extreme cases of dealing with complex or legacy code. Refactoring of legacy code is a costly affair. This requires experienced designers who have the ability to discover the hidden design. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div closure_uid_adgpr8="122" style="text-align: justify;"&gt;In his article ‘&lt;a href="http://drdobbs.com/architecture-and-design/231002664"&gt;Discovering Hidden Design&lt;/a&gt;’, Michael Feathers has articulated this very well with an example. It is a good read for all software professionals.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356516183452551110-6464210925337412639?l=se-thoughtograph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://se-thoughtograph.blogspot.com/feeds/6464210925337412639/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=356516183452551110&amp;postID=6464210925337412639&amp;isPopup=true' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/6464210925337412639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/6464210925337412639'/><link rel='alternate' type='text/html' href='http://se-thoughtograph.blogspot.com/2011/07/can-refactoring-improve-design.html' title='Can Refactoring Improve Design ?'/><author><name>Raja Bavani</name><uri>http://www.blogger.com/profile/03107697584076683320</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-12aynZTIiyk/TX2xwHprUhI/AAAAAAAAAGc/kJd9gMNUqJo/s220/IMG_91491.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-BlsLld0fMAU/TjLAu0uvHkI/AAAAAAAAAKU/Geo6XICzIiA/s72-c/DSC00182.JPG' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356516183452551110.post-7045086818780390147</id><published>2011-07-13T09:08:00.000-07:00</published><updated>2011-07-13T17:52:42.053-07:00</updated><title type='text'>Challenges in Distributed Agile</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-fQ7-cSlZZas/Th3ARZG4PCI/AAAAAAAAAKQ/v5Arw2RJ5No/s1600/Vegetables.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="160" m$="true" src="http://3.bp.blogspot.com/-fQ7-cSlZZas/Th3ARZG4PCI/AAAAAAAAAKQ/v5Arw2RJ5No/s320/Vegetables.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;While executing&amp;nbsp;multi-site projects, Agile practitioners do face several challenges due to factors such as distribution of teams that results in limitations in face-to-face communication, and cultural mix of teams that impedes team bonding.&amp;nbsp;&amp;nbsp; In some instances&amp;nbsp; I have seen collocated Agile teams&amp;nbsp;inducting distributed teams&amp;nbsp;in order&amp;nbsp;to implement distributed Agile.&amp;nbsp; In&amp;nbsp;other instances,&amp;nbsp;several virtual teams come together to implement distributed Agile.&amp;nbsp; In both&amp;nbsp;cases,&amp;nbsp;the short term results are not impressive because of the inherent challenges associated with distributed Agile. Also, several questions such as the following surface as challenges.&lt;br /&gt;&lt;br /&gt;1) How do you ensure that everyone understands the project vision and builds adequate rapport to work as a team?&lt;br /&gt;2) Are&amp;nbsp;engineers making the right assumptions (and validating them) and understand their expectations?&lt;br /&gt;3) Are team members aware of detrimental communication loops that can impact productivity?&lt;br /&gt;4) How will team members involve in efficient query resolution and ensure that they preserve the tacit knowledge exchanges?&lt;br /&gt;5) How do team members avoid the trap of 'Blame Game' that could arise from product demos at the master location?&lt;br /&gt;6) How do team members own quality and improve both internal and external quality of the product?&lt;br /&gt;7) How&amp;nbsp;will senior leaders or program mangers&amp;nbsp;react to&amp;nbsp;unfinished user stories?&lt;br /&gt;8) How accurate can be the status checks? How will Scrum Master(s) perform status checks?&lt;br /&gt;9)&amp;nbsp;When and Where will Root Cause Analysis happen? Who will participate?&lt;br /&gt;10) &amp;nbsp;How will senior leaders maintain team motivation across virtual teams?&lt;br /&gt;&lt;br /&gt;There are ways to manage distributed Agile challenges and &lt;a href="http://lf1.me/3p/5steps"&gt;ensure early success&lt;/a&gt; in projects.&amp;nbsp; &lt;a href="http://lf1.me/3p/5steps"&gt;Governance of distributed agile projects&lt;/a&gt; plays a crucial role in making this happen.&amp;nbsp;&amp;nbsp; What has been your experience?&amp;nbsp; What are the &lt;a href="http://www.mindtree.com/resource-center/thought-posts/critical-success-factors-distributed-agile-presented-conseg-2009"&gt;critical success factors&lt;/a&gt;?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356516183452551110-7045086818780390147?l=se-thoughtograph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://se-thoughtograph.blogspot.com/feeds/7045086818780390147/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=356516183452551110&amp;postID=7045086818780390147&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/7045086818780390147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/7045086818780390147'/><link rel='alternate' type='text/html' href='http://se-thoughtograph.blogspot.com/2011/07/challenges-in-distributed-agile.html' title='Challenges in Distributed Agile'/><author><name>Raja Bavani</name><uri>http://www.blogger.com/profile/03107697584076683320</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-12aynZTIiyk/TX2xwHprUhI/AAAAAAAAAGc/kJd9gMNUqJo/s220/IMG_91491.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-fQ7-cSlZZas/Th3ARZG4PCI/AAAAAAAAAKQ/v5Arw2RJ5No/s72-c/Vegetables.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356516183452551110.post-6233699798684074248</id><published>2011-07-06T21:19:00.000-07:00</published><updated>2011-07-06T21:19:45.756-07:00</updated><title type='text'>SQL - The Past, Present and Future</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-u0PvrDvtjfc/ThUy3qJTf7I/AAAAAAAAAKM/MLJiTxdJfYI/s1600/SQL.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="273" i$="true" src="http://2.bp.blogspot.com/-u0PvrDvtjfc/ThUy3qJTf7I/AAAAAAAAAKM/MLJiTxdJfYI/s320/SQL.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;In June 1970 Dr. E. F. Codd published the seminal paper, "A Relational Model of Data for Large Shared Data Banks", in the Association of Computer Machinery (ACM) journal, Communications of the ACM. This paper laid the foundation of relational databases and Codd's model got accepted as the definitive model for relational database management systems (RDBMS) across research institutes in all continents. &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;For the past three decades SQL has been accepted as the standard RDBMS language. There are three key reasons for the longevity of SQL. They are &lt;a href="http://www.sdtimes.com/content/article.aspx?ArticleID=35699"&gt;a) Simplicity, b) Strong Mathematical Foundation and c) Adoption (by several vendors)&lt;/a&gt;. The power of SQL increased tremendously over the past three decades and SQL emerged as the de-facto standard for relational databases.&lt;br /&gt;&lt;br /&gt;The NoSQL movement of 1998 supports database implementations that are non-relational data stores of several categories such as document stores, graph databases, key-value stores, multi-valued databases, etc. There are several flavors of NoSQL implementations such as Oracle Corporation’s BerkeleyDB, Google’s BigTable, Apache’s Cassandra, and Amazon’s SimpleDB.&lt;br /&gt;&lt;br /&gt;It is very evident that SQL and NoSQL movement are complementary. RDBMS and SQL implementations will continue to thrive in ecosystems that require OLTP support on relational data stores. &lt;a href="http://www.sdtimes.com/content/article.aspx?ArticleID=35699"&gt;What Next?&lt;/a&gt;&lt;br /&gt;﻿ &lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356516183452551110-6233699798684074248?l=se-thoughtograph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://se-thoughtograph.blogspot.com/feeds/6233699798684074248/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=356516183452551110&amp;postID=6233699798684074248&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/6233699798684074248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/6233699798684074248'/><link rel='alternate' type='text/html' href='http://se-thoughtograph.blogspot.com/2011/07/sql-past-present-and-future.html' title='SQL - The Past, Present and Future'/><author><name>Raja Bavani</name><uri>http://www.blogger.com/profile/03107697584076683320</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-12aynZTIiyk/TX2xwHprUhI/AAAAAAAAAGc/kJd9gMNUqJo/s220/IMG_91491.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-u0PvrDvtjfc/ThUy3qJTf7I/AAAAAAAAAKM/MLJiTxdJfYI/s72-c/SQL.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356516183452551110.post-6222291215476324926</id><published>2011-06-28T08:55:00.000-07:00</published><updated>2011-06-28T08:55:57.603-07:00</updated><title type='text'>Podcast on ’10 Best Influences on Software Product Engineering’</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-jOkr9nlXGM4/Tgn1clCNhtI/AAAAAAAAAKI/BgifG7PuTgk/s1600/PIC1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="232" src="http://4.bp.blogspot.com/-jOkr9nlXGM4/Tgn1clCNhtI/AAAAAAAAAKI/BgifG7PuTgk/s320/PIC1.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;Tom Cagley (&lt;a href="http://tcagley.wordpress.com/"&gt;http://tcagley.wordpress.com/&lt;/a&gt;) interviewed me on my article ’&lt;a href="http://lf1.me/Ni/"&gt;10 Best Influences on Software Engineering&lt;/a&gt;’ published at &lt;a href="http://www.sdtimes.com/"&gt;SD Times&lt;/a&gt;. &lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; This interview happened sometime during April or May 2011. &amp;nbsp;During this interview Tom asked me very interesting questions and engaged me in a great conversation.&lt;/span&gt;&amp;nbsp; &amp;nbsp; This interview happened over phone across continents. He was in US (East Coast) and I was in India(Pune). &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;Tom has composed this interview and made it available at&amp;nbsp;&lt;a href="http://spamcast.libsyn.com/s-pa-mcast-140-raja-bavani-the-ten-best-influences-on-software-product-engineering"&gt;http://spamcast.libsyn.com/s-pa-mcast-140-raja-bavani-the-ten-best-influences-on-software-product-engineering&lt;/a&gt;.&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;o:p&gt;Tom runs 'Software Process and Measurement' (SPAM) casts regularly. &amp;nbsp;&lt;/o:p&gt;&lt;span class="Apple-style-span" style="font-size: 16px;"&gt;The Software Process and Measurement Cast provides a forum to explore the varied world of software process improvement and measurement.&amp;nbsp; The SPaMCast covers topics that deal the challenges how work is done in information technology organizations as they grow and evolve. &amp;nbsp;In a nutshell, the cast provides advice for and from practitioners, methodologists, pundits and consultants!&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size: 16px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size: 16px;"&gt;I encourage you to visit his sites and listen to as many casts as you can. &amp;nbsp;You will find impressive interviews by several industry leaders in Software Engineering.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356516183452551110-6222291215476324926?l=se-thoughtograph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://se-thoughtograph.blogspot.com/feeds/6222291215476324926/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=356516183452551110&amp;postID=6222291215476324926&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/6222291215476324926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/6222291215476324926'/><link rel='alternate' type='text/html' href='http://se-thoughtograph.blogspot.com/2011/06/podcast-on-10-best-influences-on.html' title='Podcast on ’10 Best Influences on Software Product Engineering’'/><author><name>Raja Bavani</name><uri>http://www.blogger.com/profile/03107697584076683320</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-12aynZTIiyk/TX2xwHprUhI/AAAAAAAAAGc/kJd9gMNUqJo/s220/IMG_91491.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-jOkr9nlXGM4/Tgn1clCNhtI/AAAAAAAAAKI/BgifG7PuTgk/s72-c/PIC1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356516183452551110.post-5513725850380066922</id><published>2011-06-25T18:42:00.000-07:00</published><updated>2011-06-25T18:47:01.140-07:00</updated><title type='text'>The Four Dimensions of Quality</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-sueW55U5FTA/TgaOfxGwtiI/AAAAAAAAAKE/ffmeifDpxGk/s1600/DSC00313.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" i$="true" src="http://1.bp.blogspot.com/-sueW55U5FTA/TgaOfxGwtiI/AAAAAAAAAKE/ffmeifDpxGk/s320/DSC00313.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;This is with reference to my &lt;a href="http://se-thoughtograph.blogspot.com/2011/06/manifesto-for-software-craftsmanship.html"&gt;blog of June 3rd 2011&lt;/a&gt; on The Manifesto for Software Craftsmanship Manifesto. This manifesto says&lt;br /&gt;&lt;br /&gt;&lt;em&gt;As aspiring Software Craftsmen, we are raising the bar of professional software development by practicing it and helping others learn the craft. Through this work, we have come to value:&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;Not only working software, but also well-crafted software&lt;/em&gt;&lt;br /&gt;&lt;em&gt;Not only responding to change, but also steadily adding value&lt;/em&gt;&lt;br /&gt;&lt;em&gt;Not only individuals and interactions, but also a community of professionals&lt;/em&gt;&lt;br /&gt;&lt;em&gt;Not only customer collaboration, but also productive partnerships&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;That is, in pursuit of the items on the left, we have found the items on the right to be indispensable.&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;br /&gt;When you observe the crux of this manifesto closely, it relates to &lt;a href="http://lf1.me/5o/swman"&gt;four dimensions of quality, viz., Product Quality, Business Quality, Professional Quality and Engagement Quality&lt;/a&gt;.&amp;nbsp; Right ?&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356516183452551110-5513725850380066922?l=se-thoughtograph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://se-thoughtograph.blogspot.com/feeds/5513725850380066922/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=356516183452551110&amp;postID=5513725850380066922&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/5513725850380066922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/5513725850380066922'/><link rel='alternate' type='text/html' href='http://se-thoughtograph.blogspot.com/2011/06/four-dimensions-of-quality.html' title='The Four Dimensions of Quality'/><author><name>Raja Bavani</name><uri>http://www.blogger.com/profile/03107697584076683320</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-12aynZTIiyk/TX2xwHprUhI/AAAAAAAAAGc/kJd9gMNUqJo/s220/IMG_91491.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-sueW55U5FTA/TgaOfxGwtiI/AAAAAAAAAKE/ffmeifDpxGk/s72-c/DSC00313.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356516183452551110.post-964644365183340752</id><published>2011-06-09T09:09:00.000-07:00</published><updated>2011-06-09T09:09:07.566-07:00</updated><title type='text'>Are Software Engineering Methodologies Converging?</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-zuvsSZnkcL4/TfDfFdZBldI/AAAAAAAAAKA/E9S4XblZ2uM/s1600/converging_circles-Paris.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://3.bp.blogspot.com/-zuvsSZnkcL4/TfDfFdZBldI/AAAAAAAAAKA/E9S4XblZ2uM/s320/converging_circles-Paris.jpg" t8="true" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Calibri&amp;quot;, &amp;quot;sans-serif&amp;quot;; line-height: 115%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"&gt;&lt;span style="font-family: Times, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Are Software Engineering&amp;nbsp;methodologies converging?&amp;nbsp;&amp;nbsp;Or&amp;nbsp;are&amp;nbsp;traditional methodologies becoming extinct because of the popularity of evolutionary methodologies?&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Calibri&amp;quot;, &amp;quot;sans-serif&amp;quot;; line-height: 115%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"&gt;&lt;span style="font-family: Times, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Isn’t it a reality that projects customize methodologies to suit project context?&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Does it mean that every project adheres to its own flavor of a methodology?&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Can we attempt to collect all engineering and project management best practices &amp;amp; pick and choose them to create a methodology for a given context?&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Will Agile methodologies dominate the industry during the next decade?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Times;"&gt;Or do &lt;a href="http://www.sdtimes.com/IVAR_JACOBSON_WE_NEED_MORE_METHODOLOGIES_/By_Victoria_Reitano/About_IVARJACOBSON/35608"&gt;we need more methodologies&lt;/a&gt;?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356516183452551110-964644365183340752?l=se-thoughtograph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://se-thoughtograph.blogspot.com/feeds/964644365183340752/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=356516183452551110&amp;postID=964644365183340752&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/964644365183340752'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/964644365183340752'/><link rel='alternate' type='text/html' href='http://se-thoughtograph.blogspot.com/2011/06/are-software-engineering-methodologies.html' title='Are Software Engineering Methodologies Converging?'/><author><name>Raja Bavani</name><uri>http://www.blogger.com/profile/03107697584076683320</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-12aynZTIiyk/TX2xwHprUhI/AAAAAAAAAGc/kJd9gMNUqJo/s220/IMG_91491.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-zuvsSZnkcL4/TfDfFdZBldI/AAAAAAAAAKA/E9S4XblZ2uM/s72-c/converging_circles-Paris.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356516183452551110.post-5910819828618864119</id><published>2011-06-06T03:34:00.000-07:00</published><updated>2011-06-06T03:35:39.744-07:00</updated><title type='text'>The Ideal and the Essential</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-aRSJBk9g474/Teys7Nwe71I/AAAAAAAAAJ4/Oab56oq09mo/s1600/DSC00329.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://3.bp.blogspot.com/-aRSJBk9g474/Teys7Nwe71I/AAAAAAAAAJ4/Oab56oq09mo/s320/DSC00329.JPG" t8="true" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Distributed Agile projects are very challenging. Expecting the best results in your first Sprint is optimistic as well as ideal whereas the willingness to accept mixed outcomes and supporting your team in progressing over the first three or four iterations is essential.&lt;br /&gt;&lt;br /&gt;Agile teams are as energetic as music bands that yearn for their first stage appearance. A debut of a music band comes with tremendous efforts and enthusiasm. The debut of successful musicians is not only well-rehearsed but also well-supported by the team as well as sponsors. The first Sprint of a team is as memorable as the first stage show of a budding music band. &lt;br /&gt;&lt;br /&gt;More on this at “&lt;a href="http://lf1.me/an/"&gt;The First Sprint in Distributed Agile – What to Expect ?&lt;/a&gt;”&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356516183452551110-5910819828618864119?l=se-thoughtograph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://se-thoughtograph.blogspot.com/feeds/5910819828618864119/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=356516183452551110&amp;postID=5910819828618864119&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/5910819828618864119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/5910819828618864119'/><link rel='alternate' type='text/html' href='http://se-thoughtograph.blogspot.com/2011/06/ideal-and-essential.html' title='The Ideal and the Essential'/><author><name>Raja Bavani</name><uri>http://www.blogger.com/profile/03107697584076683320</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-12aynZTIiyk/TX2xwHprUhI/AAAAAAAAAGc/kJd9gMNUqJo/s220/IMG_91491.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-aRSJBk9g474/Teys7Nwe71I/AAAAAAAAAJ4/Oab56oq09mo/s72-c/DSC00329.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356516183452551110.post-4479076622528081003</id><published>2011-06-03T06:46:00.000-07:00</published><updated>2011-06-09T06:56:46.396-07:00</updated><title type='text'>Manifesto for Software Craftsmanship</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-FqOoaTzSQ6A/TfDRDjv1owI/AAAAAAAAAJ8/6l9SFnrJBqM/s1600/DSC00239.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/-FqOoaTzSQ6A/TfDRDjv1owI/AAAAAAAAAJ8/6l9SFnrJBqM/s320/DSC00239.JPG" t8="true" width="240" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-07kSvPkUG-c/TejoNnH50SI/AAAAAAAAAJ0/ch0MlQX4uUQ/s1600/SCManifesto.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="256" src="http://2.bp.blogspot.com/-07kSvPkUG-c/TejoNnH50SI/AAAAAAAAAJ0/ch0MlQX4uUQ/s320/SCManifesto.jpg" t8="true" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Robert Martin, one of the 17 founders of Agile Manifesto is one among the leaders who initiated ‘&lt;a href="http://manifesto.softwarecraftsmanship.org/"&gt;Software Craftsmanship&lt;/a&gt;’ movement during 2009 in order to emphasize on the importance of product quality. According to him, Agile practitioners focus more on iteration management activities and less on engineering best practices. The motivation of Software Craftsmanship manifesto is to kindle the enthusiasm in software engineers to create high quality products. Widely known among industry leaders as ‘Uncle Martin’, Robert Martin has objectively crafted this manifesto with his colleagues so that it remains aligned with Agile Manifesto and propels Agile movement. He believes that Software Craftsmanship movement will help us reinstate engineering best practices such as Coding Standards, Refactoring, Test Driven Development, Automated Unit Tests, etc. Also, he claims that several Scrum projects focus heavily on management practices and on the other hand they do not provide equal focus on engineering practices. He recommends that there has to be a balance.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Undoubtedly, Software Craftsmanship manifesto is here to stay and propel Agile movement over the next several years to come.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356516183452551110-4479076622528081003?l=se-thoughtograph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://se-thoughtograph.blogspot.com/feeds/4479076622528081003/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=356516183452551110&amp;postID=4479076622528081003&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/4479076622528081003'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/4479076622528081003'/><link rel='alternate' type='text/html' href='http://se-thoughtograph.blogspot.com/2011/06/manifesto-for-software-craftsmanship.html' title='Manifesto for Software Craftsmanship'/><author><name>Raja Bavani</name><uri>http://www.blogger.com/profile/03107697584076683320</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-12aynZTIiyk/TX2xwHprUhI/AAAAAAAAAGc/kJd9gMNUqJo/s220/IMG_91491.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-FqOoaTzSQ6A/TfDRDjv1owI/AAAAAAAAAJ8/6l9SFnrJBqM/s72-c/DSC00239.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356516183452551110.post-5619542828834296199</id><published>2011-04-21T23:23:00.000-07:00</published><updated>2011-05-17T04:19:21.498-07:00</updated><title type='text'>Agile Software Development - What Next ?</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-zaK_7Ic_vUc/TbEWkAn93-I/AAAAAAAAAJc/aV3NFhi7I1g/s1600/DSC00285.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240px" i8="true" src="http://4.bp.blogspot.com/-zaK_7Ic_vUc/TbEWkAn93-I/AAAAAAAAAJc/aV3NFhi7I1g/s320/DSC00285.JPG" width="320px" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Agile Software Development - What Next ?&amp;nbsp; This is a frequently asked question.&amp;nbsp; Agile Manifesto was announced&amp;nbsp;during Feb-2001.&amp;nbsp; Agile became&amp;nbsp;very popular in the next few years.&amp;nbsp;&amp;nbsp; &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Looking back, Agile adoption&amp;nbsp;has never been a cakewalk.&amp;nbsp; Immense challenges and struggles&amp;nbsp;in transitioning from 'waterfall' to 'Agile' mindset were&amp;nbsp;not uncommon.&amp;nbsp; Interestingly, something that happened along with Agile evolution was the growth of internet.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The growth of internet enabled computer users in collaborating on the net using collaboration tools as well as social and business networking forums.&amp;nbsp; The exchange of&amp;nbsp;opinions, ideas, and best practices&amp;nbsp;became easier on the internet.&amp;nbsp; Probably, I think,&amp;nbsp;this is one of the key factors that propelled Agile.&amp;nbsp; Eventually, Agile could spread faster than any other methodology.&amp;nbsp; &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;On the 10th anniversary of Agile Manifesto, the founders had a gathering to discuss the past, present and the &lt;a href="http://lf1.me/al/"&gt;future of Agile Software Development&lt;/a&gt;.&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Couple of weeks ago, I was interacting with &lt;a href="http://www.michaelhugos.com/"&gt;Michael Hugos&lt;/a&gt; on my thoughts on his blog '&lt;a href="http://advice.cio.com/michael_hugos/15363/ten_years_of_agile_what_the_agile_community_must_do_now"&gt;Ten Years of Agile - What the Agile&amp;nbsp;Community Must Do Now&lt;/a&gt;'.&amp;nbsp;&amp;nbsp; &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Our interactions were engaging.&amp;nbsp; The end&amp;nbsp;result of our interactions was&amp;nbsp;another blog '&lt;a href="http://advice.cio.com/michael_hugos/15956/reflections_on_four_recommendations_for_agile_developers"&gt;Reflections on Four Recommendations for Agile Developers&lt;/a&gt;' by Michael.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;When you read all these one by one, you will understand the recent happenings in Agile Software Development.&amp;nbsp;&amp;nbsp; Also you will notice&amp;nbsp;the power of collaboration over social and business networking forums.&lt;br /&gt;&lt;br /&gt;Note:&amp;nbsp;Every blog that I write carries a picture and this blog is not an exception.&amp;nbsp;I took this picture while&amp;nbsp;flying from Mumbai to Bangalore.&amp;nbsp; It is the picture of an apple offered to me by the cabin crew.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356516183452551110-5619542828834296199?l=se-thoughtograph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://se-thoughtograph.blogspot.com/feeds/5619542828834296199/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=356516183452551110&amp;postID=5619542828834296199&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/5619542828834296199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/5619542828834296199'/><link rel='alternate' type='text/html' href='http://se-thoughtograph.blogspot.com/2011/04/agile-software-development-what-next.html' title='Agile Software Development - What Next ?'/><author><name>Raja Bavani</name><uri>http://www.blogger.com/profile/03107697584076683320</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-12aynZTIiyk/TX2xwHprUhI/AAAAAAAAAGc/kJd9gMNUqJo/s220/IMG_91491.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-zaK_7Ic_vUc/TbEWkAn93-I/AAAAAAAAAJc/aV3NFhi7I1g/s72-c/DSC00285.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356516183452551110.post-2582988588478277852</id><published>2011-04-19T07:31:00.000-07:00</published><updated>2011-04-25T07:40:03.513-07:00</updated><title type='text'>Inventive Problem Solving for Customer Value Creation</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;img border="0" height="200px" i8="true" src="http://2.bp.blogspot.com/-kG1AWnlh2Gc/Ta2ZrGAaEHI/AAAAAAAAAHI/SRXiDPNzLkc/s200/SPINCON2011.gif" width="165px" /&gt;&lt;/div&gt;&lt;br /&gt;SPIN (Software and Systems Process Improvement Network) founded by the Software Engineering Institute (SEI) of Carnige Mellon University (CMU) has over 130 chapters worldwide.&amp;nbsp; In India there are 13 chapters.&amp;nbsp;&amp;nbsp; SPIN Chennai's annual conference &lt;a href="http://www.spinchennai.org/spinchennai/images/stories/spinsites/spicon2011/schedule.html"&gt;SPICON 2001&lt;/a&gt; is happening on 29th and 30th of April 2011. The theme of the conference is "Innovation in IT Processes - The Engine for Growth".&lt;br /&gt;&lt;br /&gt;I am speaking at SPICON 2011 on "Inventive Problem Solving for Customer Value Creation." &lt;br /&gt;&lt;br /&gt;Indian IT industry has matured over the past few decades.&amp;nbsp; The maturity of our industry has helped us encounter several challenges successfully.&amp;nbsp; However, new challenges continue to challenge us.&amp;nbsp; One such challenge is managing Service Level Agreements (SLAs) and retaining skilled engineers in projects when the work involved is technically complex but monotonous.&amp;nbsp; This session is about a case study on how we solved this problem by applying 'Inventive Problem Solving' and created value to stakeholders.&lt;br /&gt;&lt;br /&gt;I will keep posting some interesting facts and questions here and provide my writing or a presentation on this topic to readers.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356516183452551110-2582988588478277852?l=se-thoughtograph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://se-thoughtograph.blogspot.com/feeds/2582988588478277852/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=356516183452551110&amp;postID=2582988588478277852&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/2582988588478277852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/2582988588478277852'/><link rel='alternate' type='text/html' href='http://se-thoughtograph.blogspot.com/2011/04/inventive-problem-solving-for-customer.html' title='Inventive Problem Solving for Customer Value Creation'/><author><name>Raja Bavani</name><uri>http://www.blogger.com/profile/03107697584076683320</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-12aynZTIiyk/TX2xwHprUhI/AAAAAAAAAGc/kJd9gMNUqJo/s220/IMG_91491.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-kG1AWnlh2Gc/Ta2ZrGAaEHI/AAAAAAAAAHI/SRXiDPNzLkc/s72-c/SPINCON2011.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356516183452551110.post-7307474539318536795</id><published>2011-03-12T08:14:00.000-08:00</published><updated>2011-06-12T03:29:04.487-07:00</updated><title type='text'>Fixed Price Agile</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh5.googleusercontent.com/-BEceDHpZnWo/TXuWk0WeOOI/AAAAAAAAAGY/KGs01_auigA/s1600/Cheetah.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" q6="true" src="https://lh5.googleusercontent.com/-BEceDHpZnWo/TXuWk0WeOOI/AAAAAAAAAGY/KGs01_auigA/s320/Cheetah.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Agile Software Development is rooted in Agile Manifesto and Agile Principles.&amp;nbsp; It is all about delivering working software at regular intervals in order to provide visibility and predictability.&amp;nbsp; It is also about embaracing changes.&amp;nbsp; Agile requires discipline, focus, team work, conviction and courage.&amp;nbsp; I started &lt;a href="http://lf1.me/0j/"&gt;a series of Distributed Agile Blogs&lt;/a&gt; couple of months ago. Going forward, I will be writing &lt;a href="http://www.mindtree.com/blogs/author/raja-bavani"&gt;more&lt;/a&gt; on this.&lt;br /&gt;&lt;br /&gt;Agile methodologies such as XP, Scrum etc. work well in Time and Material (T&amp;amp;M) model.&amp;nbsp;&amp;nbsp; It has been a big challange to harness such projects in Fixed Price model.&amp;nbsp; How can stakeholder commit to Fixed Price and execute projects that involve agile principles?&amp;nbsp; Agile and Fixed Price: Can they go together?&amp;nbsp;&amp;nbsp;&amp;nbsp; These questions&amp;nbsp;are just the beginning.&amp;nbsp; If we dig deeper, we come across distributed teams that work across time zones and cultures.&amp;nbsp;&amp;nbsp; Executing agile projects with distributed teams has become&amp;nbsp;a common theme across several companies.&amp;nbsp; However, combining agile or distributed agile with fixed price&amp;nbsp;has been a&amp;nbsp;bigger challenge. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://lf1.me/bj/"&gt;My recent paper on Fixed Price Distributed Agile&lt;/a&gt;&amp;nbsp;&amp;nbsp;shares a case study on this topic.&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356516183452551110-7307474539318536795?l=se-thoughtograph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://se-thoughtograph.blogspot.com/feeds/7307474539318536795/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=356516183452551110&amp;postID=7307474539318536795&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/7307474539318536795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/7307474539318536795'/><link rel='alternate' type='text/html' href='http://se-thoughtograph.blogspot.com/2011/03/fixed-price-agile.html' title='Fixed Price Agile'/><author><name>Raja Bavani</name><uri>http://www.blogger.com/profile/03107697584076683320</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-12aynZTIiyk/TX2xwHprUhI/AAAAAAAAAGc/kJd9gMNUqJo/s220/IMG_91491.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh5.googleusercontent.com/-BEceDHpZnWo/TXuWk0WeOOI/AAAAAAAAAGY/KGs01_auigA/s72-c/Cheetah.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356516183452551110.post-7771829747882544958</id><published>2011-02-16T07:40:00.000-08:00</published><updated>2011-02-16T07:45:00.863-08:00</updated><title type='text'>The 10 Best Influences on Software Product Engineering</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-0zexTgL8fvg/TVvuur9gCRI/AAAAAAAAAGU/0tI40iNK19s/s1600/10.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="263" j6="true" src="http://3.bp.blogspot.com/-0zexTgL8fvg/TVvuur9gCRI/AAAAAAAAAGU/0tI40iNK19s/s320/10.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;When we think through the past decade Software Product Engineering is one of the areas that witnessed several challenges as well as innovations. Here are the ten best influences on SPE that transformed the landscape of businesses as well as social life.&lt;br /&gt;&lt;br /&gt;1)&amp;nbsp; Growth of E-commerce and Online Applications&lt;br /&gt;2)&amp;nbsp; Service Orientation and New Business Models&lt;br /&gt;3)&amp;nbsp; Collaboration Tools&lt;br /&gt;4)&amp;nbsp; Agile Software Development&lt;br /&gt;5)&amp;nbsp; Modern Software Engineering (or Modern Software Development)&lt;br /&gt;6)&amp;nbsp; Test Automation&lt;br /&gt;7)&amp;nbsp; Business Intelligence&lt;br /&gt;8)&amp;nbsp; Global Software Development&lt;br /&gt;9)&amp;nbsp; Open Source Movement&lt;br /&gt;10) Paradigm Shift in Delivery Platforms&lt;br /&gt;&lt;br /&gt;More information on each of these influences is available &lt;a href="http://se-thoughtograph.blogspot.com/p/articles.html"&gt;in my article published at SD Times&lt;/a&gt;.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356516183452551110-7771829747882544958?l=se-thoughtograph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://se-thoughtograph.blogspot.com/feeds/7771829747882544958/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=356516183452551110&amp;postID=7771829747882544958&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/7771829747882544958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/7771829747882544958'/><link rel='alternate' type='text/html' href='http://se-thoughtograph.blogspot.com/2011/02/10-best-influences-on-software-product.html' title='The 10 Best Influences on Software Product Engineering'/><author><name>Raja Bavani</name><uri>http://www.blogger.com/profile/03107697584076683320</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-12aynZTIiyk/TX2xwHprUhI/AAAAAAAAAGc/kJd9gMNUqJo/s220/IMG_91491.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-0zexTgL8fvg/TVvuur9gCRI/AAAAAAAAAGU/0tI40iNK19s/s72-c/10.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356516183452551110.post-1366816849122679815</id><published>2011-02-06T03:55:00.000-08:00</published><updated>2011-02-06T04:06:06.290-08:00</updated><title type='text'>CONSEG 2011 - International Conference on Software Engineering</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_HrNGC8Dw4FY/TU6JOd4UDgI/AAAAAAAAAGQ/g_KJJ0AXnlY/s1600/slide_2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" h5="true" height="118" src="http://3.bp.blogspot.com/_HrNGC8Dw4FY/TU6JOd4UDgI/AAAAAAAAAGQ/g_KJJ0AXnlY/s320/slide_2.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;CONSEG is a series of International Conferences on Software Engineering&amp;nbsp;conceived and initiated&amp;nbsp;by Computer Society of India in 1991.&amp;nbsp;&amp;nbsp;&amp;nbsp;CONSEG-2011 is going to happen in Bangalore, India during Feb 2011.&amp;nbsp; &amp;nbsp;The theme of this conference is "Software Quality - The Road Ahead".&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;When financial markets and economies struggle to regain their strengths,&amp;nbsp; the theme of this conference seems to be appropriate.&amp;nbsp; With cost-cutting measures and challenges in governing projects across multiple sites, delivering high quality software is a tall order. &lt;br /&gt;&lt;br /&gt;I attended CONSEG during 2009. In my&amp;nbsp;opinion, CONSEG is&amp;nbsp;one of the professionally managed conferences with less commercial and promotional intents.&amp;nbsp;&amp;nbsp; It offers a great value to every attendee and provides a overall perspective of the happenings in the industry, research instituties and academia.&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;More info on&amp;nbsp;CONSEG-2011 at the &lt;a href="http://www.conseg2011.org/"&gt;conference website&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356516183452551110-1366816849122679815?l=se-thoughtograph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://se-thoughtograph.blogspot.com/feeds/1366816849122679815/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=356516183452551110&amp;postID=1366816849122679815&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/1366816849122679815'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/1366816849122679815'/><link rel='alternate' type='text/html' href='http://se-thoughtograph.blogspot.com/2011/02/conseg-2011-international-conference-on.html' title='CONSEG 2011 - International Conference on Software Engineering'/><author><name>Raja Bavani</name><uri>http://www.blogger.com/profile/03107697584076683320</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-12aynZTIiyk/TX2xwHprUhI/AAAAAAAAAGc/kJd9gMNUqJo/s220/IMG_91491.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_HrNGC8Dw4FY/TU6JOd4UDgI/AAAAAAAAAGQ/g_KJJ0AXnlY/s72-c/slide_2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356516183452551110.post-4956422450516796167</id><published>2011-01-22T20:09:00.000-08:00</published><updated>2011-01-23T04:40:58.528-08:00</updated><title type='text'>Is IT Inclusive?</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_HrNGC8Dw4FY/TTwhl5lfeSI/AAAAAAAAAGI/lXpk4puBYY8/s1600/IT.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="192" s5="true" src="http://2.bp.blogspot.com/_HrNGC8Dw4FY/TTwhl5lfeSI/AAAAAAAAAGI/lXpk4puBYY8/s320/IT.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;Information Technology (IT) and Software Engineering, the well known hi-tech areas once exclusive for scientists, engineers, academia and industry have transformed over years. IT has seeped through human lives in several ways.&lt;br /&gt;&lt;br /&gt;As we enter 2011 with all the nightmares of global economic crisis, IT continues to penetrate several areas of our lives. Is IT exclusive? The answer is a definite 'No'. It is not exclusive for scientists and engineers.&amp;nbsp;&amp;nbsp; Meanwhile, let&amp;nbsp;us ask ourselves 'Is IT inclusive?'&lt;br /&gt;&lt;br /&gt;These days, IT has started becoming part of physical infrastructure such as roads, power grid, television, telephone networks, and water distribution. Sorel Reisman, IEEE Computer Society 2011 President, in his article "&lt;a href="http://www.computer.org/portal/web/csdl/abs/mags/co/2011/01/toc.htm"&gt;&lt;em&gt;Planning for an Inevitable Future&lt;/em&gt;&lt;/a&gt;" published in IEEE Computer magazine (Jan 2011) has expressed his views on this transformation and has emphasized on the need for organizations like Computer Society to start considering inclusive approaches. He says "&lt;em&gt;It is time to consider a new transformation - one that addresses societal changes&lt;/em&gt;" and adds "&lt;em&gt;By the end of 2011, we’ll have launched pilot Special Technical Communities in social networking, cloud computing, gaming, education, software engineering, and green computing.&lt;/em&gt;"&amp;nbsp;In this context, during Dec-2010,&amp;nbsp;he initiated a social networking forum at &lt;a href="http://www.computer.org/portal/web/the-presidents-discussion-corner"&gt;http://www.computer.org/portal/web/the-presidents-discussion-corner&lt;/a&gt; for both members and non-members to participate.&lt;br /&gt;&lt;br /&gt;Let me return to&amp;nbsp;our question 'Is IT Inclusive?'. The answers are 'Yes' and 'Not Yet'. 'Yes' applies to some of the developed countries and 'Not Yet' for the rest of the world. &lt;br /&gt;&lt;br /&gt;I can see certain visible transformations in India. During mid 80s, when I was doing my post-graduation, we used to wait for our 1-hour timeslot (couple of times a week) to use a personal computer at the computer lab of&amp;nbsp;our University. It used to haunt us when a desktop crashes or has a technical problem. We had to wait for couple of days to a week or sometimes even couple of weeks for the technical support engineers to fix the problem. These days, the trend has improved. Timesharing happens among family members in sharing one or two computers. Computers are used more for other purposes than for educational activities by students.&amp;nbsp;&amp;nbsp;Let me add more. Emails have become prevalent.&amp;nbsp; Computers are used for paying utility bills by bill processing executives or end users or both.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Online Education and Online Tests have become the trend setters.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;Several widely accepted IT applications such as&amp;nbsp;Online Banking&amp;nbsp;can be added to this list.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;This substantiates that we are into this transformation.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;But we have not made it inclusive yet. &lt;br /&gt;&lt;br /&gt;Finally, making this transformation inclusive in our context is a big challenge. At any cost, we are part of the inevitable future!&amp;nbsp; What about other countries?&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356516183452551110-4956422450516796167?l=se-thoughtograph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://se-thoughtograph.blogspot.com/feeds/4956422450516796167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=356516183452551110&amp;postID=4956422450516796167&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/4956422450516796167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/4956422450516796167'/><link rel='alternate' type='text/html' href='http://se-thoughtograph.blogspot.com/2011/01/is-it-inclusive.html' title='Is IT Inclusive?'/><author><name>Raja Bavani</name><uri>http://www.blogger.com/profile/03107697584076683320</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-12aynZTIiyk/TX2xwHprUhI/AAAAAAAAAGc/kJd9gMNUqJo/s220/IMG_91491.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_HrNGC8Dw4FY/TTwhl5lfeSI/AAAAAAAAAGI/lXpk4puBYY8/s72-c/IT.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356516183452551110.post-5401743503938468947</id><published>2010-10-17T07:43:00.000-07:00</published><updated>2010-11-16T07:49:47.324-08:00</updated><title type='text'>Distributed Agile in Outsourced Product Development - 10 Critical Success Factors</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://lf1.me/3g/DstAgileTour2010"&gt;&lt;img border="0" ex="true" src="http://2.bp.blogspot.com/_HrNGC8Dw4FY/TLsJOSq1nYI/AAAAAAAAAFA/3o9pf7nkDJw/s1600/at2010speaker.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;On 23rd October, I am speaking at 'agile tour 2010, Pune'.&amp;nbsp;&amp;nbsp; &lt;a href="http://www.isec.co/"&gt;&lt;strong&gt;&lt;em&gt;India Scrum Enthusiasts Community&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt; is organizing &lt;a href="http://www.isec.co/event_detail_info.php?event_id=2"&gt;&lt;strong&gt;&lt;em&gt;this event&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; This is a forum for software engineers at all levels - from programmers to professionals at very senior levels.&amp;nbsp;&amp;nbsp;&amp;nbsp; My presentation is going to be&amp;nbsp;on our experience&amp;nbsp;related to&amp;nbsp;implementing Distributed Agile practices in &lt;a href="http://www.mindtree.com/blogs/category/software-product-engineering"&gt;&lt;strong&gt;&lt;em&gt;Outsourced Product Development&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;&amp;nbsp;at MindTree.&lt;br /&gt;&lt;br /&gt;On 20th November, at Agile Tour 2010, Bangalore, I am going to speak on &lt;a href="http://lf1.me/3g/DstAgileTour2010"&gt;&lt;strong&gt;&lt;em&gt;Distributed Agile&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;&amp;nbsp;and this session is based on my &lt;a href="http://www.mindtree.com/critical-success-factors-distributed-agile-presented-conseg-2009"&gt;&lt;strong&gt;&lt;em&gt;white paper published last year&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt; at International Conference on Software Engineering, CONSEG-09.&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356516183452551110-5401743503938468947?l=se-thoughtograph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://se-thoughtograph.blogspot.com/feeds/5401743503938468947/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=356516183452551110&amp;postID=5401743503938468947&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/5401743503938468947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/5401743503938468947'/><link rel='alternate' type='text/html' href='http://se-thoughtograph.blogspot.com/2010/10/distributed-agile-in-outsourced-product.html' title='Distributed Agile in Outsourced Product Development - 10 Critical Success Factors'/><author><name>Raja Bavani</name><uri>http://www.blogger.com/profile/03107697584076683320</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-12aynZTIiyk/TX2xwHprUhI/AAAAAAAAAGc/kJd9gMNUqJo/s220/IMG_91491.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_HrNGC8Dw4FY/TLsJOSq1nYI/AAAAAAAAAFA/3o9pf7nkDJw/s72-c/at2010speaker.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356516183452551110.post-7849893413013375932</id><published>2010-09-26T08:09:00.000-07:00</published><updated>2010-09-26T08:23:19.851-07:00</updated><title type='text'>Outsourced Product Engineering:  Tip of the Iceberg</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_HrNGC8Dw4FY/TJ9hX3YkQMI/AAAAAAAAAE4/GOYAkREtHrs/s1600/iceberg.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" px="true" src="http://4.bp.blogspot.com/_HrNGC8Dw4FY/TJ9hX3YkQMI/AAAAAAAAAE4/GOYAkREtHrs/s320/iceberg.jpg" width="233" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Outsourced Product Development (OPD) has become an integral part of Software Product Engineering for more than a decade. OPD business has high potential as well as challenges. The idiom ‘tip of the iceberg’ applies to OPD in two contexts – at a macro or industry level, in business context, and at the micro or product level, in engineering context.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;At industry level we have seen little more than the tip of the iceberg and we do have a lot more to see.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;Every engagement in OPD offers services for multiple products. At every product level we have seen just the tip of the iceberg. Understanding the rest of it is very mandatory!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;More on this at:&amp;nbsp; &lt;/span&gt;&lt;a href="http://www.mindtree.com/blogs/category/software-product-engineering"&gt;&lt;span style="font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;http://www.mindtree.com/blogs/category/software-product-engineering&lt;/span&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356516183452551110-7849893413013375932?l=se-thoughtograph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://se-thoughtograph.blogspot.com/feeds/7849893413013375932/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=356516183452551110&amp;postID=7849893413013375932&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/7849893413013375932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/7849893413013375932'/><link rel='alternate' type='text/html' href='http://se-thoughtograph.blogspot.com/2010/09/outsourced-product-engineering-tip-of.html' title='Outsourced Product Engineering:  Tip of the Iceberg'/><author><name>Raja Bavani</name><uri>http://www.blogger.com/profile/03107697584076683320</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-12aynZTIiyk/TX2xwHprUhI/AAAAAAAAAGc/kJd9gMNUqJo/s220/IMG_91491.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_HrNGC8Dw4FY/TJ9hX3YkQMI/AAAAAAAAAE4/GOYAkREtHrs/s72-c/iceberg.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356516183452551110.post-3209338264158493397</id><published>2010-05-16T07:11:00.000-07:00</published><updated>2010-05-20T09:56:10.700-07:00</updated><title type='text'>SaaS - Disruptive but Positive !</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_HrNGC8Dw4FY/S_VpnTRfFcI/AAAAAAAAADY/uXZeIuhSpEw/s1600/DSC00112.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" gu="true" src="http://4.bp.blogspot.com/_HrNGC8Dw4FY/S_VpnTRfFcI/AAAAAAAAADY/uXZeIuhSpEw/s320/DSC00112.JPG" /&gt;&lt;/a&gt;&lt;/div&gt;My interview&amp;nbsp;on this&amp;nbsp;topic appeared on CIOL last week.&amp;nbsp; The full version &amp;nbsp;is available at &lt;a href="http://www.ciol.com/Enterprise/Enterprise/Interviews/SaaS-Disruptive-but-Positive/135989/0/"&gt;http://www.ciol.com/Enterprise/Enterprise/Interviews/SaaS-Disruptive-but-Positive/135989/0/&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Disruptive means "Break through traditional teachings to truth and the word of life".&amp;nbsp;&amp;nbsp;Disrupt(verb) means 'to interrupt the normal course' or 'to through into disorder'. (courtesy:&amp;nbsp; &lt;a href="http://www.webster.com/"&gt;http://www.webster.com/&lt;/a&gt; )&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Service Oriented Architecture (SOA) and Software as a Service (SAAS)&amp;nbsp;are disruptive.&amp;nbsp;&amp;nbsp;&amp;nbsp;In general,&amp;nbsp;end users use only 20% of the features of any software product 80% of the time.&amp;nbsp; And in how many instances have we used 100% of the features?&amp;nbsp; The answer is&amp;nbsp;an obvious one.&amp;nbsp;&amp;nbsp;But the&amp;nbsp;fact is that we pay for the entire product.&amp;nbsp; Annual support and maintenance overheads prevail throughout the lifecycle!&amp;nbsp; This&amp;nbsp;trend required some disruption !&amp;nbsp;&amp;nbsp; SOA and SaaS came in to disrupt.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;SOA and SaaS have emerged strongly to promote&amp;nbsp;'Pay-Per-Use'&amp;nbsp;model.&amp;nbsp; &amp;nbsp;Almost all product companies do have strong focus on releasing new versions of their products that support such paradigms. In order to leverage the benefits of these technologies the volume of hosted software licenses and related business models in the IT landscape will increase. This will benefit several small and medium business.&amp;nbsp;&amp;nbsp; They will be able to&amp;nbsp;avail niche products&amp;nbsp;by means of transaction based license fee or similar models. This is a disruptive but positive trend.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;This&amp;nbsp;trend in disruption&amp;nbsp;extended to infrastructure provisioning as well.&amp;nbsp; Now, businesses can purchase 'on-demand' infrastructure for a limited period of use and thus can save loads of costs involved in hardware and software procurement.&amp;nbsp; 'On-demand provisioning' is an application of Cloud Computing.&amp;nbsp;&amp;nbsp; An anology for this is the hotel industry that provides for booking a desired room configuration for a limited period and attracts customers with several offerings with discounts.&amp;nbsp;&amp;nbsp;&amp;nbsp; As one may think, 'Cloud' is not just a retirement home for 'end-of-life' 'non-ctirical' applications and data! &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;We could not have thought about&amp;nbsp;SaaS two decades ago!&amp;nbsp; It has emerged over the past 5 years or so.&amp;nbsp; &amp;nbsp;Is n't SaaS an impressive disruption?&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356516183452551110-3209338264158493397?l=se-thoughtograph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://se-thoughtograph.blogspot.com/feeds/3209338264158493397/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=356516183452551110&amp;postID=3209338264158493397&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/3209338264158493397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/3209338264158493397'/><link rel='alternate' type='text/html' href='http://se-thoughtograph.blogspot.com/2010/05/saas-disruptive-but-positive.html' title='SaaS - Disruptive but Positive !'/><author><name>Raja Bavani</name><uri>http://www.blogger.com/profile/03107697584076683320</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-12aynZTIiyk/TX2xwHprUhI/AAAAAAAAAGc/kJd9gMNUqJo/s220/IMG_91491.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_HrNGC8Dw4FY/S_VpnTRfFcI/AAAAAAAAADY/uXZeIuhSpEw/s72-c/DSC00112.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356516183452551110.post-6513071081553150595</id><published>2010-05-15T09:24:00.000-07:00</published><updated>2010-05-22T03:53:31.587-07:00</updated><title type='text'>Software Architects – An Evolving Breed of Software Professionals!</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_HrNGC8Dw4FY/S_e3eRiPPiI/AAAAAAAAADg/3oUHYJnSLjc/s1600/DSC00332.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" gu="true" src="http://2.bp.blogspot.com/_HrNGC8Dw4FY/S_e3eRiPPiI/AAAAAAAAADg/3oUHYJnSLjc/s320/DSC00332.JPG" /&gt;&lt;/a&gt;&lt;/div&gt;Software Architecture is considered to be one of the overused terminologies in our industry. Typically, any contemporary software project team, depending on its size, consists of a team of one or more architects that is responsible for providing a sound architecture for the proposed software system. Contemporary projects that involve cross-functional solutions based on multiple technologies, platforms and user groups require a dedicated team of architects in addition to a typical design team as compared to traditional projects. The characteristics of software architects and their role have evolved over a period of time.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Traditional waterfall approach comprises of Requirement Analysis, Design, Construction (Coding, Unit Testing), Documentation, and System Testing and this provides for an intensive design activity during the design phase. The term ‘Software Architecture’, though originated long ago, is being focused upon in the industry during the last couple of decades and this coincides with the evolution of new technologies (such as Web Technologies) and evolutionary methodologies (such as Rational Unified Process and Agile Software Development) in IT industry.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Architecture is a software engineering activity in software projects and a civil engineering activity in civil engineering projects. The myth about the term ‘Architect’ in both Software Engineering and Civil Engineering is that an architect is an individual who brings just a good amount of technical experience in the respective engineering discipline. Though this is the fundamental requirement, an architect needs more than the technical skills specific to the project he has been hired for. The definition of ‘Software Architecture’ would help us identify the desired characteristics of ‘Software Architects’ – the not-so-new but evolving breed of software professionals.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Software Architecture has been defined by various organizations and professionals and a definition that consolidates many such definitions is&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;“Software Architecture is based on strong architectural principles and guidelines. It provides the blue print of the proposed software system and such a blue print consists of all necessary views of the software system, its components, their interaction and addresses the requirements (both functional and non-functional). Besides, it exploits the available technology with a clear strategy in order to reduce the impact on existing systems in an enterprise, stands cost-effective and delights the stake holders.”&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Thus, it is not enough if software architecture addresses the functional and non-functional requirements. The architecture itself has to be based on strong principles, guidelines and it must address the long-term requirements related to the structure of the software itself. The long-term requirements related to the structure of the software are derivable from the best case requirements, long-term focus of the IT organization, reuse considerations, technology preference, proposed budget, wish-lists and other up-coming technologies that could benefit the organization.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;This makes it clear that all user requirements mapped into an excellent set of use cases is just one of the inputs to the architect to produce a sound architecture. An architect need not wait until all detailed requirements are documented and use cases are identified. The architect can start his activity with initial requirements, high-level use cases, based on a set of organizational standard (or project specific) architecture goals, principles (typically a set of Dos and Don’ts) and guidelines, keeping in mind the clear picture of the customer’s IT infrastructure, mission and vision. Unless the architecture is aligned to customer’s IT infrastructure, mission and vision, it would prove itself to be fruitless and evolve as a major risk for the project as well as the IT organization as a whole.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;A software project, depending on its size, may require a team of one or more architects to accomplish this vital task of identifying, consolidating, documenting, reviewing, finalizing and maintaining the architecture of the software system through out the project’s lifecycle. Such a requirement essentially focuses on a professional who is not only broadly technical but also very good at soft skills especially in the areas of business communication, conflict resolution, self-expression, emotional intelligence, and team skills. Often, a highly respected technical professional in an organization fails to be a good architect because of his lack of soft skills in getting things done on time with a team of professionals. When a team of technical architects meets the project team to propose an architecture there could be conflicting issues and interests among the architecture team as well as the project management team as a whole. It is the architect who needs to posses strong skills in putting his architecture across by means of presentations or discussions. He has to be open-minded to encourage, understand and appreciate the suggestions or conflicting opinions. Meanwhile, he must be time-bound and decisive to make his team as well as his stakeholders understand the rational behind the proposed or renewed architecture. And he must carry the right level of self-esteem and feel proud of the final decision and exhibit ownership throughout the product life cycle.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;In summary, software architects need to be experienced in various areas including core technologies, peripheral technologies, application development &amp;amp; implementation and variety of soft skills. Software architects need to hone their skills and build knowledge to research and understand emerging technologies, technology trends, client’s IT infrastructure, mission and vision. Finally, they need to have necessary expertise in identifying and using necessary software processes, tools and techniques to architect the software system, document the architecture with required granularity (with APIs and code samples), communicate it to the project team and be a mentor for the team to implement the system. With these qualities, this new breed of software professionals can definitely be identified and admired as visionaries for the software project and team they are working with!&lt;/div&gt;&lt;br /&gt;Bibliography:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;A framework for information systems architecture – J.A.Zachman, IBM Systems Journal, Vol26, NO 3, 1987&lt;/li&gt;&lt;li&gt;&amp;nbsp;Extending and formalizing the framework for information systems architecture – J.F.Sowa, J.A.Zachman&lt;/li&gt;&lt;li&gt;&amp;nbsp;Architectural Blueprints – The “4+1” View Model of Software Architecture – Phillippe Kruchten, Rational Software Corp., 1995&lt;/li&gt;&lt;li&gt;&amp;nbsp;The Role of the Architect – Dana Bredemeyer and Ruth Malan, Bredemeyer Consulting&lt;/li&gt;&lt;li&gt;&amp;nbsp;Design Patterns – Elements of Reusable Object-Oriented Software – Eric Gamma, Richard Helm, Ralph Johnson, John Vlissides&lt;/li&gt;&lt;li&gt;&amp;nbsp;Software Architecture: a Roadmap – David Garlan, School of Computer Science, Carnegie Mellon University&lt;/li&gt;&lt;li&gt;&amp;nbsp;Functional Requirements and Use Cases – Ruth Malan and Dana Bredemeyer, Bredemeyer Consulting&lt;/li&gt;&lt;li&gt;&amp;nbsp;How Do You Define Software Architecture? (http://www.sei.cmu.edu/architecture/definitions.html)&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356516183452551110-6513071081553150595?l=se-thoughtograph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://se-thoughtograph.blogspot.com/feeds/6513071081553150595/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=356516183452551110&amp;postID=6513071081553150595&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/6513071081553150595'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/6513071081553150595'/><link rel='alternate' type='text/html' href='http://se-thoughtograph.blogspot.com/2010/05/software-architects-evolving-breed-of.html' title='Software Architects – An Evolving Breed of Software Professionals!'/><author><name>Raja Bavani</name><uri>http://www.blogger.com/profile/03107697584076683320</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-12aynZTIiyk/TX2xwHprUhI/AAAAAAAAAGc/kJd9gMNUqJo/s220/IMG_91491.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_HrNGC8Dw4FY/S_e3eRiPPiI/AAAAAAAAADg/3oUHYJnSLjc/s72-c/DSC00332.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356516183452551110.post-1140041844951855044</id><published>2010-03-06T02:48:00.000-08:00</published><updated>2011-01-22T08:06:05.707-08:00</updated><title type='text'>Attaining Code Quality Excellence !</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_HrNGC8Dw4FY/S_e4McK-TrI/AAAAAAAAADo/k34pd3DFWGw/s1600/DSC00787.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" gu="true" src="http://1.bp.blogspot.com/_HrNGC8Dw4FY/S_e4McK-TrI/AAAAAAAAADo/k34pd3DFWGw/s320/DSC00787.JPG" /&gt;&lt;/a&gt;&lt;/div&gt;Software quality has two primary dimensions: Internal Quality and External Quality. External Quality is an attribute that relates the end-user experience. External Quality can be assessed and improved through defect prevention as well as black box testing.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Internal Quality is visible to various groups in the development team such as designers, developers, maintainers and technical reviewers. Internal Quality is invisible to the end-users. Internal Quality can be improved by means of defect prevention as well as defect detection followed by analysis and correction or defect fixing. Software inspection and reviews are the means to assess, control and assure Internal Quality. Although software inspection and reviews have operational differences, both are aligned towards the objective of examining work products to unearth defects.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Great focus on black box testing by means of well-documented test cases, multiple rounds of rigorous testing, defect fixing and defect verification is mandatory for successful deliveries. However, lack of focus on Internal Quality could pose serious consequences in the form of unexpected naive defects, technical issues and maintenance nightmares. Poor Internal Quality encompasses the root causes for issues related to External Quality. Thus, in order to improve Software Quality, Internal Quality must be improved. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I could identify seven critical milestones that are necessary to attain Code Quality Excellence through experiential learning and&amp;nbsp;a list of five best practices that were useful&amp;nbsp;in ensuring good coding practices and assurance of Internal Quality.&amp;nbsp;&amp;nbsp;&amp;nbsp; My second&amp;nbsp;paper&amp;nbsp;on&amp;nbsp;Code Quality ("Critical Milestones and Best Practices for Cod Quality Excellence")&amp;nbsp;provides a comprehensive coverage of these milestones and best practices.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;As I wrote in my previous blog, Code Quality continues to be an unfading focus area in Software Engineering!&amp;nbsp;&amp;nbsp; Any thoughts?&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356516183452551110-1140041844951855044?l=se-thoughtograph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://se-thoughtograph.blogspot.com/feeds/1140041844951855044/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=356516183452551110&amp;postID=1140041844951855044&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/1140041844951855044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/1140041844951855044'/><link rel='alternate' type='text/html' href='http://se-thoughtograph.blogspot.com/2010/03/attaining-code-quality-excellence.html' title='Attaining Code Quality Excellence !'/><author><name>Raja Bavani</name><uri>http://www.blogger.com/profile/03107697584076683320</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-12aynZTIiyk/TX2xwHprUhI/AAAAAAAAAGc/kJd9gMNUqJo/s220/IMG_91491.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_HrNGC8Dw4FY/S_e4McK-TrI/AAAAAAAAADo/k34pd3DFWGw/s72-c/DSC00787.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356516183452551110.post-8325904749942172185</id><published>2010-03-06T02:29:00.000-08:00</published><updated>2011-01-22T07:59:47.197-08:00</updated><title type='text'>On Code Quality</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_HrNGC8Dw4FY/S_e5So76MNI/AAAAAAAAADw/jgymejm9WQk/s1600/fruit.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" gu="true" src="http://2.bp.blogspot.com/_HrNGC8Dw4FY/S_e5So76MNI/AAAAAAAAADw/jgymejm9WQk/s320/fruit.JPG" /&gt;&lt;/a&gt;&lt;/div&gt;Code Quality has been an unfading focus area in Software Engineering.&amp;nbsp; Software inspection and reviews have been in practice in the industry for over three decades.&amp;nbsp; Reviews uncover errors while they are relatively inexpensive to find and correct.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;In any project, code reviews need to provide a complete coverage of the entire code base for better results. Code reviews need to focus on adherence to various factors such as&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;a) Content Quality:&amp;nbsp;&amp;nbsp; Adherence to requirements, architecture, design, coding standards, programming principles and coding style&lt;br /&gt;b) Format Quality:&amp;nbsp;&amp;nbsp; Readability in terms of adequate internal comments, indentation, structure&lt;br /&gt;c) Business Quality:&amp;nbsp;&amp;nbsp; Alignment with business goals in terms of extensibility, maintainability, and so on. &lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Implementing rigorous reviews has always been a challenge in the industry due to time-to-market and budget constraints.&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Roger S Pressman uses the term ‘Formal Technical Reviews’ (FTR) to denote work product inspections, reviews and walk-throughs. The motivation of all kinds of FTRs are the same – ‘ To have a work product examined by an external group of professionals so that they can unearth as many defects as possible at early stages of software life cycle.’&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;One of the great breakthroughs in software engineering was Gerald Weinberg’s concept of egoless programming – the idea that no matter how smart a programmer is reviews will be beneficial. Reviews and Inspections are considered to be one of the 10 best influences on Software Engineering. Defect prevention at early stages is invaluable as it enhances software quality. Code review automation saves human intervention in detecting issues related to the static nature of the code. Defect prevention and code review automation make manual reviews more effective. Refactoring is a valuable practice to improve code quality to improve the design.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Systematic Focus on Code Quality(SFCQ) is a technique to improve Code Quality and Design. It is technology independent. Besides, it is suitable for projects that follow either waterfall or iterative life cycles.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;It ensures&lt;/div&gt;• Improvement in code quality &amp;amp; hence customer satisfaction&lt;br /&gt;• Constructive feedbacks and improvements in software design&lt;br /&gt;• Enhanced maintainability&lt;br /&gt;• Professional development in design and coding skills&lt;br /&gt;• Improvement in team morale &amp;amp; esteem&lt;br /&gt;&lt;br /&gt;The guiding principles of this technique are&lt;br /&gt;• Increasing developers’ accountability in producing good quality code&lt;br /&gt;• Improving productivity by deploying tools for code reviews&lt;br /&gt;• Leveraging expertise in manual reviews to improve code quality&lt;br /&gt;• Refactoring instead of reworking to make the development process more challenging&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;I presented my first paper on this subject during 2004.&amp;nbsp; (&lt;em&gt;Raja Bavani, Systematic Focus on Code Quality: A Technique to improve Design and Implementation, 5th Annual International Software Testing Conference in India 2005&lt;/em&gt;).&amp;nbsp; Several practitioners have tried this approach and found&amp;nbsp;positive results.&amp;nbsp;&amp;nbsp;Just thought of sharing this on this blog!&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356516183452551110-8325904749942172185?l=se-thoughtograph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://se-thoughtograph.blogspot.com/feeds/8325904749942172185/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=356516183452551110&amp;postID=8325904749942172185&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/8325904749942172185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/8325904749942172185'/><link rel='alternate' type='text/html' href='http://se-thoughtograph.blogspot.com/2010/03/on-code-quality.html' title='On Code Quality'/><author><name>Raja Bavani</name><uri>http://www.blogger.com/profile/03107697584076683320</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-12aynZTIiyk/TX2xwHprUhI/AAAAAAAAAGc/kJd9gMNUqJo/s220/IMG_91491.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_HrNGC8Dw4FY/S_e5So76MNI/AAAAAAAAADw/jgymejm9WQk/s72-c/fruit.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356516183452551110.post-1777915917778139764</id><published>2010-01-05T22:21:00.001-08:00</published><updated>2010-05-22T04:18:46.117-07:00</updated><title type='text'>Reusability and Usability</title><content type='html'>&lt;div align="justify"&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_HrNGC8Dw4FY/S_e7Vm7HYjI/AAAAAAAAAD4/U0zsEUEwv-Q/s1600/DSC00328.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" gu="true" height="240" src="http://3.bp.blogspot.com/_HrNGC8Dw4FY/S_e7Vm7HYjI/AAAAAAAAAD4/U0zsEUEwv-Q/s320/DSC00328.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;Reusability is no longer an uncommon buzzword in Software Engineering.&lt;br /&gt;&lt;br /&gt;Several months ago one of my team members had identified a reusable component from his code and wanted to release it to his colleagues. When he approached me with his idea, I asked him ’Have you used this component in different contexts and found it reusable?'. He responded with a firm 'Yes'. I ticked the first checklist item to qualify his component as 'reusable'. There started his uphill task of publishing it and getting acceptance from our local community of Software Engineers. He stretched himself to make it happen. That was indeed an uphill task!&lt;br /&gt;&lt;br /&gt;Last week I was in a meeting with my engineers where all of us delved into a discussion on reusable components. Our conversation emerged with a flavor of belief that the reuse of concepts, designs and templates are easy to implement and it is very hard to develop and release reusable components that other developers can use to avoid reinventing the wheel. Our conversation openly claimed that developers do not like to use a component developed by others and would rather develop their own.&lt;br /&gt;&lt;br /&gt;Eventually, after several minutes of debate we settled together with the fact that developers do utilize reusable components. Reusability does exist in many forms including component reuse. Typical examples of reusable components are Apache's FOP or Log4j in J2EE world – to name a few.&lt;br /&gt;&lt;br /&gt;This makes it evident that if we want our components to be reused, we have to look into the usability aspects while designing, coding, testing, maintaining and releasing reusable components. Usability plays a critical role in creating usable systems. To create usable systems, we need to consider human abilities and limitations, learn about the needs of end users and involve them while designing such components.&lt;br /&gt;&lt;br /&gt;How do we do this when we create reusable components? The answer, though not very simple, is two-fold. First the creator needs to understand the end-users, their needs and think like the end-users throughout the design process. Next, the creator needs to test the reusability of any component among peer groups or projects and enhance it so that it becomes reusable among a wide spectrum of users. For frequent reuse the creator may have to provide the following artifacts in addition to the source code.&lt;br /&gt;&lt;br /&gt;1. Feature list&lt;br /&gt;2. Tips/Instructions on usage&lt;br /&gt;3. Sample code on how to plug-n-play&lt;br /&gt;4. Contact info (Email/Phone) for help&lt;br /&gt;&lt;br /&gt;Interestingly, usability evolves with the evolution of user experience on what is available and user expectation. The more our users understand and relate well to the systems they use, the better and faster they are in liking or disliking the systems we provide. Progressively, end users become more and more aware and demanding too. Unfortunately, the more and more we, the software professionals get detached from users and usability, we become responsible for designing and delivering systems that fail to meet usability expectations.&lt;br /&gt;&lt;br /&gt;Clearly, it is not enough if we understand just the business requirements and technology to deliver software. The more we understand our users as well as the importance of usability, the greater our results will be in delivering usable systems. To conclude, if ‘Know Thyself’ is the mantra for happy living, ‘Know Your Users’ is the mantra for delivering successful systems.&lt;br /&gt;&lt;br /&gt;Software Engineers do spot reusable components in the code they produce. Couple of days ago a young engineer in my team identified a reusable component from his code and wanted to release it to his colleagues. He approached me with his idea.&lt;br /&gt;&lt;br /&gt;I asked ’Have you used this component in different contexts and found it reusable?'&lt;br /&gt;&lt;br /&gt;He responded with a firm 'Yes' and agreed to take up the uphill task! He needs to make it usable. Am sure he will succeed.&lt;br /&gt;&lt;br /&gt;Naturally, usable reusable components become reusable, live long and evolve!&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="center"&gt;___________ &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356516183452551110-1777915917778139764?l=se-thoughtograph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://se-thoughtograph.blogspot.com/feeds/1777915917778139764/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=356516183452551110&amp;postID=1777915917778139764&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/1777915917778139764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/1777915917778139764'/><link rel='alternate' type='text/html' href='http://se-thoughtograph.blogspot.com/2010/01/reusability-and-usability.html' title='Reusability and Usability'/><author><name>Raja Bavani</name><uri>http://www.blogger.com/profile/03107697584076683320</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-12aynZTIiyk/TX2xwHprUhI/AAAAAAAAAGc/kJd9gMNUqJo/s220/IMG_91491.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_HrNGC8Dw4FY/S_e7Vm7HYjI/AAAAAAAAAD4/U0zsEUEwv-Q/s72-c/DSC00328.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356516183452551110.post-1781562097930084402</id><published>2010-01-04T00:39:00.001-08:00</published><updated>2011-05-11T09:00:02.770-07:00</updated><title type='text'>Requirements Engineering = Elicitation + Analysis and Negotiation + Specification or Documentation + Validation !</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_HrNGC8Dw4FY/S_e9RebKdVI/AAAAAAAAAEA/p-Qmgfr59zs/s1600/DSC00128.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" gu="true" src="http://1.bp.blogspot.com/_HrNGC8Dw4FY/S_e9RebKdVI/AAAAAAAAAEA/p-Qmgfr59zs/s320/DSC00128.JPG" /&gt;&lt;/a&gt;&lt;/div&gt;Yes! Requirements Engineering is composed of four key activities – Requirements Elicitation, Requirements Analysis and Negotiation, Requirements Specification or Documentation and Requirements Validation.&lt;br /&gt;&lt;br /&gt;Requirement Elicitation is to discover system requirements through consultation with stakeholders. Some of the sources of this discovery could be system documents, domain knowledge and market studies. Requirement Analysis and Negotiation is to analyze requirements in details and negotiate them with stakeholders on which requirements are to be considered. Requirement Specification or Documentation is to document agreed requirements at a certain level of detail. Requirement Validation is to review or validate requirements for clarity, consistency and completeness.&lt;br /&gt;&lt;br /&gt;This is an attempt to address a set of key areas where things can go wrong during Requirements Engineering.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Who Plays the Role?&lt;/u&gt;&lt;/strong&gt; Sometimes, project teams go by the assumption that every skilled programmer is also proficient at interviewing customers and writing requirements specifications. This is a risky assumption. This may not yield good results in all cases.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Training alone would not suffice:&lt;/u&gt;&lt;/strong&gt; Requirement Analysts are grown – not just trained! A good training in various areas related to requirement analysis is mandatory but not sufficient. This includes training sessions on business, software engineering as well as soft skills. A requirement analyst needs to be aware of the business domain, technology aspects as well as user expectation management. Soft skills such as effective listening, negotiating and facilitating, help analysts uncover users’ unspoken desires. Thus, training alone would not suffice. Adequate mentoring and coaching is required to groom Requirement Analysts. Requirement Analysts grow to higher levels based on their work experience in performing their role effectively – a good training is just a starting point.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Focus on Soft Skills:&lt;/u&gt;&lt;/strong&gt; Most of the times, due to factors such as information over flow, analysts focus more on business requirements itself and lose focus on their soft skills. Soft skills such as listening, interviewing and questioning, analytical reasoning, facilitation, observation, writing, organizing, modeling, interpersonal intelligence, collaboration and creativity are to be consistently honed to conduct requirement analysis effectively.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Planning:&lt;/u&gt;&lt;/strong&gt; Requirement Analysis needs thorough planning. Typical deliverables need to include traceable requirements, open issues, open queries - in addition to other artifacts. Formal reviews need to be planned to ensure quality before design. Often analysts rely on a series of meetings to perform Requirement Analysis. This is not sufficient. Various techniques such as user interviews, demonstrations, walk-through of live data and processes, etc., are to be considered while planning.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Inadequate Elicitation:&lt;/u&gt;&lt;/strong&gt; Inadequate or elicitation will result in poor specification. Requirement elicitation consists of fact-finding, information gathering and integration. Identification of various sources of requirements (such as end users, interfacing systems), gathering requirements and integrating them is key to the success of Requirement Analysis. Inadequate Elicitation could be the result of factors such as ineffective meetings, not asking relevant or revealing questions, not scooping, not modeling, not prioritizing etc. Some of such key factors have been explained below.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Ineffective Meetings:&lt;/u&gt; Effective meetings ensure progress. Requirement Analyst needs to plan effective meetings with a manageable list in the agenda and ensure that all action items are followed-up and closed.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Not Asking!&lt;/u&gt; Many experts provide the tip – ‘Communicate, Communicate &amp;amp; Communicate’ to ensure project success. Requirement Analysis (as well as any other phase in a project) can go wrong when the team members (more specifically the Requirement Analyst) do not ask questions. Thus the tip for successful analysis is ‘Ask, Ask, Ask’ – specifically, ask revealing and relevant questions. Asking good questions to explore and understand detailed requirements provide the base for thorough testing. Both the type and timing of questions are very important. Questions related to requirement originating during Integration Testing are not uncommon in projects. It is good to identify, ask and resolve queries during early stages of the project. The book ‘Exploring Requirements: Quality Before Design’, Dorset House, 1989 by Donald Gause and Gerald Weinberg is worth reading to understand this aspect.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;What, How and When?&lt;/u&gt; Sounds simple to follow – but this is forgotten at times. Analysts capture ‘What is required’ – but they forget ‘How’ and ‘When’! Here is an example. The business users want an email notification facility that sends an email notification whenever a user is registered into the system. The analyst captures the ‘What’ factor which goes in to the FS document ‘A email has to be sent whenever a user is registered into the system’. During acceptance testing, the user elaborates on the ‘How’ factor and says - ‘…the system should detect the delivery status of such emails and resend the mail until it is delivered successfully. The email message should contain few dynamic links as well as a logo. The users should have an option of not receiving such emails’ and stresses that he wanted the email functionality to work this way in the initial delivery itself. This is reported as a critical issue and the project team works late nights to provide this functionality. In this example, initially the analyst should have given adequate stress on the ‘How’ and ‘When’ factors that help him focus on elaborating the requirement. This happens when the analysts focus on ‘elicitation’.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Not Modeling!&lt;/u&gt; Modeling is done across industries and disciplines. Requirements need to be modeled using appropriate techniques and tools. A textual description may not be adequate in all instances. Use Modeling. Use examples, illustrations and substantiate them with good data.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;What is the Scope?&lt;/u&gt; Things can definitely go wrong when the analyst gathers exhaustive requirements but fails to qualify if all of them fall under the scope of the project. This could lead to misunderstanding, overruns and poor quality. Requirement Management: Requirement Analysis as a project phase need to end with a set of baselined requirements. Still, Requirement Management activity progresses until acceptance of the end product. Loosing focus on Requirement Management may lead to conflicts and poor quality.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Communication Gap:&lt;/u&gt; Requirement Analyst acts as a bridge between the end-users and the project team. The objective is to transform user requirements in to system requirement specifications and ensure good quality of traceable requirements so that end-users get what they wanted. Any communication gap in this area could result in customer dissatisfaction.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Not Prioritizing!&lt;/u&gt; Not prioritizing requirements is a potential risk, as the project team has no means to handle design, implementation and testing issues. Prioritization cannot be overruled in any project.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Missing out Non-Functional Requirements:&lt;/u&gt;&lt;/strong&gt; A project cannot succeed with high-quality functional requirements alone. Non-functional requirements play crucial role in planning design, coding and testing activities. Non-functional requirements fall in to categories such as Reliability, Scalability, Installability, Useability, Availability, Performance, etc.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Missing Assumptions, Dependencies and Constraints:&lt;/u&gt;&lt;/strong&gt; Identification, elicitation and documentation of assumptions, dependencies and constraints is a vital part of Requirement Analysis. It is a good practice to understand the list of assumptions, dependencies and constraints specified in project proposal or statement of work &amp;amp; plan meetings to discuss all assumptions, dependencies and constraints pertaining to project requirements. Missing assumptions, dependencies and constraints would guarantee chaos and customer dissatisfaction.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Inadequate Validation or Reviews:&lt;/u&gt;&lt;/strong&gt; Validation of requirements is the responsibility of the Requirement Analyst. The relatedness and conflicting nature of requirements are to be identified and resolved during initial stages. All artifacts of Requirement Analysis are to be reviewed to identify and resolve defects.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Not Measuring the Quality of Requirements:&lt;/u&gt;&lt;/strong&gt; Quality of requirements affect the quality of subsequent phases. Quality of requirements can be measured using organizational metrication process in organizations that follow standards such as CMM.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Not documenting “What is not in scope”:&lt;/u&gt;&lt;/strong&gt; It is a good practice to document the list of things that are out of scope. During meetings with the stakeholders or end users, a set of features may be qualified for subsequent phases of the project. If not documented, such features may creep in during the time of project execution or acceptance testing. It is good to document all such features and get a sign-off to mitigate requirements creep.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Not focusing on ‘Technical Requirements’:&lt;/u&gt;&lt;/strong&gt; Technical requirements are vital for the acceptance of the system. Such requirements could be related to areas such as compatibility, coding standards, error handling and propagating errors with user-friendly messages, audit trial, data interfaces, design of multi-currency support, design of multi-lingual support and UI design. Requirements Engineering needs to consider technical requirements with respect to what the stakeholder want on technical perspective. Design Phase would address these requirements with respect to how they would be implemented. Thus, the identification and documentation of technical requirements should not be forgotten or pushed to Design Phase.&lt;br /&gt;&lt;br /&gt;Needless to say, practitioners need to focus on these areas to mitigate risks related to Requirements Engineering. Any thoughts?&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356516183452551110-1781562097930084402?l=se-thoughtograph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://se-thoughtograph.blogspot.com/feeds/1781562097930084402/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=356516183452551110&amp;postID=1781562097930084402&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/1781562097930084402'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/1781562097930084402'/><link rel='alternate' type='text/html' href='http://se-thoughtograph.blogspot.com/2010/01/requirement-engineering-key-aspect.html' title='Requirements Engineering = Elicitation + Analysis and Negotiation + Specification or Documentation + Validation !'/><author><name>Raja Bavani</name><uri>http://www.blogger.com/profile/03107697584076683320</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-12aynZTIiyk/TX2xwHprUhI/AAAAAAAAAGc/kJd9gMNUqJo/s220/IMG_91491.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_HrNGC8Dw4FY/S_e9RebKdVI/AAAAAAAAAEA/p-Qmgfr59zs/s72-c/DSC00128.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-356516183452551110.post-2858416119312114564</id><published>2010-01-01T03:45:00.000-08:00</published><updated>2010-05-22T04:24:12.647-07:00</updated><title type='text'>Customer Value Management and IT Outsourcing</title><content type='html'>&lt;div align="justify"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;strong&gt;Welcome 2010! This decade is going to see a great shift from value-neutral to value-based IT outsourcing trends…&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_HrNGC8Dw4FY/S_e-B2N9O0I/AAAAAAAAAEI/S1GtbsFyOVc/s1600/DSC00127.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" gu="true" src="http://2.bp.blogspot.com/_HrNGC8Dw4FY/S_e-B2N9O0I/AAAAAAAAAEI/S1GtbsFyOVc/s320/DSC00127.JPG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The last two decades encompassed huge opportunities to software service providers. IT evolution and cost-effective onsite-offshore operations offered stability and growth in the areas of Software Maintenance and Support, and Sustenance Engineering. Service providers played in a value-neutral way looking at the opportunities alone to reap benefits. Over the years the competition has grown to a global level. Under these circumstances, Customer Satisfaction Surveys failed to assess the relative performance in a competitive world and hence to understand customer values. Customer Value Management (CVM) is an emerging art and science – it is a way of thinking coupled with a set of techniques and methods that anyone in business can use to decide where to expend time, energy and money to create value for customers. Mature disciplines such as consumer electronics, telecommunication and automobiles focus immensely on Customer Value Management to delight and retain customers.&lt;br /&gt;&lt;br /&gt;Software Engineering is a maturing discipline. The focus on CVM in Software Engineering is too low compared to other mature disciplines. Offshore Software Service Providers realized the demerits of ‘one-size-fits-all’ approach during the post-Y2K era and took the first step by means of defined organizational structures or business units based on verticals and horizontals to provide focus on domain-specific as well as technology-specific customers. Strategic initiatives of Software Service Providers during the mid-90s focused on the adoption of process maturity models (such a, ISO and/or CMM) and enrichment of skills with professional certifications (such as PMP). These initiatives focused on standardizing organizational software processes and strengthening the delivery arms. However, for more than a decade, the contribution of such initiatives to Customer Satisfaction as well as the overall success of the Offshore Project Management could not provide consistent results across projects.&lt;br /&gt;&lt;br /&gt;Software service providers go with their Unique Selling Points (USP) and Value Propositions to win new business relationships. Seldom do they focus on answering the following questions.&lt;br /&gt;&lt;br /&gt;1) Do we choose the right set of values?&lt;br /&gt;2) Do we manage our business processes to deliver the values we promised?&lt;br /&gt;3) Do we communicate the values we offered to the customer and understand customer's perception?&lt;br /&gt;&lt;br /&gt;Customer Value Management is all about this focus. Do software projects deliver software as well as customer values? The answer is not a definite 'Yes'. In many cases unfortunately, the answer is a definite 'No'. This is due to the mindset of businesses that deliver software - the mindset that treats software as a technical commodity executable on a piece of hardware to satisfy user requirements. As the competition gets truly 'Global' this mindset will transform towards value-orientation. Delivery Management community will work towards managing customer values effectively.&lt;br /&gt;&lt;br /&gt;Obviously, cost effectiveness as a singular value proposition will lose gravity. Cost pressures will continue to exist. Increasing number of service providers will move their operations to cost effective geographies. Organizational focus on cost effectiveness and cost cutting measures will become ubiquitous. Worldwide blended rates will emerge.&lt;br /&gt;&lt;br /&gt;Surveys show that when customers slip from ‘Highly Satisfied’ to ‘Satisfied’ (the ‘Slippery Slope’ syndrome) they do limit existing relationships to low-end services with the current vendor and seek new providers for value-added high-end services. For example, in banking industry customers who are just ‘Satisfied’ with the current bankers keep their relationship to maintain a savings bank account and open new accounts with other providers for high-end services. This is a classic scenario that could happen and restrict players from growing up in the value-chain in our industry. Unless the current service offerings are value-centric, existing customers will never ‘Pull’ a provider to offer high-end services or succumb to any ‘Push’ to buy additional services. In fact, service providers do go with ‘Value Propositions’ to customers and sell their services. This was the first step taken by service providers towards value-orientation during the current decade –‘Going with Value Propositions’. This partially answers the first question – ‘Do we choose the right set of values?’ In reality, the industry has a long way to go in choosing the right set of values, in managing business processes to deliver such values, and finally, in communicating the values delivered to understand customers’ perception. CVM is the way to go in order to evolve a value-based delivery model and hence to stay ahead of competition.&lt;br /&gt;&lt;br /&gt;Incremental &amp;amp; Evolutionary Development Methodologies will become a dominant factor of delivery models. Software Application Development and Maintenance has undergone a major paradigm shift from traditional waterfall life cycle to iterative and incremental life cycle. Incremental and Evolutionary Development Methodologies (for example Agile Methodologies and Lean Development) have proved to be successful. The trend will continue and there will be many adopters of such methodologies to ensure early deliveries, high quality and effective risk management. The need of the hour in software development is to plan for early and continuous delivery of high-quality software along with the flexibility to respond to changes and provide better visibility and predictability to the customer. Time-to-market and budget constraints put tremendous pressure on Global Delivery Models in meeting this need.&lt;br /&gt;&lt;br /&gt;Foundation of critical resource pools at customer-centric locations will become a necessity to attain competitive advantage. Customer-centric locations will provide competitive advantage to position critical resources to offer high-end service offerings such as Consulting Services and Package Implementation. Businesses will strive to hire resources in order to overcome cultural and linguistic barriers. There are two dimensions to this foundation – a) Establishing critical operations close to customers for value addition and b) Exploring worldwide locations for business operations, talented resources and operational efficiency. With cost effectiveness being the basic ingredient the ability to compete globally will make these two dimensions the key strategic options to establish effective delivery models. Service provides operating from a base country with sales forces across geographies will have to provide value-addition to its existing as well as potential customers by forming ‘expert teams’ consisting of domain as well as technical expertise to increase their ability to respond fast to market situations. This will become a necessity to be a true ‘Global’ player in the industry.&lt;br /&gt;&lt;br /&gt;The significance of relationship will surpass the power of branding when it comes to business continuity with existing customers. This will limit the power of branding in business continuity and entrust enriched customer relationship as the strategy to retain and grow businesses. Branding will prove to be advantageous in entering new accounts and attracting new talents. When it comes to ‘Retention &amp;amp; Continuity’, ‘Relationship’ will play a key role in global competition. Customers will create and sustain business relationships purely based on value offerings. Branding and market dominance will never bias a relationship or business continuity in the competitive world. Rather value offerings and business relationships will add power to branding.&lt;br /&gt;&lt;br /&gt;Services offerings will get wrapped around innovative value-based alternatives that provide for Flexibility, Risk Mitigation, Business Continuity, Partnership Opportunities, Technology Leadership and Relationship Commitment. The last decade was predominantly full of opportunity-based value-neutral selling. Delivery Models were SLA driven with contractual bindings. Though this trend will continue to exist, the next generation will see different kinds of value-based alternatives.&lt;br /&gt;&lt;br /&gt;Focus on Employee Skill Building will mature further to ‘Value-Based Competency Building’ (VBCB). Global competition will transform businesses to strategize on Value-Based Competency Building. ‘Value-Based Competency Building’ will address contemporary challenges in building competencies specific to Verticals or Horizontals. This will enable businesses to establish the basic foundation for effective Customer Value Management. ‘Value-Based Competency Building’ will become a critical aspect of Human Resources Development and Planning. Global players will evolve VBCB to establish a strong foundation for their delivery models to improve quality of deliverables and to reduce project costs.&lt;br /&gt;&lt;br /&gt;Partnered Delivery Model will emerge as a new trend. To build a successful Value-Based Delivery Model’ the new generation will see the trend of ‘Partnered Delivery Model’ where Service Providers will establish partnerships to enable value-addition to their system. Partnerships will emerge in the areas of Resourcing &amp;amp;Competency Building, Employee Care, V&amp;amp;V Services, Package Implementation and Technical Writing. Matured industries such as consumer electronics and airlines operate with partners who supply both products and services. In these cases the delivery system operates by consuming products and services from partners to optimize internal value creation and hence to exceed customer expectations.&lt;br /&gt;&lt;br /&gt;Value-Based Software Engineering (VBSE) originated by Berry Boehm will become a catalyst in IT services industry and Value-Based Process Frameworks (VBPF) may evolve as well – both of these will become the building blocks delivery models. VBSE is currently maturing among the academia and research communities. It is going to reach practitioners in few years from now. It focuses on both monetary and non-monetary values and explores ways to infuse value orientation in each and every activity of Software Engineering starting from Requirement Analysis to Verification &amp;amp; Validation. The VBSE agenda includes Requirement Engineering, Architecting, Design and Development, Verification &amp;amp; Validation, Planning and Control, Risk Management, Quality Management, People Management, and Principles and Practices.&lt;br /&gt;&lt;br /&gt;Adoption of Quality Processes will upgrade to Value-Based Process Optimization and Process Tailoring (VBPO &amp;amp;PT). Quality Processes and Process Model will upgrade to include value definition, measurement, corrective action and optimization. Process Areas will include key value elements to practitioners and Process Tailoring will help them the right set of key elements are add new ones to ensure successful deliveries. This is a potential area of research and practice in the industry.&lt;br /&gt;&lt;br /&gt;An organizational level CVM initiative will be the first step to create awareness and develop CVM skills in the organizations. Implementation of CVM will require an experimental approach on a selected set of projects of business units and customers. A customer’s view on the market depends on various factors including the maturity of the market, value-offerings, and supply. This is true for a vast majority of the customers of any industry. Cost effectiveness alone cannot survive businesses that are stronger in value-neutral organizational or process maturity frameworks. Organizational Value Orientation and CVM in IT Services Industry are in their infancy. As of now, less than a handful of organizations have started moving in this direction. The next decade is going to see a great shift from value-neutral to value-based IT outsourcing trends. &lt;/div&gt;&lt;br /&gt;References&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Bates Collin, Forget the value of the customer to you and think about your value to the customer, Customer Management, September/October 2003 &lt;/li&gt;&lt;li&gt;Boehm Berry, Value-Based Software Engineering: Overview and Agenda, University Of Southern California, Computer Science Department, February 2005 &lt;/li&gt;&lt;li&gt;Boehm Berry, Turner Richard, Observations on Balancing Discipline and Agility &lt;/li&gt;&lt;li&gt;Favaro John, When the Pursuit of Quality Destroys Value, IEEE Software, May 1996 &lt;/li&gt;&lt;li&gt;Gale T. Bradley, Introduction to CVA – Trends in Customer Satisfaction, Loyalty and Value, Customer Value Inc. &lt;/li&gt;&lt;li&gt;Highsmith Jim, Cockburn Alistair, Agile Software Development: The Business of Innovation, September 2001 &lt;/li&gt;&lt;li&gt;Minseong Kim, Sooyong Park, Value-Based Requirement Analysis of Product Families: A Goal and Scenario Oriented Approach, Department of Computer Science and Engineering, Sogang University &lt;/li&gt;&lt;li&gt;Poppendieck Mary, Principles of Lean Thinking &lt;/li&gt;&lt;li&gt;Shirhattikar Gautam, Future Winners and Losers in Global Outsourcing, CHAZEN Web Journal of International Business, Winter 2005 &lt;/li&gt;&lt;li&gt;Terdiman Rita, New Dynamics in the Application Outsourcing Marketplace, Gartner Inc Article Top View, 30 January 2003&lt;/li&gt;&lt;/ol&gt;&lt;div align="center"&gt;___________&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/356516183452551110-2858416119312114564?l=se-thoughtograph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://se-thoughtograph.blogspot.com/feeds/2858416119312114564/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=356516183452551110&amp;postID=2858416119312114564&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/2858416119312114564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/356516183452551110/posts/default/2858416119312114564'/><link rel='alternate' type='text/html' href='http://se-thoughtograph.blogspot.com/2010/01/customer-value-management-and-it.html' title='Customer Value Management and IT Outsourcing'/><author><name>Raja Bavani</name><uri>http://www.blogger.com/profile/03107697584076683320</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-12aynZTIiyk/TX2xwHprUhI/AAAAAAAAAGc/kJd9gMNUqJo/s220/IMG_91491.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_HrNGC8Dw4FY/S_e-B2N9O0I/AAAAAAAAAEI/S1GtbsFyOVc/s72-c/DSC00127.JPG' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
