开发者

What is the difference between agile and architecture-centric software development? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.

Want to improve this question? Update the question so it focuses on one problem only by editing this post.

Closed 5 y开发者_高级运维ears ago.

Improve this question

From what I have read, "agile" seems to be just a euphemistic term for hack-and-slash development. In other words, where architecture-centric development is based around design documents, agile development has no "design," per se, and the code is just hacked together until it passes tests. I really hope this is not the case. Clarification would be much appreciated. Thanks.


I don't know where you're getting your information, but it's not from anybody who's properly implemented an agile development team :)

Agile doesn't mean there are no design documents. Rather, the design documentation evolves iteratively over time. The idea is that the very beginning of a project, before anybody has had any experience with it, is the absolute worst time to create a concrete and detailed design. There are too many variables. Instead, a high-level design is created which takes into account those variables and address up-front that those uncertainties will be discovered in time.

As a basic scenario, at the start of a project we would give high-level estimates about the size of that project without any concrete numbers. "This part is small, that part is medium, that part is super extra large" etc. The business sets the priorities accordingly. Say they originally wanted the super extra large part first, but now that they know it's a ton more effort than the medium part then they'd rather have the medium part first just to get something to market. Save the rest for later.

This saved them the time of creating a huge detailed design for the super extra large part when it turns out that's not what's best for the business right now. That can be re-evaluated and re-addressed later after the more immediate priorities are done.

And, very importantly, depending on the nature of the software, it's entirely possible that changes made to the medium part during development will have drastic consequences on the design of the super extra large part. If it was all designed up front, it would cost a lot more to re-design and adjust to those changes.

It should also be noted that developers can "hack code together just to pass tests" in any development environment. That has less to do with agile and more to do with sloppy/lazy coding practices. Development methodologies don't produce good or bad software, developers do.


Agile development can be very "architectural" as far as organized formal measures are concerned. Agile has more to do with short, iterative lifecycles that allow a project to grow and adapt quickly to any changes the customer might have or the team encounters. Agile isn't "Cowboy coding" because of this however, most agile teams use real and even rigid processes to do their work.


I am studying this subject, so I though that I could had something.

Both Agile and Architecture-centric methods involve the development of an architecture, yet, in Agile, which is not so unorganized as it seems (as Jesse mentions also), the software architecture refers to what is usually called as an architectural spike i.e. an isolated architecture that after, must be included in a larger architecture for purpose of architectural control. Architecture-centric methods rely everything in architectural control, and because of that, lose agility as there are usually great need for documentation generating undesired overhead in terms of effort.

Agile has little analysis of the problem, but also has great deal design of the solution, yet producing more isolated solutions in an iterative process. Architecture-centric has both, but can take a very long time to deploy working software. The great objective is attaining the balance between the two of them, probably using a more effective solution, that gather both.

So, Agile is most to smaller enterprises, and architecture-centric is more to greater enterprises or industrial development.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜