Overview of mPERFECT software development methodology
[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.

