Ionisis is an Anamorphic Web Development Company, web application development company, web development firm, custom web development company, small business web development, corporate web development, PHP Website Developers, Web 2.0 Developers
Anamorphic Web Development Company
Anamorphic Web Development Comapny vs Agile Web Development Company
An agile web development company is one who develops projects using a process of large amounts of planning, analysis, documentation, testing, and review. While this sounds ok to us, it does not describe our process, and so we reviewed our process and determined that would be more accurately labelled as Anamorphic Web Development. This is a process developed and by Ionisis in 2006, and given an official name in 2008. Through our contact with other web development companies, it has started to spread around a bit; however the phrase is becoming ambiguous due to misunderstanding of the process, misinterpretation, modification by other companies to suit their own arbitrary definition, or just as a name drop. This development methodology is very distinct from other contemporary methods, and if not used or understood properly, can lead a project to failure; so we're going to set the formal definition here, for the benefit of disambiguation of all parties.
Definition of Anamorphic Web Development
- Anamorphic Web Development
-
Anamorphic web development is a process whereby only initial planning, design, prototyping, and analysis occurs, as more of a framework for the general concept or direction, on which the functionality is built that will flesh out the project and its features. Development begins almost immediately after conceptualization. As development continues, the client has easy access to the current application state, which usually resides on development servers, or a non-publicized location on a publicly accessible server, and is able to provide feedback and guidance as the project evolves, to shape the direction and growth of the project. At this stage, the programming and coding of the framework is usually done in parallel with client feedback and testing. The developers work closely with the client, and have frequent contact with them.
After the framework is considered extensible or satisfactory to build upon, the project is made live on the internet as an "Alpha" System, and select members of the general public are invited to begin using the project and to provide feedback and reviews of the project. Public review, in addition to client review, adds to a clearer picture of the direction and shape of the project that is necessary for its success, as sometimes the end users may think of new ways to do things, new features to enhance the project, find problems in the functionality, or find bugs in the project, some of which the client or the development firm would not have come across with without them. At this stage, the programming and coding of functionality is usually done in parallel with feedback and testing. Features are developed more rapidly because a subset of features, defined by priority, are the sole focus of each iteration of planning, design, and development, as opposed to the entire system.
The distinguishing factor of anamorphic web development is that the project continually and rapidly evolves or "morphs" to fit the needs of the client and end users, while trying to maintain its original concept and scope. Other than the core framework, there is very minimal feature planning at the onset, giving the project the potential to change shape and take on new functionality as it is discovered to be a need or a benefit, as opposed to planning all features, and having a result with functionality that is not needed, and lacking functionality that is needed. This is a much more targeted and adaptive trait as it is free of unnecessary functionality, which adds clutter to the code and adds unnecessary overhead in planning, testing, and development; this method addresses only actual needs. This free-formed adaptive trait is considered anamorphism. It is very important to note a clear and concise separation of the framework development phase and the features development phase, how the latter is a layer that exists upon the former, and how they are mutually exclusive development phases; this is the biggest distinction of this method. By developing an extensible framework, features can be plugged in with little of no modification of existing code, which allows for faster and more targeted feature development, and for a horizontally scalable project. There are usually no "releases" or "versions" of the project, as it is an ongoing prototype until it is declared finished, which is usually when it satisfies the initial needs and concept of the client. This methodology is not widely used or approved of, as it allows for many modifications; but since there is no hard plan, this is not thought of as modifications, but more as morphing to more closely suit the needs of the end users, to more completely satisfy the concept as a whole, and to provide a better product with higher end user satisfaction and usability. By this methodology, it is better to have a more generalized and dynamic concept which you can adapt to as you go, as opposed to starting out with a static idea and a rigid and thorough plan, as problems arise each time a need changes or is realized.
Benefits of Anamorphic Web Development
-
less time spent in planning, which saves more time later when plans change (and they always do)
-
saves time wasted in documentation, which almost never goes through a project's life cycle without being almost completely rewritten
-
saves time on requirements analysis and reassessment, as end users and clients direct this process as the project evolves
-
saves time testing, as the client and end users are also testers (even if unknowingly) and contribute to the feedback
-
coding and programming can be performed faster and more accurately, as there is less of a need to go back and take out or rewrite existing code when new needs and requirements change, because it is usually the case that coding is done in parallel with feedback and testing, after the initial framework is constructed
-
ensures greater usability and end user satisfaction, as it is modelled to fit their needs, within the scope of the original concept
-
anamorphic projects are usually billed incrementally (monthly, weekly, daily, or hourly), due to the nature of the methodology, which ensures that the client gets the best product for the money invested (as users and clients set the requirements, to an extent)
-
if billed incrementally, the client can stop the development of further features or enhancements when they reach their budget
-
if billed incrementally, it helps to protect the development firm from going over budget when there are many features added or enhanced
-
development is much faster and much more targeted than conventional methods, as it is free from some of the most time consuming tasks, like documentation, thorough requirements planning, and major modifications, which gives the project powerful results for short timelines
-
the time spent on planning and designing is much shorter, as these steps are targeted for specific features, be it new or an enhancement
-
it almost completely eliminates inaccurate planning, inaccurate assessments, misunderstandings of goals, and misdirection, as there is little initial planning, and after the commencement of the functionality development stage, development is done in very small and narrow steps, at the direction of feedback
The downside to Anamorphic Web Development
-
it is easy for a project to expand beyond the scope of the initial concept, and requires that the project manager understands the fine lines that signify the concept's boundaries
-
it is easy for a project to go over budget, as features are enhanced and new features are added frequently, which is why some companies prefer to bill incrementally (monthly, weekly, daily, or hourly) for anamorphic projects
-
if not billed incrementally, the cost of such a project is difficult to estimate for the anamorphic web development firm
-
if the anamorphic web development company bills the customer incrementally, then it is hard for the client to estimate cost, or to estimate it for them
-
the duration of such a project is difficult to estimate
Definition of Anamorphic Web Developers
- Anamorphic Web Developers
-
The team of developers who use this methodology are referred to as anamorphic web developers, and are comprised of as few specialists as possible, who work closely together with each other, with the client, and with the end users. Their roles overlap each other to ensure clearer communication, tighter integration of efforts, higher accuracy, better quality, greater efficiency, and more speed.
Public Notes
Due to the nature of this article being definitive and setting a clear definition of an industry term, you are free to publish and reproduce it on educational websites, such as a dictionary or encyclopedia oriented websites (e.g., Wikipedia or Wiktionary), with attribution to this page. All other websites and uses are prohibited.
Article Tools and Options