PositionPapers
I have been practicing simple design for close to 8 years. I am the author of Extreme Programming in Practice and Test-Driven? Development in Microsoft.NET. I was the lead developer and coordinator of NUnit 2.0 and currently xUnit.net. I attended the conference last year and found the focused nature much more satisfying then the overall Agile Development Conference.
At this years conference I would like to be able to have small group discussion about various testing tools and practices for advancing test-driven development.
How will you contribute to the conference?
- I am a test architect and tool mentor, and in the past 5 years have provided strategic advice to traditional QA departments within several investment banks and insurance companies.
- Previously, I was an agile/RUP mentor at a prominent agile consulting firm (Valtech).
- At the StarWest? QA conference last month, I presented a talk on agile approaches to tools and training.
Based on (1) and (3) above, I can provide some data points on the state of agile engineering and communication practices within the financial services industry and ideas about how I've worked to spread them among both developers and QA test automation engineers.
What you plan to achieve during the conference?
I'd like to update my understanding of where the agile testing community is at and meet other agile test practitioners face to face."
I struggle with the words "design" and "testing" in that they have two meanings for me. When I think of software development from a customer, product owner, or product manager, "design" refers to the decisions I make about what to build. I make these decisions from the context of understanding business goals I wish to achieve or business problems to solve. The results of my product design decisions are fed forward as product requirements.
I then think of "testing" as evaluating whether I really achieved earned that value and subsequently what I could change to get more value. This testing may be done by placing working software in front of users in the context of usability testing, simulated use, or through delivery and actual use. I'm not evaluating whether the software works as specified, but whether I've specified the right thing.
When I think of software development from a development or production perspective, I think of simple designs that deliver required functionality in a simple, maintainable and testable way. When I think of testing, I think of tests that allow me to quickly validate that my simple design behaves as intended. I also know that product requirements will change, so I consider both design and tests as tools that allow me to adapt to change quickly.
I have a goal at this conference to better understand how others understand the terms design and test.
My head and concerns freely move back and forth between these two meanings for design and test. I get frustrated with designing and testing code for poorly designed and validated product requirements. I?d hope at least as much effort goes into designing and validating the outside of the product as goes into designing and validating the inside.
In an Agile context we proceed with to develop software with a rough understanding of the problems we intend to solve, and the software that could best solve it. Through iterative development and incremental delivery we hope to better understand what we should be building that delivers highest value. I wonder how simple design and testing thinking applies to both the inside, and the outside of the software, and how these two design and testing concerns intermingle in an Agile context.
I hope to contribute to the conference by discussing these subjects, and building conversation around these two design and testing concerns. For those from the development side that could use a better understanding of product design and testing, I can discuss these and demonstrate design and testing techniques used outside of code.
1. Code or test presentation. This is modeled after something I saw at Rails Edge. Two experts took two Rails apps volunteered by brave people. They spent time reviewing them, then spent one conference timeslot describing how they'd have changed things. Discussion ensued.
I'd like to do that with some code or tests. I'm particularly interested in business-facing tests, tests for rails, or ruby tests in general. I'll need people to volunteer to do the reviewing and people to volunteer something to review.
2. 87 views of the same test idea. I want to take a set of tests and rewrite them in as many different ways as we can think of. I'll need to pair with people to help with the rewriting. Failing something better, I'd like to rewrite some Rails functional (HTTP request) tests like the ones I describe here:
http://www.exampler.com/blog/2007/11/25/code-emphasis-for-tests-that-teach/
3. Since I don't get enough humiliation in my life, I could do a public rewrite of some of my code, same as last year. This year, all I really have is Ruby code. We could potentially look at some rather hackish code I have for working with OmniGraffle? documents. (It's hackish because I add methods at runtime to innocent arrays and hashes. Does that make the code simpler to work with or harder?)
Lately I've been thinking about how seemingly EVERY software design principle is ultimately derived from the need to manage change. Change management is more important that dependency management, because it is ultimately the reason why dependency management matters. I guess this is why "Encapsulate what varies" is often listed as the first OO design pricinciple.
Thus analysis of change (at least on the back of an envelope) becomes THE most important design activity. How do folks translate this principle into action. Are there quick diagrams or tables that you whiteboard to get a solid picture of what varies (independently, together, or not-at-all)?
To achieve:
1. Learn the state of practice in C++ TDD.
2. Develop ideas and examples for teaching/learning TDD more effectively.
3. Explore what formal approaches can contribute to simple design.
To contribute:
1. Willing to pair with anybody on anything.
2. Ideas for TDD exercises.
3. Knowledge, energy, and enthusiasm!
I'm a relatively new programmer (2+ years) and both of the shops I've worked in so far have been cutting-edge, XP environments. While XP seems to me a very common-sense approach in most regards, the one practice I've not been able to come to terms with is pairing.
My question is this:
- Can XP development work well without pairing?
- Can it work well if some of the team members prefer not to write code in tandem? For me the practice has been useful in terms of learning, but a disaster when it comes to my productivity. I just can't seem to 'think in code' and have a conversation with someone at the same time.
- I'd also like to explore the BDD and its ability to replace, or enhance, user acceptance tests.
I'm interested in developing strategies for introducing tests into real-world legacy codebases while minimizing disruption to project velocity. I'd like to share my experiences while also gathering the perspectives of others. I'm also interested in Behaviour-Driven? Development using RSPec, and I'd like to discuss the best practices for BDD that have emerged in our own projects, and compare them with what other people are doing.
Having incorporated agile methodology as part of my global class room projects it would be very helpful for me to participate in this conference. I hope to enhance my knowledge about simple design and testing from the industry experts.
I am a nuclear engineer working on a software development task. I believe that everything to be discuss on this conference will help me clarifying doubts and optimize my current and future work.
Take back some 'simple' ideas to implement. We're on the midst of a significant overhaul of our flagship product. We're significantly changing our product (and underlying architecture) and attempting to change our processes as well (adopting some agile techniques). I want to ensure that we're able to be successful while at the same time keeping things simple and adopting practices that can stick and be built upon in the future.
I've been using and promoting agile practices for ~5 years on various development projects.
My company has recently introduced Scrum, and I am a Quality Assurance Engineer. As we struggle to work through engineering practices to follow and I struggle to figure out how to fit testing into this framework, I want to know how other people are solving these problems. I want to learn more about agile best practices.
As a development director and ScrumMaster? looking to instill Agile practices in a traditionally waterfall organization, I struggle with the apparent lack of solid guidance for using SCRUM and Agile to implement and refactor designs quickly. Further, the lack of established best-practices for including full testing in our definition of "done" leaves me without effective tools to handle some of the most essential parts of developing maintainable software. At SDTConf I'm looking to discuss these challenges with peers and discover insights that I can take back home to make our development processes better.
We're just getting started applying agile development techniques to our projects. I'm especially interested in how agile works in an academic context, particularly with student developers on the project. Also how to mesh Agile with "old school" Project Management technique w.r.t. estimating and planning future milestones. I have a lot of experience with programming support tools like version control and bug trackers, and can contribute that knowledge to discussions.
My plan for the conference is to meet new people and think new thoughts. One of the ways I seek to do this is by making controversial statements and participate in the discussions they stir up.
Copy and Pastable code is Good Code!
We talk about having simple designs and testable code, and I think overall this is a well understood concept at the low level. However what makes an entire project's codebase simple and testable. How can you tell how accessible the
project is to a new person when team never gets new players? What are some ways to examine this? I propose a simple exercise. Take a person who has never seen your code, ask them to duplicate one of your tests in a new file and make it pass. How long did that take? How many lines are in the new file total, and how many lines are outside of the test case fulfilling dependencies. This gives an idea how much context the code requires you to understand, and in this less is more (better).
I hope to achieve a better plan for developing large scale web applications. At our firm we often struggle on how to best estimate and prioritize releases while maintaining a rigorous test suite to maintain existing functionality. I hope to contribute some of my experiences in dealing with these issues and learn how others tackle them.
I am very interested in TDD/BDD. Our company is investing in agile methodologies, and one of the things we want to learn is TDD. I have used it a bit in the past, but it is something I am always trying to improve on.
I am a very creative developer and am also looking forward to contributing my ideas & thoughts behind coding. I am continuously trying to learn, and bring disparate technolgies together, so I believe I can help people see ways of developing they may not have relized before.
What I plan to get out of the conference:
- Enhance knowledge regarding simple design and testing in the Enterprise.
- Learn latest trends/ideas in Agile/XP
How will I contribute:
- Exchange ideas with other Agile Practitioners
I work with software testing, specially as a consultant and a instructor, since 1993. I'm a PhD in "Collaborative Testing", and I'm specially interested about knowing different, simple and direct approaches to test software systems. I've developed a "software validation and verification processes architecture", that I've used as the basis of my consultancy activities in companies in Brazil, Uruguay, Mexico and Spain, and I'd love to share these ideas with the conference participants. In last August I've founded my own company, Herbert Consulting, focused on software validation and verification and Software Process Improvement programs.
Joining a team just starting an its first agile project, a portal, as a new tester, I'm out to learn how to participate in project/iteration planning as a tester, to recognize and guide toward testable, simple solutions, and to explore some of the options for finding and implementing the combination of test automation techniques we'll need for our project. I'll also be keeping an eye out for help determining the acceptance tests needed for stories. I'm expecting to be well along in exploratory work for automation at the several levels we may need, quite possibly including a spike of driving yet another web UI test tool from a JUnit, which could be of interest to others (along the lines described in Testing Extreme Programming, by Crispin and House). Even though the experience I'll have to share at the time of the conference will be limited, I look forward to drawing out information for discussion by others, and connecting with people with whom I can collaborate.
I am very interested in exploring the issues around doing agile design on large systems. I understand and fully agree with the idea of generating the design of a system as we develop it by using tools like TDD, software design principles and delay decisions. My questions revolve around applying this to large systems ( 200 + developers) and the special issues that this type of projects create for evolving design.
What you plan to achieve during the conference? I would like to have some great discussions on the benefits and use of unit testing in a market-driven economy, and why TDD/BDD/xDD is not so easily adopted in the organization.
How will I contribute? I can bring a lot to the conference, as a past developer, project manager, product manager and entrepreneur.
During the conference I would like to achieve an improved understanding of how to incorporate user interface design into the agile development process and how to improve testability of the user interface layer. I will bring with me a strong background in user interface programming and hope to contribute in other ways with my experience of being a developer on an agile project for 2 years now.
The main goal I have in attending this conference is to learn effective methods for applying the best practices of Agile development within a government organization (our client). I will bring to the conference many years of experience in applying varying levels of Agile practices in government, local and international organizations.
Learn current agile practices and understand and improve our own practices
To learn the about the latest tools and techniques in Agile. To enquire how Agile approach works in large projects ie how scalable it is/can be.
To find out how agile process works in groups and in practice. How does it scale when the number of participants in a project increase ? To find out what is the 'state of art' (both in practise and tools) in Agile.
At this year's SDT conference I'd like to run an approximately 3-hour-long project from start to end, XP-style. I have a laptop with tests and PHP code we can work with, I'll be the customer and the developers can work on the cards I describe. We'll move from ATs to UTs etc.
"What you plan to achieve during the conference?
To see how other people using simple design and test approach on daily basis. I believe design has to be good enough, without good foundation, I don't believe testing will play a big role. Will see if this meeting will change my view or not
How will you contribute to the conference?
listen/share/discuss
What I am looking for at the conference:
Our company is rehauling our flagship product. We are changing a 30 year old monolithic application (FORTRAN and C++) into a component-based application (C++ and C#). Our challenge is to "keep things simple" as we replace half a million lines of code. We have adopted iterative development and automated acceptance testing, but not continuous integration yet. I am specifically looking for techniques on continuous integration with component-based architectures. I'm concerned that we will slip into infrequent integration and eventually a big bang integration period toward the end of the effort. Other than one section devoted to this topic in Scaling Software Agility (Leffingwell) I haven't seen much on agile component-based architectures and their integration and testing.
How will I contribute:
I have been promoting agile practices since the late '90's (XP/Scrum and Crystal starting in 2004), so I should have a lot to contribute during discussions.
I am hoping to get new ideas for spreading testing practices to teams that are not yet test infected. I am also hoping to learn about new practices and tools. I will contribute to the conference by talking about my experiences working on Agile projects for the last 7 years. I will also contribute by talking about and helping to coordinate activities since I am very familiar with the open space conference approach.
Conferences (and contact with others in general) give me the boost to actually accomplish something on my projects. These days, this is most often Mayfly (http://mayfly.sf.net), an in-memory database intended for unit testing. So I'm hoping for technical discussions, as hands-on as feasible. I can contribute my usual session on unit testing of database code (I led such an open space session at XP Day), or if there are a lot of people with good ideas maybe I'd rather see if someone is looking for a pair for a short bit of coding, let them describe what they are working on, etc.
I plan to achieve an understanding of other software developers' point of views on topics about testing as it pertains to software development. I plan to contribute by actively participating in discussions about testing, and propose one or two open space topics that might be interesting to others and myself that i want to learn more about.
As a doctoral student in Information Systems at Kent State University, I am hoping to learn more about Extreme Programming, Agile Methods, and Simple Design and Testing. Have published two Conference Papers on Extreme Programming with insight from Chet Hendrickson and Ron Jeffries. Would like to attend this conference to learn more about these topics from practitioners.
I've been thinking a lot lately about the effect of behavior-focused development/design on the standard object-oriented constructs. For example: When using functional-style concepts in an OO language, where an object is a container for similarly focused behaviors, what is the role of the constructor? Could it be considered a currying function? Does a traditional n-tier (i.e. presentation, business, data layer-oriented) system truly fit a behavior-oriented, test-driven system. What are the roles of layers as refactoring brings more and more abstractions out? How do you decide when to split a collection of behaviors into several objects? What is meant by responsibility when creating behavior-based constructs in an object-oriented system? These are some of the thing that I've been thinking about in my day-to-day job over the last year, and I'd like to explore with some of the great people at SDTConf.
I hope to learn about some testing notions, new to me, that will give me some new energy to try some things. I expect to bring my usual combination of encouragement and inquisitiveness, with my purpose being to help people discover more about their own ideas and those of others. I'm moderately adept at testing and pretty good at simple design, and I'll bring what skills I have to bear on whatever comes up.
I come to this conference with a great deal of knowledge and experience in the areas of testing and simple design as practiced in Extreme Programing. And, even greater desire to learn more. I will expect to look for sessions where I can share and learn.
I am interested in discussions concerning how Behavior Driven Design can create simpler or more readable tests/specs. I am interested in exploring strategies people have used for creating testing DSLs. I am interested in the balance people choose when using mock objects and doing isolation testing. I am interested in conversations about identifying poorly tested or over-complicated designs and refactoring them towards their simpler essence. I have been using Rspec with Ruby on Rails for the last year, and I am eager to share how both of these have allowed me to work towards simpler designs.
Why am I coming? I miss Naresh.
Besides that, I feel this is an amazing conference format for sharing knowledge. It is in my best interest to share my knowledge. By sharing concepts with others, who then add their viewpoint and experience, everyone's knowledge is raised.
Topics:
Smart Defaults and Unobtrusive Confirmation: Have you ever noticed that gmail doesn't ask for confirmation? It just provides any easy, obvious way to undo. Rails is famous for it's convention over configuration. What are other scenarios that might benefit greatly from these practices? What is good/bad about these practices?
Fixtures, Factories, Mocks, or Stubs?
How do you manage your test setups? This will mainly focus on Rails, but should apply to any tests.
I believe that the current culture of most development organizations is to make design and testing (when it does that) more complex than it needs to be. Bringing a culture of simplicity to a team is the most difficult task.
http://www.dbbits.com/sdtconf-position-paper-2007.html
What you plan to achieve during the conference?
I just want to meet people, find out what problems they face in their work, and help them with those if I can.
How will you contribute to the conference?
I've got in mind two sessions: The first is a pairing simulation. The second is an exploration of "design sense," influenced by the Agile 2007 session by Michael Feathers and Emmanuel Gaillot.
I hope to strengthen my TDD and Design skills by participating in the online sessions, and discussing obstacles from past experiences. I simply don't feel I've had enough exposure to people using these practices in the real world.
GUI testing for different architectures in practice
Although I have been doing software development for many years, my testing and design skills are a bit behind my other skills. I hope to get some helpful ideas and guidance, and hope that my experience will also be helpful to others.
My colleague at AboutUs?.org, Ward Cunningham, asked me to attend the conference on his behalf. I hope to learn better ways to test web services user stories that involve many participants in many different roles. I plan to share the simple protocols we use to collaborate effectively across 12 time zones. I look forward to learning from Ward's peers and bringing back to our company the latest tricks that the agile community is using to boost productivity and morale.
What you plan to achieve during the conference?
I plan to gain practical knowledge on how to incorporate better testing practices into agile projects. Specifically, I want to learn about the limits of TDD/BDD and better understand agility from a true test perspective. The BDD community, in particular, is moving away from the term "test" and opting for "scenario" or "example/examplar" to describe what we normally call story tests and unit tests. So, how is the "traditional" unit testing done? How do developers and testers work together? How can agile teams best leverage the skills of testers? Can we achieve a sense of "flow" in agile testing through suitable practices and supporting tools?
How will you contribute to the conference?
I am an agile developer, primarily in C# and Java and have written many automated tests using xUnit, FIT and more recently xBehave. I am passionate about test automation and have developed "glue" to link FIT tables in Wikis to source code control systems, a NUnit runner for FIT tests and have started work on a consolidated test runner that can run NUnit, nBehave or FIT tests. I can contribute my experiences with and passion for automated testing and agile development.
In the last few months, we've made a number of interesting advances on these fronts. But as we move away from strict software development to more general design-driven projects, the mapping of XP becomes less clear. We're faced with increasingly interesting questions: What's the best meaning of "testing" in an open-ended computational sciences research setting? What's social norms might help enforce "agile" techniques in a public, open, distributed crowdsourcing project? In a supply chain, where contractors and subcontractors provide up- and downstream services to their partners, how might agility become contagious across boundaries between institutions?
These may sound philosophical, but as it happens they're driven by very practical projects where we develop real software and software-like artifacts. And in the end, I increasingly think they're the primary route "agility" (or whatever it becomes) will enter the mainstream."
What you plan to achieve during the conference?
As a college instructor, I would like to understand the practical issues associated with utilizing agile development methodologies. I would also like to discern the key agile concepts that we can incorporate into our IST curriculum.
How will you contribute to the conference?
I can provide an academic perspective of teaching development methodologies in the classroom and how agile concepts can be incorporated into our IST curriculum.
I would like to hear other from people's experience from applying the XP principles in the real development environment and present my own experience. Also I have a list of questions that I would like to discuss with others, mostly about removing impediments to XP implementation. Also would be interesting to see how many people use DbUnit? for database integration testing and what are good alternatives/compliments to it. I could also share my extensive experience on this subject.
I'm not familiar with the Open Space meeting techniques and would really enjoy learning about them in an experiential mode while also learning more about the XP concepts of Simple Design & Testing. I'm particularly interested in people's understanding of applying the concepts to ongoing work in projects involving large legacy codebases.
I am a student attending Penn State York. I will be taking a course next semester that will utilize Agile project management, and hope to get a good introduction to the methodology through this seminar.
I plan to acquire as much knowledge as I can in agile methodology. During the conference I will make an effort to elaborate on applying the concept(s) of agile methodology to a project I will be doing in the spring.
I plan on learning the fundamental principles of Agile development, and use these principles in future classes and throughout my IT career. I will bring the perspective of an interested student who has been taught various other development strategies.
I plan to gain more information about Agile development and its position in the real world. I hope to build on my knowledge learned from previous IST classes that I have already completed. I hope to use this new information in the rest of my IST classes like 440w and throughout my career in Information Technology field.
Having worked with the same group of people for a while, one tends to settle into a comfort zone. Attending this conference is my attempt to explore and exchange fresh thoughts, ideas and approaches with a fresh perspective. At the same time, I also look at this as a forum to share my experiences.