Aghaster

Extreme Programming

9 posts in this topic

I was wondering if anybody has ever read books on extreme programming. I looked on amazon and there are a couple of books that look interesting, but I don't want to buy one at random. Does anybody has a suggestion? Thanks

0

Share this post


Link to post
Share on other sites

I can't recommend any books specifically but we tried it at the place I used to work. Back when were weren't overloaded with projects my boss and I did a lot of reading into agile development, played around with test and behavior driven development, and did some pair programming. For a while we tried implementing extreme programming, but with all the bureaucracy, scheduling conflicts, and the departments we were working for it never really worked out. If you have any specific questions I can try to answer them.

0

Share this post


Link to post
Share on other sites

I can't recommend any books specifically but we tried it at the place I used to work. Back when were weren't overloaded with projects my boss and I did a lot of reading into agile development, played around with test and behavior driven development, and did some pair programming. For a while we tried implementing extreme programming, but with all the bureaucracy, scheduling conflicts, and the departments we were working for it never really worked out. If you have any specific questions I can try to answer them.

I'm under the impression that a lot of big companies are imposing very heavy development processes that in the end kill productivity. I'm curious about extreme programming, as it seems to be a much more "dynamic" approach with the frequent releases and the rapid development cycle composed of small iterations.

0

Share this post


Link to post
Share on other sites

From what I've heard and seen most don't use agile practices, most of the companies using these are small companies or new startups. Agile programming in general, when done right can make people much more productive and get stuff done faster, with less work, and without as much stress. Most agile development focuses around the customer making sure that there is a constant feedback loop. This allows the developer to build exactly what the customer wants and make sure that the customer doesn't just complain at the end because what is delivered isn't what they meant. Extreme programming, and agile development, is nice because it gives developers a lot more freedom than in traditional corporate settings. The developers are not seen simply as monkeys typing on keyboards but instead are treated more as equals. You generally don't have managers who don't know what they are doing telling you what to do and you just doing it. There is a lot more freedom of expression generally and more discussion between all parties involved. If you haven't read it yet, you should definitely read "The Pragmatic Programmer".

Edited by livinded
0

Share this post


Link to post
Share on other sites

I was wondering if anybody has ever read books on extreme programming. I looked on amazon and there are a couple of books that look interesting, but I don't want to buy one at random. Does anybody has a suggestion? Thanks

Extreme programming explained, goes through a really high level approach. It is an easy read but if you are familiar with software methodologies it might be a little basic for you.

Software development tends to be moving away from these more agile methods and back to prototyping and waterfall approaches (at least in my industry). This is due to the fact that we have been doing more planning, analysis, and design; and offshoring implementation and support to India. I have noticed this trend with other companies in my industry too. The waterfall model is coming back into trend because it is costly to apply changes with the human communication gap and server load across sites. User feedback is still important, but increasingly less so. We have been doing all the UML here in the states, but leave a lot of the basic coding to India. After all, coding really is the easiest part of software development and requires the least training. (I sometimes long for the days when that was all I did all day)

0

Share this post


Link to post
Share on other sites

All my experience with outsourced programming has been extremely negative and I would never recommend doing it for anyone. The quality of code is generally much worse that what you would see from a decently trained software engineer here and in general the work that is done is very different. People in the countries where most of the work is outsourced to are very literal and not creative at all. The software engineers there don't really know how to do anything but follow directions so you need to be very explicit with them and say exactly what you mean. There is no creativity and no real problem solving skills. Like I said above, you're more likely to see agile development in smaller shops, but I would definitely not say it's dying off.

0

Share this post


Link to post
Share on other sites

All my experience with outsourced programming has been extremely negative and I would never recommend doing it for anyone. The quality of code is generally much worse that what you would see from a decently trained software engineer here and in general the work that is done is very different. People in the countries where most of the work is outsourced to are very literal and not creative at all. The software engineers there don't really know how to do anything but follow directions so you need to be very explicit with them and say exactly what you mean. There is no creativity and no real problem solving skills. Like I said above, you're more likely to see agile development in smaller shops, but I would definitely not say it's dying off.

I completely agree, with everything here. Outsourced programming is not the superior method of programming. I wasn't really saying what I thought the Walden Pond-ish utopia of development was, I merely said what is practical and what development seems to be migrating to. It's not as black-and-white as agile is always best.

Unfortunately, quality is not always as important as the bottom line. I have read the books like "Quality is Free" by Phillip Crosby, but I do not think all of it holds true in software development, especially in our current economy. If the software is core to your business needs then coding it in-house is probably needed, but if it is not core to your business then a software engineer may need to yield to an economic investigation committee. For example, industries like energy, telecommunications, agriculture, and manufacturing may have supplemental software development needs. If the cost of product failure is lower than the increased cost of in-house development, offshoring may become a necessity.

I agree that you do need to be very explicit in your requirements, both functional and design. In this case, a good set of UML documents should lay out subroutines, functions, objects, databases, etc before a single line of code is written. The program for all intents and purposes should basically be written, (except for the writing it part).

I hate to admit my ethnocentrism, but I also agree with the lack of creativity in foreign programmers. I used to believe that this was confined to India because programmers were often of a lower caste than their management and as a result rarely questioned them. However, I have found this lack of creativity in all of the BRIC nations I have dealt with, and also surprisingly even in Japan. I now think this is due to our own culture and our history of "cowboy" coding.

I also agree that you will see agile more in smaller shops. Especially in the software industry where it may be part of your business model. Development should really be done on a case by case basis. Before you determine methodology you really need to ask questions like: What is the release cycle? How many layers are there? When do you need to involve your users? What are the risks of fixed staffing on this project? What is the development structure? Is this a newer technology?

Staffing is the largest part of the decision. If you have a fixed number of software engineers you really need to make the best use of their time. Is coding user interfaces, formatting text colors in CSS, or writing foreach statements really the best use of the time of a software engineer with years of development experience? These are entry level coding practices that can be easily offshored. Experienced developers should be normalizing databases, defining software structure, reducing process time, defining efficient SQL queries, developing complex mathematical functions, etc.

0

Share this post


Link to post
Share on other sites

If the cost of product failure is lower than the increased cost of in-house development, offshoring may become a necessity.

I agree that you do need to be very explicit in your requirements, both functional and design. In this case, a good set of UML documents should lay out subroutines, functions, objects, databases, etc before a single line of code is written. The program for all intents and purposes should basically be written, (except for the writing it part).

I hate to admit my ethnocentrism, but I also agree with the lack of creativity in foreign programmers. I used to believe that this was confined to India because programmers were often of a lower caste than their management and as a result rarely questioned them. However, I have found this lack of creativity in all of the BRIC nations I have dealt with, and also surprisingly even in Japan. I now think this is due to our own culture and our history of "cowboy" coding.

I'll echo this general sentiment as well. With the Indians that I have contracted work out to, directions need to be EXPLICIT and be prepared for whining and/or increased fees if you thought something that, although was not literally expressed, you assumed they would understand and implement.

However, they are a customer-centric culture overall, and will do what it takes to appease the customer, ala the Japanese. And of course, their fees and speed of execution are phenomenal which keeps me going back to them for projects.

0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now