* Note:- This is a continuous improvement topic and is being upgraded at present.
We have tried explaining on:-
1. What are the problem you face?
2. When you implement your application?
3. Managing and improving qualities while delivering solutions on time.
4. The easiest way to stop your project from failing because of may be one of the below issues.
1. Analysis was wrong.
2. You where not able to understand the problem that you intended to resolve, and you where confident
to apply your ideas.
3. Was the usability being taken care of?
4. You made your system so complex that no one was able to use it?
5. While making it simple you ignored time and funding consideration.
6. The people whom you hired where not to be called engineers but an opportunist looking to sell some
half cooked knowledge, Or they where all managers, coding less and pointing to each other more?
7. Was the engineering team was mature enough to understand the power of criticism and suggestion?
8. How do you mange the negative energy in the team?
Negative energy? How is this related?
Yes this is true.
The amount of positive work that you do, same amount of negative energy is splashed around.
Why? This is the law of nature.
To understand this, try relating the theory of TIME & Black Holes, Einsteins E= M * c square
Stephan Hawkins (Who created the universe?), Newtons third law, The Power of Karma Yoga.
And then bind with the theory of creation & displacement of material particle, which in itself is the energy in the form that human may or may not understand.
Most probably you will be facing one of the pain penned down below as an outcome of above fact.
- You review and speak about lot of pattern and practices.
- You apply many of them in your IT products.
- You create test harness and keep changing them.
- You create solutions and keep improving them.
- While you fix one you may break others.
- Your code weeps when on heavy load and huge data.
- You have a big QA setup just encase you break something !!!
- You have made your team a haunted place where every day all come with one job "witch Hunt"
If you Try all your best, only one thing you find constant in your application which is change.
Question is how to manage this all and still meet client expectations?
The below practices suggest how, where and when to manage a successful delivery and architecture in less time and less future operation's cost.
What to think when you are proposing the Web or Windows solution at system level?
Not an exhausted list but some of the checklist should be..
1. What is the business problem that its going to serve for?
2. How Many users to serve for?
3. Will we have the control to their environment?
4. How do we ship our changes to the client?
5. What will be our error handling and reporting capabilities?
6. How easily can we change our code without affecting other area?
7. How can we care about
scalability?
8. How can we Extend our architecture?
9. How do we segregate our DATA, DATA Transformations, Disconnected and Connected Data stores, Harmonization, Extensions and metamorphosis before we deliver data in the fast efficient, required manner to our Business, Domain and UI workflow to serve or act on one of the actions [In or Out] to the system, time, application and Human based actors.?
10. How do we manage Generalization, specification, aggregation, association, composition and decomposition based needs of our Target architecture as an Universe as well as multiple systems and their components as their sub systems.
11. How do we Visualize the data delivery, Objects and data transfers between object's inside and beyond system boundaries.
12. Do we really need to break the interfaces as in thousands or keep the common interface for all sorts of communication.
13. Does the common interface handles normalization?
14. Is the common interface is their to serve Large Objects to make the client work in disconnected fashion? Or has a chatty interface to make the data transfer in chunk and keep connected?
15. Does the in memory transformations has frequent call's to multiple systems out side the sub systems or out side the domain boundaries?
16. Are their federations of the copy of the system which will interact among each other to make themselves scalable.
Choosing the technology?
1. What will be the Cost?
2.Technical expertise.
3. Development & Deployment infrastructure supported.
4. Open standards [Best for web] for an intranet [organization standards on which the enterprise system runs, users are trained and have less cost to implement.]
5. Does it fits in to enterprise technology, data, business and application stack well?
6. The level of your technical workforce that you have and easily available in market.
7. How easy will it be to implement when you do the GAP analysis?
8. Not thinking about the benefits as still considering it not at an Entrepreneurial leval or marketeer.
The Infrastructure?
Serving The Business & The Actors
GAP Analysis which is the most important way to manage your entities attributes & models.
The DATA flow, Transformations, Managing the inlets , outlets, tank's and sync's.
Security considerations?
Funding considerations?
Resource Considerations?
Support considerations?
Infrastructure and Development Environment Readiness and leval?
The Simple Pattern:
What?
How?
Why?
When?
Where?
Whom?