Some thoughts on creating User friendly, Developer Friendly and Management Friendly Applications
1. Hard Code
In the beginning, there was this complex thing called “Code”.
Developers hand-coded ‘em . It was a complex, tedious and stressful job.
2. Parameter Entry
To ease their load and expedite delivery times, Parameter-based code generating tools were created. De-bugging was a lot easier. Design View & Preview Mode were built-in. Readymade configurable tags were also present.
Designers were able to generate the front-end code perfectly. The UI was centered on User’s goals. Developers focused more on back-end coding and were happy doing the same.
Example: Tools : Dream weaver
Object : Table
Parameter : width =”” Height=”” No of Columns=”” No of Rows=””
And then came ‘re-usable components’. This did speed up coding. Developers were able to re-use “chunks or modules” of code. It however it did not have readymade “re-usable functionalities”
Example: Tools : DotNet
Object : Panels
Parameter : autobindings , DynamicProperties, DockBindings etc
4. Re-usable Functionalities
If we identify commonalities among the different kinds of applications and design “chunks of readymade components” packed with a lots of tested ‘best practices’ and use a wizard based method to implement an application, we will be able to greatly speed up application implementation. These can be added to IDE (Integrated Development Environments) Libraries
Example: Tools : To be designed
Object : Login Page Functionality
User Name + Password + Button + Header + Footer + Application Description etc.,
Method : Drag & Drop + Wizard to do backend integration
5. Pattern based ‘Application Design’ Automation
Assuming that “Re-usable Functionalities” are complete, it is possible to identify patterns of functionalities and create parameter-driven “re-usable” and customizable applications!
Example: Application : Discussion Thread
What are the Failure Modes of this approach? Any ideas?