One of the cornerstones of XP is to have a customer onsite that knows what they want. You won't find out everything you need to know if you only gather requirements up front; having the expert always available to you allows you to fill in these gaps. And since you have the customer onsite, it's sensible to do less of the upfront work. You just get right into implementing the most important feature.
Whether or not you'll be able to get an expert is another question. But if you read Agile Project Management and XP Installed, they both offer solutions to that... If you can't have a customer onsite, find someone to act on behalf of the customer. Highsmith refers to this person as a Product Manager.
Regardless, with XP/Agile, you get MORE customer input. And you still get it early. If you don't have the tight feedback loop, you're not following the Agile methodology.
The example you've given is what XP/Agile are trying to solve. Get the customer to tell you what they want, then do the simplest thing that will work to deliver that value to the customer. Overly broad solutions don't happen. Current solutions are broadened when necessary.
You can't do XP/Agile without a customer telling you what they want. The first three chapters of Extreme Programming Installed drive this point home, I suggest you read them.
I hope you always pay in cash then... If you've ever used a credit/debit card or a cheque, they have your real info and all your purchases linked to that.
This past semester, I took a class where we did a lot of AVR programming. Since I finished that class, I've been looking to continue this as a hobby. But I had no idea what would be some fun and useful embedded projects. I'm not expecting that to come directly from this magazine... But I'm hoping that there's something I can make, and then improve on by throwing a micro into the mix:-)
If anyone has anymore resources for the wannabe-hobbyist, I'd like to know!
Heh, I sooooo totally agree. I'm in the same situation, where I work most people use Netbeans, and they're totally dependent on it. It gives them all sorts of problems, but they can't give it up. And it's a pain for me, because I can't use some language features (mainly assertions) because they'd have to reconfigure Netbeans to compile with -source 1.4. However, I still use Netbeans, but just as an editor. It's on-the-fly syntax checking & code completion are useful.
I've been playing with Netbeans 4, and I love it. The free-form projects are what I like, because I can just plug in my ant script run targets from inside Netbeans. I'm going to try and get everyone onto Netbeans 4... Life will improve then...
The thing is, most thing outside of editing code are done better by a separate tool. Why use Netbeans' internal instance of Tomcat when you can install and run a real instance of Tomcat just as easily? Why use Netbeans' debugger when JSwat is better? Why use Netbeans' CVS support when the command line cvs, or WinCVS does it better? I guess not everyone has the old Unix mindset.
>However you have to be a master of the tool, rather than its slave unsure of how it does its magical stuff.
This is the key... The problem is that those who depend on IDEs can't function without them. You aren't a master if you can't do the task without the IDE. And if you can do it without the IDE, then it isn't really a crutch anymore, right?
>I've never really got why the die-hards hate any sort of automation in their environments.
They LOVE automation... They just want complete control. IDEs almost never give you that. make (or ant or whatever) is the ultimate automation environment, and it gives you that control. Sometimes you have to write code to do your task for you, and the problem with IDEs is that they rarely let you plug that functionality in easily.
>For instance, if you're in maintenace mode on a large codebase which you know nothing about, and you change a method's behaviour, what upstream code will that affect?
Unit testing;-) But the Eclipse feature you mentioned is still extremely useful, and I don't think any dev be opposed to that, because it doesn't modify your code unexpectedly. It's when your IDE changes code silently when this becomes a problem. I've had Netbeans mutilate my tag libraries before. Stupid Netbeans (although version 4 is very promising).
THIS IS MY DREAM. The only thing that has ever made me doubt my career choice has been my perception that I'd have to live in the city to be a software developer. If I could live in small town Alberta/Saskatchewan and write software, I'd be one step closer to living the dream.
On that note, if anyone located in rural western Canada is looking for a developer, PLEASE EMAIL ME. MFJasonB-at-gmail.com
PS - WTF is up with people talking about the suburbs as if they're rural areas?
Sooooo wrong. A perfectly efficient electrical heater would turn all electricity into heat that is distributed to it's surrounding almost immediately. But some of that heat is held in the material of the heater itself, and that heat will take a long time to be distributed. Especially if some parts of the heater have insulation at points (to prevent fires or so you don't burn yourself when you touch it).
While a computer can indeed heat a room, it's hardly efficient. It holds a fair bit of heat in itself that won't get distributed for a long time. A computer most definitely can heat a room, but it is not an efficient electric heater.
>And how do you make money? By making a product that people want to buy.
No, they make money by making a product that advertisers will pay to put their names on. (I am not the grandparent, BTW.) And like the grandparent said, they make people want a product, not making a product people want. They have created the demand for empty partisan tabloid bickering by being the loudest and simplest voice.
Okay, this has to be the funniest thing ever. This comment gets modded to +1 Insightful, while the parent (which this comment proclaimed should be modded up) remains unmoderated. LOLERZ
One of the cornerstones of XP is to have a customer onsite that knows what they want. You won't find out everything you need to know if you only gather requirements up front; having the expert always available to you allows you to fill in these gaps. And since you have the customer onsite, it's sensible to do less of the upfront work. You just get right into implementing the most important feature.
Whether or not you'll be able to get an expert is another question. But if you read Agile Project Management and XP Installed, they both offer solutions to that... If you can't have a customer onsite, find someone to act on behalf of the customer. Highsmith refers to this person as a Product Manager.
Regardless, with XP/Agile, you get MORE customer input. And you still get it early. If you don't have the tight feedback loop, you're not following the Agile methodology.
The example you've given is what XP/Agile are trying to solve. Get the customer to tell you what they want, then do the simplest thing that will work to deliver that value to the customer. Overly broad solutions don't happen. Current solutions are broadened when necessary.
You can't do XP/Agile without a customer telling you what they want. The first three chapters of Extreme Programming Installed drive this point home, I suggest you read them.
It's true!
I read it on another site... Except THEY ONLY POSTED THIS FACT ONCE!
Computers can do a lot.
Good on ya then :-)
Do you pay with a credit/debit card? They have your real info if so.
I hope you always pay in cash then... If you've ever used a credit/debit card or a cheque, they have your real info and all your purchases linked to that.
LOL
$20 says the grandparent and parent are the same person.
Do these projects end up belonging to the company or the developer? It should be made clear.
This past semester, I took a class where we did a lot of AVR programming. Since I finished that class, I've been looking to continue this as a hobby. But I had no idea what would be some fun and useful embedded projects. I'm not expecting that to come directly from this magazine... But I'm hoping that there's something I can make, and then improve on by throwing a micro into the mix :-)
If anyone has anymore resources for the wannabe-hobbyist, I'd like to know!
You don't need an IDE to do a step through of your code, you just need a debugger. jdb could have done the job. Or JSwat, if you want to go graphical.
I personally use JSwat... jdb isn't as nice as gdb.
Seriously... WTF?
> Most kids don't naturally have a since of focus if they have the chance they will do other things that are more enjoyable then homework.
Finally, a good use for Windows XP Starter Edition!
It's only a matter of time until we have to call it GNU/WIPO.
Heh, I sooooo totally agree. I'm in the same situation, where I work most people use Netbeans, and they're totally dependent on it. It gives them all sorts of problems, but they can't give it up. And it's a pain for me, because I can't use some language features (mainly assertions) because they'd have to reconfigure Netbeans to compile with -source 1.4. However, I still use Netbeans, but just as an editor. It's on-the-fly syntax checking & code completion are useful.
I've been playing with Netbeans 4, and I love it. The free-form projects are what I like, because I can just plug in my ant script run targets from inside Netbeans. I'm going to try and get everyone onto Netbeans 4... Life will improve then...
The thing is, most thing outside of editing code are done better by a separate tool. Why use Netbeans' internal instance of Tomcat when you can install and run a real instance of Tomcat just as easily? Why use Netbeans' debugger when JSwat is better? Why use Netbeans' CVS support when the command line cvs, or WinCVS does it better? I guess not everyone has the old Unix mindset.
>However you have to be a master of the tool, rather than its slave unsure of how it does its magical stuff.
;-) But the Eclipse feature you mentioned is still extremely useful, and I don't think any dev be opposed to that, because it doesn't modify your code unexpectedly. It's when your IDE changes code silently when this becomes a problem. I've had Netbeans mutilate my tag libraries before. Stupid Netbeans (although version 4 is very promising).
This is the key... The problem is that those who depend on IDEs can't function without them. You aren't a master if you can't do the task without the IDE. And if you can do it without the IDE, then it isn't really a crutch anymore, right?
>I've never really got why the die-hards hate any sort of automation in their environments.
They LOVE automation... They just want complete control. IDEs almost never give you that. make (or ant or whatever) is the ultimate automation environment, and it gives you that control. Sometimes you have to write code to do your task for you, and the problem with IDEs is that they rarely let you plug that functionality in easily.
>For instance, if you're in maintenace mode on a large codebase which you know nothing about, and you change a method's behaviour, what upstream code will that affect?
Unit testing
THIS IS MY DREAM. The only thing that has ever made me doubt my career choice has been my perception that I'd have to live in the city to be a software developer. If I could live in small town Alberta/Saskatchewan and write software, I'd be one step closer to living the dream.
On that note, if anyone located in rural western Canada is looking for a developer, PLEASE EMAIL ME. MFJasonB-at-gmail.com
PS - WTF is up with people talking about the suburbs as if they're rural areas?
>There's a reason cost of living is so cheap... it's because there's nothing to do there, and the quality of life is decreased.
The great thing about living in Hicksville is that there aren't people like you who believe that bullshit. HOLLA!
LOL, yeah, your money and workload (for your entire) is sooooo much tougher than someone who has kids.
LMAOnnaise
5/5
super lolerz 4 real
Sooooo wrong. A perfectly efficient electrical heater would turn all electricity into heat that is distributed to it's surrounding almost immediately. But some of that heat is held in the material of the heater itself, and that heat will take a long time to be distributed. Especially if some parts of the heater have insulation at points (to prevent fires or so you don't burn yourself when you touch it).
While a computer can indeed heat a room, it's hardly efficient. It holds a fair bit of heat in itself that won't get distributed for a long time. A computer most definitely can heat a room, but it is not an efficient electric heater.
I had this done in a dentist's chair, and it went quite well.
>And how do you make money? By making a product that people want to buy.
No, they make money by making a product that advertisers will pay to put their names on. (I am not the grandparent, BTW.) And like the grandparent said, they make people want a product, not making a product people want. They have created the demand for empty partisan tabloid bickering by being the loudest and simplest voice.
But for every second you gain in performance, you will lose thirty seconds fighting with your OS.
Okay, this has to be the funniest thing ever. This comment gets modded to +1 Insightful, while the parent (which this comment proclaimed should be modded up) remains unmoderated. LOLERZ
I thought this article would be about a cereal from Apple :-(