It looks like you're new here. If you want to get involved, click one of these buttons!
In today's Developer Perspectives, we're given an inside look at the concept of "agile development". The idea that a company can somehow be agile seems quite foreign but is ably explained. Find out what agile development is and how it is best accomplished. Leave us a comment or two!
“Agile” was a buzzword a couple years ago, and you still find it clinging like a barnacle to company descriptions. It became a buzzword mainly because it evoked a software development process called (wait for it) “agile development.” However, actual agile development involves close communication with clients, an iterative process that turns on a dime based on feedback, high adaptive employees, and tangible/frequent results.
Read more of Sanya Weathers' Developer Perspectives: The Agility of a Startup.
Comments
So good to hear from you again Ms. Weathers. Do come back more often.
From my perspective, one significant aspect of agility in development is that when an issue is identified, it can be ripped out and restructured quickly rather than having a "meeting" to look at alternatives for a resolution that will take months to put in place.
Call the engine person, the artist, the designer, and say "okay, this is crap, fix it". ... and I need it done by Tuesday *grin*.
The source of agility in small, start-up companies is:
a) Few employees - Effective org-wide communication is much easier and where consensus needs to be sought it can be reached far quicker as there are less people to consult.
b) Few levels of management - There aren't dozens of coordinators, supervisors, managers, leads, heads, directors who all want to ratify decisions for fear of letting a bad one slip through the net and getting the boot for poor diligence.
c) Closer working relationships - Start-ups don't usually have a global network of offices, some barely have a premises at all, so everyone gets to know each other
d) The deal-maker for me... The head of the start-up usually has a large financial and personal interest in the company in terms of sinking their own cash into the business and actually being interested in the product(s) (e.g. computer games). They also tend to be familiar with EVERY employee (and vice versa) and have significant input into the design and marketing of the product line, even at a granular level.
If the person heading-up a start up is knowledgeable about the product, in-touch with the customer base (knowing what they actually need, not necessarily what the customer themselves thinks they want), driven and highly intelligent, there's a strong chance of success. Add a few talented, motivated and accountable staff who are close as friends and the likelihood of success increases further.
I'm sick of hearing/reading his name everywhere, but Steve Jobs is a close match for this description, and he did alright didn't he?
Aryas
Playing: Ableton Live 8
~ ragequitcancelsubdeletegamesmashcomputerkillself ~
Ask the dead foxconn employees... Steve Jobs was for sure not interested in agile development, as he never was a software engineer. He was a die-hard manager, and did well for the company, but not for the employees. I don't like him.
But I like agile development. Though managers hate it usually, as it shows too clearly how obsolete they are...
Currently playing: EverQuest
Waiting for Pantheon: Rise of the Fallen
Hoist the Jolly Roger and walk the "let's call a meeting" types off the plank.
Instant agility.
Self-pity imprisons us in the walls of our own self-absorption. The whole world shrinks down to the size of our problem, and the more we dwell on it, the smaller we are and the larger the problem seems to grow.
I think a distinction has to be made between "agile development" and "agility in operations."
"Agile development" is just bad for morale, bad for the product, bad for customers and bad for the bottom line. Case in point, SOE's mishandling of Star Wars Galaxies. They were agile, no doubt. They changed direction 180 degrees, pursuing a new design philosophy in record time in response to the success of games like WoW.
They had such an agile culture there that anything, literally anything, could (and did) change at any time. But what happened? Some of their best designers left, and who could blame them? It's hard to create something that works in response to the design philosophy, only to discover that it counts for nothing, because the producer decides to take the game in a new direction.
And while it seemed like good sense at the time to rework the game in response to WoW's success in 2005, the product itself became a haphazard mess of code with poor quality control. On the one hand, they were agile enough to change, but this agility in design showed in the hapazard nature of the product.
And the customers were utterly confused and many, to this day, felt betrayed. Who can blame them? Their confidence in what they bought and played was sacrificed to SOE's need to be agile with all aspects of their development.
As a result, the game not only failed to accomplish its objective to increase subscribers to over 1 million, it lost a significant amount of the 200k subscribers it had. And for what? All to prove a point (or rather disprove a point) that developers possess a prerogative to change without notice, which is the essence of agility in development.
There's something to be said for having a solid plan and sticking to it, of knowing who you are and believing in the vision. Agile development doesn't enhance these qualities, it undermines them. It causes developers to be reactive, not proactive.
Of course, there's a difference between "agile development" and "agility in operations." The article shows how "agility in operations" can be beneficial to a development house, but I would argue that you can only have agile operations when your core plan and identity is rock solid and not subject to change.
__________________________
"Its sad when people use religion to feel superior, its even worse to see people using a video game to do it."
--Arcken
"...when it comes to pimping EVE I have little restraints."
--Hellmar, CEO of CCP.
"It's like they took a gun, put it to their nugget sack and pulled the trigger over and over again, each time telling us how great it was that they were shooting themselves in the balls."
--Exar_Kun on SWG's NGE
My comments were with regards to an agile organisation, which I think is what this article is alluding to, rather than the agile software development ethos.
My Jobs point was that he was hands-on and involved at all levels within Apple. I certainly don't feel he was a saint but for every p!ssed off ex-Foxconn employee, there are a lot of people who are very happy with the products Apple produced during his tenure. Regardless, I was using him as an example, not holding him aloft as a hero.
As for agile software development eliminating the need for managers, that depends on your definition of 'manager'. Management is a process, not necessarily a role. Even an individual operating on their own has a manager; themselves.
Aryas
Playing: Ableton Live 8
~ ragequitcancelsubdeletegamesmashcomputerkillself ~
Very interesting article, Sanya. I've missed reading your articles.
I worked in the civil service (UK) in my twenties, and that was just about as polar opposite to an "agile" company as you could get. Yes, I know the civil service is not directly comparable to the example given by Sanya, but my point is that once a company/organisation/institution becomes too big and too bound by red-tape, it loses efficiency and flexibility.
I think you have quite a misconception about agile SW development. Did you read the article?
"However, actual agile development involves close communication with clients, an iterative process that turns on a dime based on feedback, high adaptive employees, and tangible/frequent results."
Did you ever notice SOE involving the clients, which in their case are the players of their games? I certainly did not. That is why their drastic changes in SWG failed (and of course also, because these changes were driven by vision-less plagiarism). Because they were hiding in their ivory tower and turning their flag into the wind - and NEVER asked their customers.
They don't have agile development, they have agile management which means "orders change daily, according to what the tie-bearers (that never play games themselves) think today, what will make them the most monies". A strategy if you want to call it that, that certainly didn't yield the expected results. And rightly so!
surely the core principle of agile development is getting rid of the old waterfall model and essentially doing it in reverse
eg..
test->code->design
As much as I don't really like someone telling me what to do, I kinda think I could use a manager for some of my projects because I could easily take the title of worlds best procrastinator.
I'm completely agile though :P
You know I'm not sure if many people conform to the waterfall model because it doesn't seem to actually work anyways. You should look up the sashimi waterfall model, because that what it really feels like in some of these older software developers.
Anyways I would love to give agile development methodology a shot one day. It would really elleviate the issues that tend to hamstring my job. An example of a bad day would be the following, Management has tunnel vision and delusions of grandeur to scheduling, Marketing wants it shinier even at the expense of functionality, Developers refuse to budge on issues because it's always been that way, Testers fighting me on the resolution of a minor issue, and working with out sourced developers who are barely given a proper spec. All these make my job of QA management a nightmare sometimes.
I doubt it will fix all those issues but I would be willing to give it a shot.
With all that said I still love my job but felt like I needed to vent because it's monday! lol
Edit: Didn't see the date of the OP until now lol