﻿<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>Ayende @ Rahien</title><link>http://ayende.com</link><description>Ayende @ Rahien</description><copyright>Copyright (C) Ayende Rahien  2004 - 2021 (c) 2026</copyright><ttl>60</ttl><item><title>jberke commented on Zero Friction &amp; Maintainability</title><description>Interesting insight, and it is the number one reason for sacrifcing quality that I have seen. And I'd love to work for a company in zero friction envirnoment but I've never found one.
  
  
Gotta love when contracts are signed and dates committed to without even discussing the possibility with someone famillar with the code base. 
</description><link>http://ayende.com/3320/zero-friction-maintainability#comment12</link><guid>http://ayende.com/3320/zero-friction-maintainability#comment12</guid><pubDate>Sat, 24 May 2008 04:15:06 GMT</pubDate></item><item><title>Mr_Simple commented on Zero Friction &amp; Maintainability</title><description>  
Oh, I forgot to add, that's why scientist have a short half-life at all jobs, they aren't interested in writing simple software.
  
  
Thankfully the solution to that is easy, go independent.  No boss and move on to the next job when you get bored.  That's what I do anyway.
</description><link>http://ayende.com/3320/zero-friction-maintainability#comment11</link><guid>http://ayende.com/3320/zero-friction-maintainability#comment11</guid><pubDate>Tue, 20 May 2008 15:09:08 GMT</pubDate></item><item><title>Mr_Simple commented on Zero Friction &amp; Maintainability</title><description>Exactly JP Hamilton.  
  
  
I always risk ridicule when I post because I'm usually oppossed to "rocket science" solutions.  
  
  
The suits always move scientist on to new projects, the juniors take over and kill the uber cool software, then the suits re-assign the scientist to get the now "pile of crap" software running again - of course with no time and no budget left.
  
  
There is nothing wrong with rocket science software at all - just dont use it on any business production system that you want to deliver and never have to work on again.  
  
  
Even juniors can keep simple software running - usually.
</description><link>http://ayende.com/3320/zero-friction-maintainability#comment10</link><guid>http://ayende.com/3320/zero-friction-maintainability#comment10</guid><pubDate>Tue, 20 May 2008 15:06:17 GMT</pubDate></item><item><title>J.P. Hamilton commented on Zero Friction &amp; Maintainability</title><description>Chad has it right 100% but I think it's even worse than what he describes. The way I see it is that a lot of companies do the exact opposite of what they need to do after an app has moved into production. They find the junior-most developers they can find to maintain it. It's crazy. They just spent a couple of million building the software and now they want to skimp on the part that counts the most.
</description><link>http://ayende.com/3320/zero-friction-maintainability#comment9</link><guid>http://ayende.com/3320/zero-friction-maintainability#comment9</guid><pubDate>Mon, 19 May 2008 14:16:26 GMT</pubDate></item><item><title>Jeremy commented on Zero Friction &amp; Maintainability</title><description>Another source of friction can be a changing external environment. Maybe the data volumes go through the roof (or were not properly quantified in the first place) or the use of the software has changed.
  
  
The design of a piece of software (nearly) always goes past the point of 'we really should refactor the design to cope with these new requirements' before someone actually does it.
  
  
Which brings another point: the design of a system is a living thing and will always degrade with respect to the requirements or the technology. The common enough idea that you get a bunch of smart developers to write a system and then carry on the maintenance of the software with (cheaper) mediocre developers is flawed. Design is an ongoing process that lasts the whole lifetime of a system
  
  
</description><link>http://ayende.com/3320/zero-friction-maintainability#comment8</link><guid>http://ayende.com/3320/zero-friction-maintainability#comment8</guid><pubDate>Mon, 19 May 2008 06:06:11 GMT</pubDate></item><item><title>Ayende Rahien commented on Zero Friction &amp; Maintainability</title><description>Joseph,
  
Huh? I am not following
</description><link>http://ayende.com/3320/zero-friction-maintainability#comment7</link><guid>http://ayende.com/3320/zero-friction-maintainability#comment7</guid><pubDate>Sat, 17 May 2008 07:09:52 GMT</pubDate></item><item><title>Ayende Rahien commented on Zero Friction &amp; Maintainability</title><description>Tobin,
  
Sure. Complexity is a huge thing as well.
  
I can't figure out what I am _supposed_ to do. Let us just write the business logic in the Button1_Clicked method
</description><link>http://ayende.com/3320/zero-friction-maintainability#comment6</link><guid>http://ayende.com/3320/zero-friction-maintainability#comment6</guid><pubDate>Sat, 17 May 2008 06:56:27 GMT</pubDate></item><item><title>Joseph Gutierrez commented on Zero Friction &amp; Maintainability</title><description>Coupled fitness landscapes
</description><link>http://ayende.com/3320/zero-friction-maintainability#comment5</link><guid>http://ayende.com/3320/zero-friction-maintainability#comment5</guid><pubDate>Fri, 16 May 2008 23:04:22 GMT</pubDate></item><item><title>Symon Rottem commented on Zero Friction &amp; Maintainability</title><description>I think the other point that's worth making is that the developers with a working knowledge of the application also rots over time.  The result is that people far down the track who have no historical understanding of the application's codebase need to make changes or fixes. Without a good, maintainable application design that is intention revealing a newer set eyes will take longer to get traction when attempting to get up to speed.
</description><link>http://ayende.com/3320/zero-friction-maintainability#comment4</link><guid>http://ayende.com/3320/zero-friction-maintainability#comment4</guid><pubDate>Fri, 16 May 2008 21:38:53 GMT</pubDate></item><item><title>Chad Myers commented on Zero Friction &amp; Maintainability</title><description>How many times have you experienced, or heard of a story where Company A hired brilliant architects/designers who built an amazing system and then eventually moved on to other projects or employers and the next wave of development team basically tanked the quality of the software?
  
  
Like you said, Ayende, it's not just enough to create a good design, you must create the design and the conventions and the tooling around it to make it clear to future waves of development teams what your intentions were and how to keep the software design in good fitness.
  
  
I like your previous posts about enforcing design conventions via tests to prevent future maintainers from violating those conventions that they might not have been aware of.
  
  
One of those tests is worth 100 pages of documentation, in my opinion.
</description><link>http://ayende.com/3320/zero-friction-maintainability#comment3</link><guid>http://ayende.com/3320/zero-friction-maintainability#comment3</guid><pubDate>Fri, 16 May 2008 19:50:10 GMT</pubDate></item><item><title>Tobin Harris commented on Zero Friction &amp; Maintainability</title><description>Wow, that's a *briliant* observation. It's going in my notebook. 
  
  
Time pressure is probably the major creator of environmental friction that leads the developer to subvert the design, have you talked about any others?  
</description><link>http://ayende.com/3320/zero-friction-maintainability#comment2</link><guid>http://ayende.com/3320/zero-friction-maintainability#comment2</guid><pubDate>Fri, 16 May 2008 17:39:53 GMT</pubDate></item><item><title>Graham commented on Zero Friction &amp; Maintainability</title><description>Excellent last paragraph at the end.  Very succinct.
</description><link>http://ayende.com/3320/zero-friction-maintainability#comment1</link><guid>http://ayende.com/3320/zero-friction-maintainability#comment1</guid><pubDate>Fri, 16 May 2008 17:21:32 GMT</pubDate></item></channel></rss>