Posts

Showing posts with the label ALM

Running the Microsoft ALM TFS 2013 (Hyper-V) Virtual Machine in VMWare without Persisting Changes

This blog describes how to run the Microsoft TFS/ALM Hyper-V virtual machine in one of the VMWare hypervisors (Player/Workstation/Fusion). You can use the same concepts for any other virtual machine/appliance. The 2013 RTM  ALM image comes with a set of TFS and Visual studio labs .  The virtual machine and the labs  have a couple expectations: It comes as a a Hyper-V VHD running an evaluation copy of Windows Server 2012. The work items and other information are "point in time" information.  This means sprint, iteration or other information can only be used in the labs if the VMs time is set to a specific date(s).  The machine resets the time to the same specific date and time on every reboot. This lets you re-run the exercises.  Pay attention to the places the way the time is set if you wish to use this process for Virtual Machines anchored at dates and times other than the ones used for the TFS 2013 RTM ALM image used in this post. The labs work bes...

Improving Software Quality with Continuous Instrumentation

Image
Better Software is No Accident   The most reliable way to build better software is to integrate quality into process with as much automation as possible.  Automated measurements and metrics provide continuous public visibility to the current state and trends. It is easiest to apply these techniques to new projects but they can also be applied to existing processes in an incremental fashion: Balance the value with the ease of automation. You may sometimes pick less than ideal metrics if they are easier to add Success breeds success.  Do simple stuff first and get points on the board Incrementally improve and change.  Add changes at the rate the team can absorb, often at a slightly faster rate than they would like to go. This presentation covers what we were able to implement in about 15 months.  We didn't take on design concepts like cohesion, fan-in, fan-out and file tangles until the second year. It focuses more on actual software production than on the...

Eclipse in the Enterprise

Image
Eclipse in a Large Company's IT Shop Many say that the optimal development team is 5-7 people but that isn't how larger Enterprise software projects work. Those projects have dozens or even hundreds of developers using multiple technologies and Languages. Eclipse's plug-in architecture makes Eclipse more than an IDE. It is a developer desktop environment that many enterprises cannot take full advantage of because of they don't standardize their configurations and toolsets and because they require human intervention for setup. Supersize Me Complex problem that often seems simple to the outsider or new team member No one person knows the whole business problem No one person knows the whole technical implementation No one understands how each technical layer works A lot more effort is put into staffing the initial build than the ongoing maintenance Some work will be defensive in nature protecting from future mistakes All applications ar...

Lightweight Monitors for Metrics and Troubleshooting

Lightweight Monitoring tools can be integrated into applications to provide quantitative information about how an application is being used and how it is performing. Development teams can integrate lightweight monitoring that augments , or in some cases replaces, the server level monitoring provided by system or operations tools. Internal monitoring can provide stick counts and performance information at the method level or on a business transaction basis. Monitors can easily be enhanced to that lets teams track traffic or performance across time, release and program instance. (7/2010)

Coding Standards are Part of Continuous Improvement

Coding standards extend to something beyond just code formatters. Coding Standards give team members the same understanding of what's expected of them.  Developers spend less time trying to understand code when it's style and operating model look similar across modules and applications. Standards must take into account the range of developer skill set allowing for ongoing improvement from training. It may be that you allow or disallow some feature/approach to reduce the number of defects even if some developers are capable of doing "more". Developers like to be free to develop "in their own fashion" but management wants code to have the same shape and look from developer to developer because they care about developer portability across development efforts. Standards can be created that still let developers be creative on the interesting problems. Automated Standards Support Tooling can help enforce coding standards by providing constant reminders that the...