Skip navigation.

ISerializable - Roy Osherove's persistent thoughts (Test Driven)

ISerializable - Roy Osherove's persistent thoughts (Test Driven)

Website:


Description:

ISerializable
Roy Osherove's persistent thoughts (Test Driven)
All that is XP,unit testing and test driven development

Last update:

2 years 28 weeks ago


login or register to post comments

Q&A: Agile Vs. Formal Methodologies

  1. Agile Vs. Formal Methodologies
    1. Is "Agile" just another trend that is slowly turning into a more accepted and practiced methodology?
    2. Is this the beginning of the end for "Formal" Methodologies?
    3. What role, if any, as VSTS played in the struggle of Agile methodologies to become more "mainstream"?
    4. When would you use Agile or Formal Methodologies?
    5. What about "hybrid" culture where Agile and Formal mix together rather than going the full on extreme path of "one or the other"?
Is "Agile" just another trend that is slowly turning into a more accepted and practiced methodology?
 
Agile Practices have long been practiced in the world of Software Development. If anything, I'd say they have always been mainstream (to a certain degree, in many companies) and just now are starting to pick up the "buzz" and become a trend. The new "Agile" word simply tries to put together a set of practices and mind set that works better for most projects than not thinking about them together. Stuff like Coding standards, unit tests and daily builds have always existed, stuff like pair programming have been done to a degree in any company (have you ever set with a colleague trying to solve a tough problem?). Agile simply tries to take those things, name them and realize that we'd be better off acknowledging their power and using them more rather than less.
 
Is this the beginning of the end for "Formal" Methodologies?
Hardly. There's always a place for both, but I suspect that most projects will use a mix of both over one or the other.
 
What role, if any, as VSTS played in the struggle of Agile methodologies to become more "mainstream"?
Team System helped bring the idea of Agile to the mainstream .NET community. That's a wonderful thing, because now we have something that the Java Developers have had for along time - the idea of Agile methodologies embedded into our tools. Unit Tests, MSF Agile, extreme programming, they are a few clicks away rather than a few downloads away. That's a big plus for Microsoft.
On the other hand, team System is not quite there yet. It's TDD Support is less than perfect and the notion of XP and MSF Agile is still not there fully, but we are a long way from Kansas Already, and it will just get better from now on.
 
 
When would you use Agile or Formal Methodologies?
Unless you are working on a project with Fixed Price, Scope and Time, Agile is a good way to go. Even if you do Hardware & Software integration, the software part can be done in an Agile manner (so can the hardware, but that's a different topic).
 
What about "hybrid" culture where Agile and Formal mix together rather than going the full on extreme path of "one or the other"?
99% of the projects I've seen come from a :formal background and implement Agile practices incrementally. For example, doing daily builds, then adding unit tests, then adding TDD, then adding Rolling Wave Planning etc..
If it fits your team more than going all the way , I'd say go for it. One of the main notions of Agile is making the methodology fit your team, and not the other way around. If it can work better for your team with more documentation and more meetings, do it. But stick to your guns for at least some amount of time (an iteration or two) and then decide what to change, if at all.

Photos and Slides from Agile Israel March Meeting Birthday Maddness!

Wow, What a great Agile Israel Meeting we had this week! You can read all about it on our new site at www.AgileIsrael.com where you will also find the latest slides, and soon also the audio recording from the meeting.
 
If you were wondering if you made a mistake in not coming to the meeting, here are a few reasons to say "yes" to yourself now.
 
First, Because it's our one year birthday, I worked with Microsoft to get lots of pizza and several cakes!
 
We had Plenty of Prizes to give away too!
 
 
And lots of people showed up to hear Orit Hazzan speak about Agile Development.
 
And of course,  there were balloons and videotapes!
 
 
So next time, if somebody asks you "Say, I heard there was an Agile Group in Israel! Should I go?" You'll know what to say... right?

Special Agile Israel Meeting Today!

Reminder: Agile Israel meets Today. Gathering at 17:30, we start at 18:00.
Arrival instructions and more at our temporary site: www.AgileIsrael.com
This is a special celebration for one year so I plan to raffle off lots of prizes!
 
Also, special talks from Orit Hazzan And Yael Dubinsky from the Technion about Adopting Agile and promoting Change in the organization!
See you there!

Some goodness from CodeBetter.Com

[Article] Achieving And Recognizing Testable Software Designs – Part I

Recently, I’ve had the pleasure of speaking at a Microsoft Dev/IT Pro Days conference in Belgium.  I was approached by the organizers asking if I would want to do a session on “Designing for testability”, as part of three talks I was to give there.

The topic was not something I had spoken about before, but definitely something I had thought about, considered and wrestled with many times on many projects and occasions.

 

I set out to first determine what the definition of a “Testable System” might be, in my eyes. I came to the realization that a testable system is not measured in a vacuum, but its testability has to be “mirrored” through external testing related factors. For example, how easy would it be to write quality unit tests against such a system? And for that question to be answered, one has to ask what “quality unit tests” really means in this context. In this article we’ll try to define what a testable system design really means, and explore some basic design rules to make sure we can keep that testability in the system from the beginning.

 

Here’s my current definition of a testable system:

 

“For each logical part of the system, a unit test can be written relatively easily and quickly that satisfies all the following PC-COF rules at the same time:

 

Partial runs are possible

Consistent results on every test run

Configuration is unneeded before run

Order of tests does not matter

Fast run time”


Read the rest of the article here and read about each of the five rules outlined here.

Code from DevDays Belgium available: Design for Testability & Smart Client Offline Caching and Synchronization

I had a good time at DevDays Belgium and would love to go back there again sometime in the future. I just hope the crowd enjoyed my sessions. In any case, I'm making available the demo code from two of my presentations (Designing for testability and Smart Client Caching and Synchronization).

One nice thing I noticed at the event is that there was noticeable user group activity. For example, there was a great booth from the Belgian XP User group right there, giving books and raffling nice stuff, and giving away a "planning game" tutorial. I'll have a separate post on this later on.

Rock on Belgium! I got to meet some great people, and had two lovely geek dinners while I was there. I just love those kinds of experiences :)

March at Agile Israel - Great presentations & The group's first birthday

Our upcoming March meeting of Agile Israel will be a special one. not only do we have a great set of presentations to dish out, we'll also be celebrating the group's first birthday!
We'll have a cake, pizzas, and raffle out some cool and interesting prizes!
 
See you there!
(see arrival instructions at end of email)
 
Date and Time:
March 27th, 2006
Gathering as of 17:30, we start promptly at 18:00.
 
This month we have the distinct pleasure of hosting two speakers which are internationally known in the agile conference world (Agile International conference, XP international conference etc..) for their research and studies into the adoption and management techniques in Agile Projects. Fortunately, they also live and work in Israel's Technion, and have both agreed to speak to our group!
 
Agenda:
17:30 – Gathering
18:00 – Part I - Introducing Agile Culture into Your Organization
19:15 – break
19:30 – Part II -  Managing Agile Software Development Projects
20:45: prize raffle
 
Description:
Though agile software development methods have been around for almost a decade, in many software organizations practitioners still keep asking themselves questions such as: how to establish an agile software development culture, how to achieve a full adoption of a specific agile software development method, and, how to maintain its implementation. Indeed, illustratively, with respect to Extreme Programming, Kent Beck starts the second edition of Extreme Programming Explained by stating that “Extreme Programming is about social change”. 
In this two-part presentation we will first address the nature of the cultural change that should take place when agile software development is introduced into the organization and second, we will work on specific management practices that support the development of agile software projects.
  Speaker Details 

Orit Hazzan is an Associate Professor at the Department of Education in Technology and Science of the Technion – Israel Institute of Technology. In May 2004 she published her book Human Aspects of Software Engineering, co-authored with the late Jim Tomayko. She is a software project consultant in the Israeli software industry. The way she combines research and practice enables her to bring a comprehensive picture into guidance processes of software teams. She presents her research in computer science and software engineering education conferences (e.g., SIGCSE) as well as in conferences that deal with agile software development (e.g., the Agile International Conference).

Yael Dubinsky is an adjunct lecturer at the Computer Science Department at the Technion and a consultant in the areas of software project management and computerization, working with the Israeli army and industry. She graduated B.Sc. and M.Sc. in Computer Science from the Technion, Israel, and was the head of the IT group in this department for ten years. During her Ph.D. research, she examined implementing software development methods in project-based courses in the higher education, and specializing in Extreme Programming. Yael has a significant experience with guiding agile implementation processes. Her current research interests deal with quality aspects of software project processes.
 
Getting There
Meeting will take place at Microsoft Ra'anana:
2 Hapnina St, Raanana
(09) 7625-100
Floor 0 , Dekel Room
 
It is the new building across from Amdocs.
After the first traffic circle, there is an area for (free) parking on the right.
 

One more DevDays Talk: Introduction to Agile Methodologies and Concepts

Looks like I'll be doing a third talk at the upcoming DevDays in Belgium. I'm taking the place of Rafal Lukawiecki, who couldn't make it in time, and will be talking about a topic near and dear to my heart. You guessed it. Agile.
 
Introduction to Agile Methodologies and Concepts
March 8, 2006 - 14:30 - 15:45
Ever knew on your first day on the project that you’re going to miss the deadline? Ever been “surprised” that the customer changed their mind? Ever had long nights trying to fit your latest changes into code that just keeps on breaking? You’re not alone. Wondering where you should start if you want to go Agile? This talk is for you. We’ll take a look at the traditional “Engineering” based methodologies such as the waterfall model, how they came to be, why most projects today fail, and what the differences are between Engineering methodologies and “Agile” methodologies. We’ll explore what “Embrace Change” really means in the context of Agile development and what “People-Oriented” “Adaptive” development mean in that context. We’ll see how methodologies such as XP, Scrum, MSF-Agile and others fit into the context of Agile development and talk about the ways in which one can start adopting agile in their organization. Finally, we’ll talk about some of the most basic steps any organization can take in the road to becoming more and more Agile.