This content requires Macromedia Flash Player 8. Please update your Flash player to enjoy the all the features of this site.

mPERFECT


Note: This is a work in progress. Hopefully what you see below will evolve and grow into a well defined methodology that, while directed toward Flash development, could possibly benefit general software development as well. A lofty goal, certainly. But, I think the need is real - at least it has been for me. My approach will be incremental, adding and removing bits as I test and prove their merit in the applications that I build. It is my goal, however, to enlist other developers in this effort. I think I have some good ideas and will do what I can to coordinate the project, but for the methodolgy to have broad ‘real world’ appeal, it will require the input others - developers, designers, project managers, etc.

I only know what I know - and some of that is wrong ;-)

Overview___________________________>>comments

[orginally written from the perspective of a lead developer]
There are so many unique variables for each project, making a standardized approach difficult. In a perfect world, you would have a storyboard and a functionality spec before writing a single line of code. Then, you would build out your architecture, templates, etc. while designers generate source graphics, video and audio. If necessary, database programmers would build out any server-side functionality and document the API. Next, you and your team would assemble and animate the graphics, video and audio, writing required presentation-layer code as you go. Ideally, you would have the necessary talented bodies around you (animators, designers, builders, writers, etc.), allowing you to focus on the integration of your assets and writing extensible code. However, this level of organization is rare. In most cases you won’t have many of the things listed. This can be frustrating, and more importantly, threatens the success of the project.

The solution? Be realistic. Consider the resources (people, time, money) you have to work with on a case by case basis. Find the path to success working with what/who you have. Express to your employer or manager any concerns that you have and request the resources you will need to be successful. Definitely aim for perfection, but plan on being flexible and know that you will likely need to make compromises to be successful.

mPERFECT assumes that you are working without the resources necessary to develop perfect software, i.e. time, budget, direction and qualified staff. It is more of an ‘extreme programming’, reality-based approach that starts with ‘worst case scenario’ and progresses toward relative perfection. The net result is software that works, delivered on time and on budget.

  • A developer’s idea of ‘perfection’ is often far from the reality of a given project.
  • Be realistic. Consider the resources (people, time, money) you have to work with on a case by case basis.
  • Define mission critical objectives and develop a strategy to achieve these goals given the resources you have available.

Relative Links________________________>>comments

  • Aral Balkan’s ‘Ariaware’ - a very impressive “Best-Practices Pattern-Based ActionScript 2 Framework”. It is a (nearly) perfect example of how developers would/should build software in a (nearly) perfect developer-centric world.
  • Resign Patterns by Michael Duell - this hilarious adatation of Design Patterns finally convinced me that I might be on to something… that others were facing similar challenges in software development.

3 Responses to “mPERFECT”

  1. 1
    SERENITY NOW! » Overview of mPERFECT software development methodology Says:

    [...] mPERFECT [...]

  2. 2
    SERENITY NOW! » mPERFECT: Relative Links Says:

    [...] mPERFECT [...]

  3. 3
    SERENITY NOW! » How do you debug your code? Says:

    [...] mPERFECT [...]

Leave a Reply

© 2008 pod6 - SERENITY NOW! | Entries (RSS) and Comments (RSS)

wordpress logo