Programming is hard, messy, and complicated. There is no doubt
that you cannot just learn how to program well, especially not at an industrial
level. One thing much more difficult than programming is group programming.
Group programming involves communication, management, version control systems,
and many hours of debugging everything.
Agile is a type of project management that is used in many
software engineer and programming fields. Agile uses group management,
communication between groups, and communication between groups and clients to
create short windows of time where the group will fulfill part of the entire
project and deliver it to the client. This time of management creates rapid
execution of projects using short term goals and lots of communication between
everyone. This way the client is satisfied by seeing how their needs are being
satisfied, and the group feels satisfaction by completing a small project in a
larger project. One other advantage is that because the Agile method breaks
down the project into smaller projects, there is more room change and
adjustments.
| Agile flowchart from Wikipedia |
Now there is nothing without its cons. One such con of Agile
is the management process. Sometimes a team should not manage itself, but should
be managed by someone else. This is important in larger groups where the team
will have a boss who will have their own boss. A large group cannot possibly
manage themselves because there will be too many different opinions and
options. Another con is that Agile breaks up a project into equal smaller
projects, but sometimes that just isn't doable. In that event Agile does not
work because the short cycles end up becoming long cycles.
The answer to this blog entry title is that Agile should be
used for smaller group projects. There is no deal breaking defect of Agile, and
should be used if possible. If not then there’s always other management methods
that are surely just as effective.
Hi Matthew, it is nice reading your blog. I agree with you that programming project sometimes can become very messy especially in group programming which involves many communication, management and more. Like what you describe, Agile has some disadvantage when using it for relatively large group. I think you have a strong point of argument on the short cycles ending up becoming long cycles can cause Agile not working. However, despite this disadvantage, overall I think Agile is a pretty great management tool.
ReplyDelete