<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Adventures in Software Engineering : ALM</title><link>http://blogs.msdn.com/clemmend/archive/tags/ALM/default.aspx</link><description>Tags: ALM</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Keep your SOX clean</title><link>http://blogs.msdn.com/clemmend/archive/2007/12/18/keep-your-sox-clean.aspx</link><pubDate>Wed, 19 Dec 2007 00:16:25 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6799656</guid><dc:creator>clemmend</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/clemmend/comments/6799656.aspx</comments><wfw:commentRss>http://blogs.msdn.com/clemmend/commentrss.aspx?PostID=6799656</wfw:commentRss><description>&lt;p&gt;I have been to a few customers who have implemented or are implementing &lt;a href="http://en.wikipedia.org/wiki/Sarbanes-Oxley_Act" target="_blank"&gt;Sarbanes-Oxley&lt;/a&gt; (SarbOx or SOX) compliance in their development processes using VSTS. &lt;a href="http://blogs.msdn.com/processblog/" target="_blank"&gt;Andrew Delin&lt;/a&gt; from the VSTS Process team is creating a whitepaper on how to do that with VSTS. In the meantime, here are some reflections based on my personal work with this topic so far.&lt;/p&gt; &lt;p&gt;[The next is a PPT-like intro to the topic. For those who know what SOX, you can skip it].&lt;/p&gt; &lt;p&gt;&lt;strong&gt;What is SOX?&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Federal legislation signed into law in July 2002  &lt;li&gt;It requires higher accounting standards, improved trustworthiness in corporate reporting, and greater financial transparency  &lt;li&gt;Two key sections of the law that have drawn the most attention  &lt;ul&gt; &lt;li&gt;Section 302: Requires executives to personally certify the validity of financial statements  &lt;li&gt;Section 404: Requires complete documentation of financial controls and auditor attestation to management's evaluation &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Section 404&lt;/strong&gt;  &lt;p&gt;Requires “an internal control report, which shall  &lt;blockquote&gt; &lt;p&gt;1) State the responsibility of management for establishing and maintaining an adequate &lt;strong&gt;internal control structure&lt;/strong&gt; and procedures for financial reporting;  &lt;p&gt;and  &lt;p&gt;2) Contain an assessment, as of the end of the most recent fiscal year of the issuer, of the effectiveness of the internal control structure and procedures of the issuer for financial reporting.” &lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;[end of introduction]  &lt;p&gt;Ok, given this very brief summary, I can now tell you that the best general guide I have found so far to understand how to implement SOX in an IT environment is "&lt;a href="http://www.isaca.org/Template.cfm?Section=Home&amp;amp;CONTENTID=27507&amp;amp;TEMPLATE=/ContentManagement/ContentDisplay.cfm" target="_blank"&gt;IT Control Objectives for Sarbanes-Oxley, 2nd Edition&lt;/a&gt;".  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/clemmend/WindowsLiveWriter/TightenyourSOX_8BC/image_1.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="240" alt="image" src="http://blogs.msdn.com/blogfiles/clemmend/WindowsLiveWriter/TightenyourSOX_8BC/image_thumb_1.png" width="160" border="0"&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;This book explains the rationale for establishing the controls needed from the IT perspective, starting with SEC's own recommendation:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;"Historically, assertions on control by an organization have been mostly voluntary and based on a wide variety of internal control frameworks. To improve consistency and quality, the SEC mandated the use of a recognized internal control framework established by a body or group that has followed due-process procedures, including the broad distribution of the framework for public comment. &lt;strong&gt;Specifically, the SEC referred to COSO&lt;/strong&gt;".&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;and&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;"For Sarbanes-Oxley compliance efforts, it is important to demonstrate how IT controls support the COSO framework. An organization should have IT control competency in all five of the components COSO identifies as essential for effective internal control. They are:&lt;br&gt;• Control environment&lt;br&gt;• Risk assessment&lt;br&gt;• Control activities&lt;br&gt;• Information and communication&lt;br&gt;• Monitoring" &lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;How does that relate to the normal IT framework controls that we are used to, such as ITIL/MOF, and SDLCs such as MSF for CMMI Process Improvement? &lt;/p&gt; &lt;p&gt;Here is a short summary plot:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;SOX recommends &lt;a href="http://www.coso.org/" target="_blank"&gt;COSO&lt;/a&gt; per SEC  &lt;li&gt;COSO maps to &lt;a href="http://www.isaca.org/cobit.htm" target="_blank"&gt;COBIT&lt;/a&gt; (Control Objectives for Information and related Technology) standard  &lt;li&gt;portions of COBIT map to relevant parts of CMMI  &lt;li&gt;other parts of COBIT map to ITIL and other IT management standards&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Said in this way it would seem that by implementing ITIL/MOF, and by using MSF CMMI as the standard SDLC, we would be covered in SOX compliance. This seems like a lot of overhead. However, you don't need all that, as we will see next.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;SOX is about financial reporting&lt;/strong&gt;  &lt;p&gt;This was very eloquently &lt;a href="http://www.cio.com/article/10519/_ITIL_and_Sarbanes_Oxley" target="_blank"&gt;mentioned&lt;/a&gt; by Dave Erickson:  &lt;blockquote&gt; &lt;p&gt;“Sarbox is about assessing risk. While risk assessment is an element of ITIL, it isn’t the framework’s primary focus. Furthermore, CIOs who put ITIL or any other IT framework in place solely to comply with Sarbox will have gone overboard, says Erickson. The Sarbanes-Oxley Act requires only that companies establish controls over the systems relating directly to financial reporting. ITIL, Cobit and other frameworks for IT help companies put in place general controls for IT—a good thing to have, but much broader than the narrow scope required by law.”&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;So one of the first things that needs to be established from an IT perspective is a control that identifies the application being developed as impacting financial reporting. These type of applications will need to follow SOX constraints. Other types of application do not need all the overhead, especially if you are doing Agile development.&lt;/p&gt; &lt;p&gt;Usually SOX compliance teams will keep their own database of such applications. In VSTS it is possible to create a work item to identify those for reporting purposes. That would be the first of several work items that might be needed for SOX compliance. &lt;/p&gt; &lt;p&gt;So given that part of what is needed in already in the MSF CMMI template, it is clear that a few items need improvement. Remember that this just a sample of what might be needed, not a comprehensive list:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Strategic planning alignment  &lt;ul&gt; &lt;li&gt;One way to implement this might be to have new work items explicitly owned by upper management and/or CIO, and mapped to strategic objectives (such as in &lt;a href="http://blogs.msdn.com/sam/archive/2006/05/16/598900.aspx" target="_blank"&gt;Microsoft's Development Division with Value Propositions/Experiences/Features&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Risk management process  &lt;ul&gt; &lt;li&gt;We need to add risk reports per project and across portfolio (slice risk management by financial management applications)&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Traceability  &lt;ul&gt; &lt;li&gt;We need to implement reports that show traceability of work items that impact financial reporting. This will be easier to do with  &lt;ul&gt; &lt;li&gt;Adding new fields to work items (such as a task work item with a tag “SOX regulation” )  &lt;li&gt;Adding work items that have have more workflow steps to deal with regulations&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;SCM (as part of change management)  &lt;ul&gt; &lt;li&gt;Add work items that correspond to checkpoints for branching (see &lt;a href="http://www.codeplex.com/BranchingGuidance" target="_blank"&gt;article&lt;/a&gt; by John Jacob et alii on branching guidance)&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Audit trails  &lt;ul&gt; &lt;li&gt;Have additional reportable fields, pivoted with the SOX attribute, and provide more reports for auditors&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Security  &lt;ul&gt; &lt;li&gt;Existing process guidance already handles part of this, but it is not enacted in tooling  &lt;li&gt;We need to implement Secure Development Lifecycle with work items as checkpoints, and corresponding work products and reports&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;As mentioned above, another big part of SOX compliance is covered by ITIL/MOF. I won't go into the infrastructure topics per se (see the book above for that), but there is one clear common implementation point with VSTS/TFS/MSF CMMI in security groups. Segregation of duties is mandated by SOX. However the currently default process template security groups are loosely defined, allowing persons without the proper authority to review/modify documents.  &lt;ul&gt; &lt;li&gt;The full implementation of security model described in &lt;a href="http://msdn2.microsoft.com/en-us/library/ms253077(VS.80).aspx" target="_blank"&gt;MSDN documentation&lt;/a&gt; is a solution.  &lt;li&gt;Reporting needs enhancement to provide evidence of compliance showing that groups are separated in their duties.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Finally, part of SOX compliance is covered by IT Portfolio Management. Therefore, reporting needs enhancement to provide evidence of compliance using, for instance, a portfolio view of a dashboard showing compliance status. This view could used departments as pivots.&lt;/p&gt; &lt;p&gt;So as I mentioned above, these are just initial thoughts in a very complex topic. &lt;a href="http://blogs.msdn.com/processblog/" target="_blank"&gt;Andrew Delin&lt;/a&gt; and the VSTS Process team are working on getting more comprehensive guidance on how to tackle this subject.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6799656" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/clemmend/archive/tags/MSF/default.aspx">MSF</category><category domain="http://blogs.msdn.com/clemmend/archive/tags/ALM/default.aspx">ALM</category><category domain="http://blogs.msdn.com/clemmend/archive/tags/SOX/default.aspx">SOX</category><category domain="http://blogs.msdn.com/clemmend/archive/tags/CMMI/default.aspx">CMMI</category></item><item><title>Presentation on ALM foundational concepts</title><link>http://blogs.msdn.com/clemmend/archive/2007/12/18/presentation-on-alm-foundational-concepts.aspx</link><pubDate>Tue, 18 Dec 2007 21:46:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6798573</guid><dc:creator>clemmend</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/clemmend/comments/6798573.aspx</comments><wfw:commentRss>http://blogs.msdn.com/clemmend/commentrss.aspx?PostID=6798573</wfw:commentRss><description>&lt;P&gt;I did a presentation for the VSTS Inner Circle in September 11th, and I am still getting requests for the video link and slides. Here they go:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;Fundamentals of ALM&lt;/STRONG&gt; 
&lt;P&gt;&lt;STRONG&gt;&lt;/STRONG&gt;
&lt;P&gt;&lt;STRONG&gt;Abstract&lt;/STRONG&gt;: What you should know to elevate an enterprise to an intermediate or higher level of maturity regarding SDLC and ALM. Includes discussion of the features of VSTS that enable integrated ALM, and an overview of what is coming in the next couple versions of VSTS (Orcas and Rosario). 
&lt;P&gt;&lt;A href="https://www112.livemeeting.com/cc/microsoft/view?id=K7K7ZZ&amp;amp;pw=PFSN5%3F2%24m" mce_href="https://www112.livemeeting.com/cc/microsoft/view?id=K7K7ZZ&amp;amp;pw=PFSN5%3F2%24m"&gt;View Recording&lt;/A&gt;&lt;BR&gt;Recording Details&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Subject: Fundamentals of ALM &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Recording URL: &lt;A href="https://www112.livemeeting.com/cc/microsoft/view" mce_href="https://www112.livemeeting.com/cc/microsoft/view"&gt;https://www112.livemeeting.com/cc/microsoft/view&lt;/A&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Recording ID: K7K7ZZ &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Attendee Key: PFSN5?2$m &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;This presentation has a five minute delay to start (recording started too soon). I have asked the organizers to edit those minutes out, and I will post the link to the edited version when it is available.&lt;/P&gt;
&lt;P&gt;I want to thank &lt;A href="http://blogs.msdn.com/sam/" target=_blank mce_href="http://blogs.msdn.com/sam/"&gt;Sam Guckenheimer&lt;/A&gt; who co-authored an earlier version of this deck which was co-presented at TechReady 4 (an internal Microsoft conference).&lt;/P&gt;
&lt;DIV class=wlWriterSmartContent id=scid:8eb9d37f-1541-4f29-b6f4-1eea890d4876:76d66058-1d4e-4b0f-a00f-2227c06807c1 style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;
&lt;DIV class=wlWriterSmartContent id=scid:8eb9d37f-1541-4f29-b6f4-1eea890d4876:76d66058-1d4e-4b0f-a00f-2227c06807c1 style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6798573" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/clemmend/attachment/6798573.ashx" length="2749258" type="application/pdf" /><category domain="http://blogs.msdn.com/clemmend/archive/tags/ALM/default.aspx">ALM</category></item><item><title>Guidelines to choose your ALM pilot project and pitfalls to avoid</title><link>http://blogs.msdn.com/clemmend/archive/2007/12/17/guidelines-to-choose-your-alm-pilot-project-and-pitfalls-to-avoid.aspx</link><pubDate>Tue, 18 Dec 2007 00:17:31 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6792484</guid><dc:creator>clemmend</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/clemmend/comments/6792484.aspx</comments><wfw:commentRss>http://blogs.msdn.com/clemmend/commentrss.aspx?PostID=6792484</wfw:commentRss><description>&lt;p&gt;Some Agile and/or ALM adoption efforts are canceled midstream because of lack of understanding of the basics of finding a suitable candidate development project. I have seen in more than a single situation that the chosen project is cutting edge in all three aspects of technology, process and people:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;The technology is brand new, or new to the team, sometimes in even more than a single tier (for instance, new database software coupled with new UI development tools and a new programming language)  &lt;li&gt;The development process is being changed (say from waterfall to Agile)  &lt;li&gt;New people are being added to the team just after receiving their first training in the new technology&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;But the biggest mistake with Pilot efforts is to to use a strategic, high profile brand new project as the proofing ground for all these aspects, &lt;u&gt;all at the same time&lt;/u&gt;. This is more common than expected. It starts as something like this: &lt;/p&gt; &lt;ol&gt; &lt;li&gt;Business has some urgent need for strategic functionality that allows them to challenge the existing technical architecture  &lt;li&gt;However, the effort still has to abide by the usual existing waterfall processes that dictate that all must be done in a single pass  &lt;li&gt;So the project is approved, but no cycle is allowed to try out the new tools and processes in a smaller context , and multiple changes to the environment are bundled together in an insurmountable ticking bomb that will later explode as a "&lt;a href="http://en.wikipedia.org/wiki/Death_march_%28software_development%29" target="_blank"&gt;death march&lt;/a&gt;" project.&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;To add insult to injury, sometimes on top of all this no proof-of-concept is ever tried with the new technology and processes (Proof-of-concept differs from pilot in that it is done in a lab environment, with no impact on business). Pilot projects do have business justification, but usually one chooses a minor project instead of betting the "jewels of the crown" on risk upon risk.&lt;/p&gt; &lt;p&gt;The mistake on all these lies usually in the governance management tier(PMO, office of the CIO, etc). It is usually associated with just enforcing the status quo, and it takes some brand new business need to act as a catalyst to challenge it. This governance tier should be the one to understand how to evolve their environment through carefully taken steps, and to know how to spread the risk underlying the business need into preparatory small projects (using proof of concepts and pilots) that will pave the ground for more ambitious ones. &lt;/p&gt; &lt;p&gt;If a governance tier is not active in doing this, the new project decays into a rogue that just reinforces the "didn't tell you so" attitude of those who see governance only as keeping IT madness in straightjackets.&lt;/p&gt; &lt;p&gt;Allowing this to happen is like building on moving sand: the construction might be impeccable but will collapse upon itself if it doesn't have firm ground to support the pressure of adding new layers. &lt;/p&gt; &lt;p&gt;The best practices for selection of a Pilot project are widely known, and for quite a long time. Here is an excerpt from a Microsoft Official Curriculum course from 1993. It is part of Course 124 - Managing the Migration to Client-Server Architectures. I modified the text to fit ALM adoption (the text in brackets [] replaces "client-server" and updates the context of other points):&lt;/p&gt; &lt;p&gt;"&lt;strong&gt;Start small - with a Pilot Project&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;We suggest you start your exploration of [new ALM processes and tools] with a pilot project.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Maintain excitement:  &lt;ul&gt; &lt;li&gt;Sponsors will lose enthusiasm  &lt;li&gt;Team members will lose enthusiasm  &lt;li&gt;Reduce risk of turnover&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Need strategic answers quickly to be of value.  &lt;li&gt;Avoid management problems of large projects:  &lt;ul&gt; &lt;li&gt;Large projects require more layers of management  &lt;li&gt;Coordination of client developers and server developers is critical  &lt;li&gt;Coordination will be much easier in a small group that talks to each other&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Selection Criteria of Pilot Projects&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Well defined data requirements  &lt;ul&gt; &lt;li&gt;Don't want to get bogged down in data analysis  &lt;li&gt;Could be existing application  &lt;li&gt;Could be part of a new application, where data analysis has been completed&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Benchmark available  &lt;ul&gt; &lt;li&gt;If don't have, need to build in-house benchmarking capability  &lt;li&gt;Performance criteria  &lt;li&gt;Quantify savings and benefits  &lt;li&gt;Define ball-park expectation  &lt;li&gt;Use to validate tool selection  &lt;li&gt;Use for quality control in future projects&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Decision support application [Business Intelligence in today's jargon] as opposed to data entry application  &lt;ul&gt; &lt;li&gt;More showy, if that's what's needed  &lt;li&gt;Safe place to start - it won't disrupt business operations  &lt;li&gt;Usually a simpler system  &lt;li&gt;Deliverable flexibility - keep concentration on testing the [ALM processes and tools]&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Committed and supportive users  &lt;ul&gt; &lt;li&gt;Might be #1 critical success factor [that includes not only end users of the application in the role of product managers, but also developers, project managers and upper management]  &lt;li&gt;Willing to work with the team  &lt;li&gt;Willing to allocate the time required for the project  &lt;li&gt;Could use internal IT system so "end users" are IT&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Low Cost  &lt;ul&gt; &lt;li&gt;Use equipment you already have [for instance, VPCs]  &lt;li&gt;Look for idle equipment [for instance, a PC with Windows XP can be a build server for a small project]&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Low Risk  &lt;ul&gt; &lt;li&gt;It's better if this might be considered a throw-away project  &lt;ul&gt; &lt;li&gt;Objective is to evaluate [new ALM processes and tools], not build an application. Concentrate on tools and platform rather than application development"&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;If you need to choose a project that is mission critical, at least let it not be time-critical&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;As you can see, those best practices are nothing more than codified common sense, and I highly recommend you have those in mind when scoping your next ALM project.&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:2a0c7d59-da54-46f9-96d5-329d76e7ffb0" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/ALM" rel="tag"&gt;ALM&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6792484" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/clemmend/archive/tags/ALM/default.aspx">ALM</category></item></channel></rss>