views:

129

answers:

4

It may be Water fall, iterative or agile development or anything else. No matter what development lifecycle mode we talk about there always several perspectives for same problem. From business to problem oriented and further to programming, testing, etc.

So question is how are modern companies use modern advanced methodologies to translate requirements to source code?

How new programming frameworks help analysts, designers and programmers better work together?

New means those which most actively used nowadays. Python or PHP are not quit new but they have actively developing crowd of funs and specialists. Workflow foundation, AJAX, F# etc quite new and give extra productivity developers. But how they impact productivity of a team?

A: 

Am I the only person who thinks you typed up one of your homework questions and now want us to do your homework for you?

No normal human actually types questions this way, it reeks of college professor lingo.

TravisO
I think it supposed to be the reason for new technologies. The supposed to support productivity. I am curious, how are they doing it. It is my own question.
Din
@TravisO, comments like these go in the comments section.
Robert S.
Point taken, next time I'll use comments for non-answers :)
TravisO
A: 

I actually did have a homework assignment written just like that. It was a software development class taught by a professor born in Bangladesh. That was in 2005 I suppose. Comp Sci 243 or something like that.

Karl
Thanks! I am Russian btw.
Din
+1  A: 

A framework only provides 2 things:

  1. A dictionary which is the same for everybody, so you can communicate and know that you are talking about the same thing
  2. A process for people to follow, should you get confused.

The rest is up to you as a team.

Rolf
Does it mean that ex AJAX or Python offer new dictionaries which designer can use to deign software better?
Din
+1  A: 

Just to be clear, a few of your examples aren't actually programming/software frameworks. Python, PHP, and F# are complete programming languages. AJAX sits in the gray area between framework and library. The Workflow Foundation is probably your best example.

A good framework gives a team these benefits:

  • A consistent way to accomplish common tasks. This makes it easier for a developer to read and edit another developer's code, which makes everyone more productive.
  • Automation of common tasks. If you cut out busy work, team members can focus on problem solving. You may also be able to shrink your team. Communication is easier in a smaller team.
  • Separation of team concerns. For instance, in an MVC framework, a designer can work on a view while a developer works on a controller while another developer works on the model (in theory).
  • Fast development/prototyping - a good framework shortens the feedback loop between analysts and developers, which makes unavoidable changes easier and faster.

Frameworks also have drawbacks:

  • Automation and pattern takes some creativity out of a solution. This might make the solution good, but not the best.
  • If the team is entrenched, they may not recognize when it is time to abandon the framework for a difficult task. Instead, they code a complex and difficult to maintain solution with the framework. "When you have a hammer..."
  • Frameworks may be over-kill for simple tasks. Using them could make the solution more complex, not less.
Corbin March