Articles Feed

Authors

Categories

Maturing the Manifesto

by: doug | August 27th, 2008 | 1 comments »

There has been an interesting discussion happening about adding a 5th value statement to the Agile Manifesto. Uncle Bob Martin proposed this addition earlier this month at Agile 2008. The proposal has centered around the idea of craftsmanship or professionalism. In his keynote, Uncle Bob proposed that we value “Craftsmanship over Crap” and in a later blog post suggested “Craftsmanship over Execution.” I strongly agree with the call for more professionalism and craftsmanship amongst software developers.

The original value statements are comparative. The things on the right still have value, but the things on the left are valued more. “We value working software over comprehensive documentation.” I think what has happened is that we have found something we value MORE than “working software.” We value well-crafted software over working software. It’s very important that the software works, but even more important is that the code is clean, that it is easy to read and therefore easy to change.

I’ve been reading “The Craftsman” by Richard Sennett. I’ve found a great definition of craftsmanship. “They are dedicated to good work for its own sake” (Sennett 20). A craftsman is driven by quality. Quality software is software that both does what is is supposed to (works) and is clean and easy to continue to work with.

This has me wondering about the other 3 value statements in the manifesto. Are there things that we value more than those things on the left hand side? We are learning day by day better ways of doing software, so what have we learned since 2001? We have a good idea about how Craftsmanship shapes the way we think about ‘working software.’ How can the idea of Craftsmanship change how we think about ‘responding to change’, ‘individuals and interactions’, and ‘customer collaboration’?

Sennett, Richard. The Craftsman. Yale University Press. New Haven and London. 2008

How Paul started coding

by: paul | August 13th, 2008 | 0 comments »

Tagged by Micah Martin

How old were you when you started programming.

I was around 12

How did you get started programming.

Whenever I would visit my grandmother growing up, one of the highlights was she had space invaders on her computer. Once, my Uncle Don saw me captivated by space invaders and decided to show me how computer games/application are written. He pulled up a command prompt in DOS and started writing QBasic code to create a simple application. I was amazed that it was so easy to talk to a computer. I wanted to do it myself.

What was your first language?

BASIC

What languages have you used since you started programming?

Java, C++, C#, SAS, JavaScript, CSS, HTML, Ruby, C, Basic, Python, Assembly Language, Visual Basic, SQL, ASP

What was the first real program you wrote?

In school I wrote a Jabber client in C#. I was impressed by the drag and drop rich client tools in Visual Studio. That lasted about a day.

What was your first professional programming gig?

Working for a client project with Object Mentor. The first team I was on included Micah Martin, David Chelimsky, Tim Ottinger, Dave Astels, Craig Demyonovich, James Grenning, and Dean Wampler. I had more than just a few mentors to learn from. It was an awing experience for me seeing how great coders code.

If there is one thing you learned along the way that you would tell new developers, what would it be?

Play well with others. It takes teams working well together to create most meaningful software.

What’s the most fun you’ve ever had programming?

Working with the 8th Light team on a project. Many times seeing the requirements for a story, I will say to myself, “can that even be done”? After seeing creative solutions from the team, it has taught me if you are working with good people and good tools, there are only endless solutions. The most amusing thing to learn about programming is if something isn’t all ready there, invent it.

Tagging: Adam Wonak, Jim Suchy, Bob Payne

How Doug got started programming

by: doug | August 8th, 2008 | 0 comments »

Tagged by Micah Martin

How old were you when you started programming.

When I was about 11 or so I bought a Color Computer III at a garage sale. I started typing in some basic programs that I found in a math text book or something. I had no disk or tape drive, so I had to start over every time I turned the computer on. I don’t remember what the program did. I do remember playing the game with the bouncing ball, paddle and busting up bricks.

How did you get started programming.

I started writing static web pages somewhere around 1995. I was the president of my high school’s computer club and we built the first every website for Jacksonville High School, complete with a presentation to the school board. I’m pretty sure the site had blinking text.

We also started learning C++ in the club. We didn’t have a text book, but our sponsor, Robin Manker, would print out sheets each week for us and we’d bind them into one of those plastic spiral bound things that you needed the machine to open up the binding.

What was your first language?

BASIC

What was the first real program you wrote?

Like others, I’m not sure what makes a program ‘real.’ I remember that my first C++ exercise was a Fahrenheit to Celsius converted.

What languages have you used since you started programming?

BASIC, ADI Sharc assembly and other uber-fun machine languages, C, C++, Java, Ruby

What was your first professional programming gig?

My first job was writting DSP (Digital Signal Processing) algorithms in assembly. The first thing I worked on was the compressor algorithm, I implemented time sharing on the averaging algorithms and reduced the cycle count by 30% or so. The processor was an Analog Devces Sharc. It had two data buses and two ALUs, so you could basically make two read/writes from memory and two arithmetic calculations per clock cycle. We’d write lines of code that looks like this:

r1 = r2+r5; r3=r6-r7; dm(i6) = r2; r5= pm(i3);

Everyline of code would be followed by a line of comments explaining the line. It was painstaking work, but It’s how I learned to be methodical and linear. It was also a whole lot of fun to listen to your code after you finished it.

If there is one thing you learned along the way that you would tell new developers, what would it be?

I still remember one of the first things Robin, the first person to teach me how to code used to say. I still pull it out often. It went something like this.

1) There is a teapot sitting on the counter. How does the programmer solve the problem of making tea? He picks up the teapot and sets it on the stove.

2) There is a teapot sitting on the floor. How does the programmer solve the problem of making tea? He picks up the the teapot and sets it on the counter. The he says “I’ve solved this problem before”

What’s the most fun you’ve ever had programming?

Kevin Moore was one of my first mentors when I started working at Shure fresh out of college. These was a time, when we would stay late every Tuesday night and code together. He was the first one to tell me about XP things like “What’s the simplest thing that could possibly work” and pair programming. Late on Tuesdays we didn’t have any managers telling us to stop wasting time with two people at one computer. We paired together writing the microcontroller code for the DFR22. We had a lot of fun and pulled of a pretty amazing project in something like 8 months.

Up Next

Note sure if they have blogs or not: Kevin Moore, Robin Manker

That's Not Agile! Bibliography

by: doug | August 7th, 2008 | 0 comments »

Mondo Cane. 1962. http://www.youtube.com/watch?v=fSZXe5NjqAw]

McConnell, Steve. Cargo Cult Software Engineering. IEEE Software. March/April 2000. http://www.stevemcconnell.com/ieeesoftware/eic10.htm

Frye, Colleen. Alistair Cockburn on what’s agile, what’s not. 2007. http://searchsoftwarequality.techtarget.com/news/interview/0,289202,sid92_gci1255480,00.html

Beck, Kent. Keynote Address. RailsConf 2008. http://www.viddler.com/explore/gotthingsdone/videos/5/

Vandegriend, Basil. To Be or Not To Be Agile. http://www.basilv.com/psd/blog/2007/to-be-or-not-to-be-agile

Spolsky, Joel. From the “you call this agile?” department. http://www.joelonsoftware.com/items/2006/11/15.html

Webber, Jim, Ph.D. Agile Atheism. http://jim.webber.name/2006/11/30/a7ccc5a7-08a8-4594-a347-5f78e13f04f2.aspx

Martin, Robert. The Founding of the Agile Alliance. http://blog.objectmentor.com/articles/2007/07/10/the-founding-of-the-agile-alliance

Fowler, Martin. Writing The Agile Manifesto. http://martinfowler.com/articles/agileStory.html

Holy Bible. Matthew 15:1-11. http://www.biblegateway.com/passage/?search=matthew%2015:1-11;&version=31;

####