Newsflash: we need a new website
December 12, 2007 9:57 AM   Subscribe

Where is the best place to start learning Agile/Rapid Application Development (RAD) techniques when I've got one week to come up with a new website/CMS for our newspaper?

Our campus newspaper started putting things online using College Publisher about six years ago. But our editors don't like the user interface, there are ads all over the pages, and the company seems more interested in revamping the underpinnings every year than actually providing a good product.

So the goal: before next semester begins, we want a new content management system (CMS) that will allow us to present pages as we want, without ads (easy, it will be on our own server), and will allow us to import XML files that we generate with inDesign. It also needs to have an e-mail edition.

I know this should involve some Agile/RAD, but I've never had any first hand experience with it. I could build on top of some other CMS, but there's no way that I'm going to learn that much about a CMS in a week, and there's no way I'm going to deploy a website that I don't understand (because I will likely be the only person who understands it for the next five years). I'd prefer to use PHP, because I'm familiar with it. I have a good deal of experience developing websites, etc... and I'm confident I could get something that works just by pounding out code, even if its not very elegant. But I would like something elegant, and some experience with new styles of development.

What are some good resources I can get my hands on to better understand Agile or RAD and how to apply it to projects like this? Are there any frameworks that are particularly easy to learn (and any notable tutorials)? Bonus points if they make it easy to integrate AJAX (which I have almost no experience with) with the UI.

Any general advice for the project?
posted by Galt to Computers & Internet (14 answers total) 1 user marked this as a favorite
 
I'd launch into an explanation of both the terms you threw out, but I don't think it's going to help if you have a one week deadline. I think the development methodology you're looking for is "get the fucker done," pardon my French.

Agile development usually involves breaking development into functional pieces, creating those pieces, and then responding to client feedback and incrementally building on the base you've established. Radical Application Development is less a methodology than it is shorthand for tools or toolkits that give you drag-and-drop-style application creation or at least a framework (often using design patterns) to give your application a standard architecture. If you're using php, you might look at using Cake, but picking up a framework might be a tall order.

As for the week deadline, I'd say that this either needs to be amazingly simple and you throw it together using the PHP you know, possibly combined with something like Cake, or you need to find a CMS like Drupal that fits somewhat and then graft the bits on that you need. As it is, it sounds like a lot of work.
posted by mikeh at 10:07 AM on December 12, 2007


I think what you're looking for is more RAD than Agile. Agile software development is about steamlining the development process for software teams, not about making coding work faster or easier for a single developer. RAD tools may help you create a prototype of your site quickly, but generally there is less of an emphasis on the tools being easy to learn and more emphasis on them being easy to use once you learn them.

Also, writing an AJAX web app in one week with no prior knowledge of AJAX is going to be tough. The Google Web Toolkit is the easiest way I know of to create AJAX applications, but learning it in and creating a produciton-quality application with it in a week would be a challenge, especially if you don't know Java.

Basically there is no tool available that will make developing a website application easy enough to learn and write everything in a week. If it was that easy, people wouldn't have to spend so much money and time on development teams to write them.
posted by burnmp3s at 10:13 AM on December 12, 2007


Best answer: I agree with Galt. I think you're misunderstanding Agile/RAD in that, though it could certainly help you deliver faster as opposed to the traditional waterfall methodology, it's not necessarily going to help you get the job done in a week.

There really no time for you to worry about any kind of a "framework" here.

1) I would spend 1 day (or 2 max) interviewing the key stakeholders, (i.e. 1) the people whose approval you need to consider the job done. 2) People who will be using the system daily) and map out top 10 high level functional requirements. (NOTE: You really should spend 1 day on this, but if people are unclear on exactly what they want from the CMS system, you can reduce the risk by spending a little more time up front.

2) Spend 2 to 4 hours breaking those top 10 high level functional requirements into more detailed requirements and get a sense for the cost benefit ratio. (i.e., "This feature that x wants will take me 3 days to implement, but it's only a "it would be nice to have" feature.)

3) Spend 1 to 2 hours with the stakeholders and do a MoSCoW exercise, (Classify each requirement as Must, Should, Could, or Would) In one week, you'll probably have no time for anything except the Musts<> and perhaps some Shoulds

(NOTE: If you were doing Agile, this is where you would place each requirement in Iteration 1, Iteration 2, etc... where each iteration is relatively short in duration and you would be checking back with your stakeholders constantly)

4) Be ruthlessly honest! Don't promise more than you can deliver. Things that are classified as C or W will mostly be thrown out the window at this point. Focus on the Musts and some of the Shoulds.

5) Start coding away like mad. Buy lots of coffee, Red Bull, Rockstar, etc...
6) Have fun!

Hope this helps!

posted by apark at 10:28 AM on December 12, 2007 [1 favorite]


Ugh. Sorry to be brutally honest but this is a very familiar story. I wouldn't put money on a single developer getting a fully-featured CMS system up, functional, bug-free(-ish), buzzword-compliant and user-friendly in a month much less a week.

My advice? Ditch the buzzwords. Make the inDesign import work and get a system going that can manually-generate a single page from whatever the input ends up being, then spend your time getting that debugged. Don't bother with the MS part of CMS, just make the publicly-accessible parts look and work right, that's what users are going to be seeing.

Once you've got the core functionality (showing pages to users properly) working to everyone's satisfaction then you can think about adding a backend which might or might not involve AJAX.

Actual software recommendations: we use Symfony which is quite nice, has excellent documentation and seems to encourage reasonably good code.
posted by Skorgu at 11:12 AM on December 12, 2007 [1 favorite]


I could build on top of some other CMS, but there's no way that I'm going to learn that much about a CMS in a week

That pretty much says it all. In a week of starting from scratch, you won't have anything close to what you have now. If it has to be done in a week, focus on improving what you have or look at implementing an existing CMS or blogging engine. I've built a couple of large CMSes. The last one took 6 months from start to finish and that was with a team of experienced developers, designers and information architects working full-time on it.

I know the green-field, let's-do-this-right approach is attractive, all the more so when you're young, but do heed the advice in-thread.
posted by yerfatma at 11:17 AM on December 12, 2007


Any general advice for the project?


Yeah- restructure it into one that takes longer than a week. That's crazy. I realize this choice is probably guided by the directors feeling indignant about paying any more for that College Publisher service, but it's a bit late to be making that decision for next semester.

Aside from any specific methodology, here's what I'd suggest- don't tie your deployment to a new semester. Start building your site now, but do it in parallel with your existing site. Yes, this will create some double-work for some people, but cutting over to an entirely new, untested system that is bound to have some issues.

All those things being said, take a look at Drupal. It's not very hard to understand. Yes, it's got its share of annoying quirks, but so will whatever you build, and it'll do 95% of what you want out of the box. XML import will probably require some work, but I integrated some basic XML/XSL parsing functions into Drupal without much work.
posted by mkultra at 11:19 AM on December 12, 2007


There's no way you'll get that done in a week. I developed a newspaper for my college (W&M)'s newspaper and it took at least a month or two, and I started with Textpattern and wrote plugins to fill in the rest.

The closest you can get to doing this from scratch in a week is to use Django, but given that you probably don't have experience with Python and don't have access to a good VPS, use a PHP CMS like Textpattern and Drupal.

And try to articulate how this job is not a one-click software installation, or making a new page design, but making a working, detailed, and robust application from the ground up.
posted by tmcw at 11:28 AM on December 12, 2007


Response by poster: Ah, I think people are misunderstanding this. We do not pay for college publisher; they get all the revenue they want by placing ads on the content that we give them.

This is also not starting entirely from scratch - we've already thought a lot about what what we want in the website and how it could work. We have a page design, and a set of accurate requirements.

When I say I have a week, I mean that I have an week reserved where I can either do this, or sit on the couch watching movies and eating pints of ice cream every day. I have more time, and starting next semester I will have more people.

So what I'm really looking for is references to things that can help me do this better in the time that I have, and which have really small learning curves for someone who generally knows what they're talking about.
posted by Galt at 11:47 AM on December 12, 2007


Here's an important question to consider: assuming you are a student, is there anyone who will be responsible for the project after you graduate?

I head up the online publication of the newspaper for my university, and I have been responsible for moving us to College Publisher. (Believe me, our old "workflow"--if it can be called that--for getting the print edition online was absolutely awful and nearly completely manual static cut-and-paste type work, so College Publisher is a massive improvement, despite the ads.) Before that decision was made, though, we seriously looked into building something ourselves.

It sounds like you're in a similar situation that I was about a year ago, and while I can totally relate to your complaints about the system, there above question is an important one. Apparently a few years before I came to work here, our website was run by some student-built PHP/MySQL system. What happened was he built it, it worked while he was there, and once he graduated either there was nobody left who understood how to use it, or the system broke and nobody had the knowledge to be able to fix it. Whatever actually happened, the online version of the newspaper completely broke down and had to be rebuilt from scratch by people who didn't understand what they were doing, and ended up setting it up in a way that it took hours and hours of mindless repetitive work to get each issue online.

It seems to me that programming and web development knowledge is not something that college newspapers have in ready supply, and so it's a few lonely students who find their way into jobs running the website of a whole newspaper.

This was not something I understood from the get go, but eventually I came to understand that while I might be able to build something better than College Publisher if I worked my ass off for a few months, I can not guarantee that once I graduate there will continue to be people to maintain the system. If in 3 years our student media department finds itself without students who know much about computers, they can call up College Publisher, get trained, and the newspaper can still get online. To me, the choice ended up being for the longevity of the overall process of getting the newspaper online over the potential to make it work better in the short term.
posted by paullelujah at 1:14 PM on December 12, 2007


This is also not starting entirely from scratch - we've already thought a lot about what what we want in the website and how it could work. We have a page design, and a set of accurate requirements.

That's starting from scratch. Even with the best requirements documentation, the coding will take more than a week. Which leaves you with 0 days for QA. Everyone else here started off bright-eyed and idealistic. Sooner or later you start aiming for "the worst thing that could possibly work". The trick is to keep aiming between those, but with a week to do it, you need to work from someone else's base.
posted by yerfatma at 5:31 PM on December 12, 2007


Nah he's got an undisclosed amount of time and an undisclosed number of programmers with undisclosed levels of talent and experience. How on earth that's even remotely similar to the original question and how exactly we're supposed to offer organizational advice without knowing anthing about the participants, environment or scope of the task isn't exactly clear to me.

Most of the Agile buzz is poppycock IMO, but the scrum idea is sound even if it does have an idiotic name. Once a week everybody gets together and says, quickly, what they just did and what they're doing next. No more than a few minutes per person. Keeps everyone on the same page, enforces communication among team members and makes failing fast easier. Of course it only works if there's sufficient openness and rapport among the participants.
posted by Skorgu at 5:40 PM on December 12, 2007


Learning how to drive an existing CMS strikes me as a much smaller project than implementing a new one. If you can't do the former in a week, there is no way on God's green Earth you're going to accomplish the latter. Spend the week playing with Joomla, and slip the nonsensical deadline.
posted by flabdablet at 5:41 PM on December 12, 2007


Not to be a spoilsport, but as others have said, a week to come up with a clean online newspaper that has strong integration with outside data sources -- and adheres to an existing set of design mockups -- is at the ragged edge of the laws of physics. I'm a pretty hardcore Drupal hacker working with a team of hardcore Drupal hackers, and I'd shake my head and laugh if a client asked me that. I daresay that anyone with any existing platform would, unless it magically happens to fit your reqs already.

If there's any way you can convince The Powers That Be to accept a phased rollout -- bare bones functionality that you can get with an off-the-shelf OSS CMS, followed by additional features, followed by the import pipeline, followed by the pretty front end, etc. -- you'll be in much better shape. If you or others above you insist on the deathmarch, though, keep the following in mind:
  1. Figure out your data storage first.
  2. Have your smartest developer work on the import pipeline.
  3. Every feature you implement needs to be measured in developer-hours-to-implement. Remember that everyone is an optimist.
  4. Make sure the basics work before the shiny.

posted by verb at 9:26 PM on December 13, 2007


Oh, geeze. One person and one week, not several people. I guess #2 would be 'have YOU work on the import pipeline...'
posted by verb at 9:30 PM on December 13, 2007


« Older Sweet breath when I cry   |   open source program for rotating signups? Newer »
This thread is closed to new comments.