[Microsoft Techies Blog] Delivering Software Application without failure and in challenging time lines.

1 view
Skip to first unread message

Anjani kumar

unread,
Oct 23, 2011, 6:16:24 AM10/23/11
to techie...@googlegroups.com
 * 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?





--
Posted By Anjani kumar to Microsoft Techies Blog at 10/21/2011 10:35:00 AM

Anjani kumar

unread,
Oct 23, 2011, 1:48:15 PM10/23/11
to techie...@googlegroups.com
 * 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, when you implement solutions?
2. How do you manage  and improve qualities while delivering solutions much ahead of actual time.


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  mature enough to understand the power of criticism and suggestion?
         8. How did  you manged the negative energy in the team?



Negative energy? How is this related?
Yes this is true.
The amount of positive work that you do, The same amount of negative energy is splashed around.

This is true for any matter or by product of matter. If you feel your body and the team as well as product that you are building is not a by product of matter then please ignore.

Remember the vibrations in and around the group which creates such beautiful by products consumes energy and energy and matter are related by the formula e= mc square

This is not just science but  the law of nature.

When you utilize matters in any form you will have to do something with the anti matters too.

To understand this, try relating  the theory of TIME and  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 and displacement of material particle, which in itself is the energy in the  form that human may or may not understand.
1. What will be the Cost/ Benefit ratio?
2.Technical expertise.
3. Is Development and  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?


1. One of the biggest challenge for the system integrator, solution and technical architect's is infrastructure.
2. Even if they know and development team does not know how the application will be installed hosted in different environment, application development may miss the important point [capability][Maturity]


3. Intranet based enterprise have different infrastructure constraints which may change from enterprise to enterprise and are mostly based on their capabilities derived by the factors like robustness, technical work force, Maturity models that they are at CMMI ?, enterprise architectural practices and framework applied.
Rules and Enterprise governance activities as well as  IT services standard adoptions such as  ITIL.


Serving The Business and  The Actors


Knowing the different actors is an important step towards building an application.

  1. Actor may be a system based or Live actor.
  2. System based actor's are services which may interact with different components.
  3. A component which may get initiate by an activity from another component in [Inside or outside of the domain] or even from outside the universe.
  4. The solution that you build is storied around these actors.                                                              
  5. That's how one frame the view's from these actors and bespoke creators of these actors[Super actors].
  6. Extract the viewpoints and further create their artifacts around these base actors or derived, evolved, metamorphosed, extended need based system & non system based  relatives.
  7. Once your stories are created you start binding them up with your solutions [Application, components, derived system based actors their activities and associations, security modeling[Authorization & Authentication]]
  8. Actors may be main or side actors but unless they are not being powered and instinctive to perform their role in a winning way the film is a flop.



GAP Analysis which is the most important way to manage your entities attributes and  models.
Every enterprise have one important issue to deal with [Duplicate applications for same problem]
Reason:-
1. There is no centralize data dictionary and a Gap analysis tool where technologist  can easily find the data origination source, Master data and the transformation through different systems.





The DATA flow, Transformations, Managing the inlets , outlets, tank's and sync's.



The importance of Open Close Principle, Test Extensions and separation of concerns.
The existing patterns which may  be helpful to you.

The Simple pattern described below is a solution level pattern which allows easy extension of your applications at specific inlets and outlets as like a system of multiple pipelines.

If you are asked to know all the scenarios at the begin of the development? most of the time its not possible.
This does mean that your team will make their handle dirty in tight deadline.
How to Mange the solution and application level architecture that you can easily manage some  core areas, despite having scope  of improvement at lower level.

1. Data, Data transformation, Data Flow
2. Security
3. Business Scenarios
4. Technology
5. performance
6. Usability.









The Simple Pattern:


What?
How?
Why?
When?
Where?
Constraints:-


Infrastructure and Development Environment Readiness and leval?

Security considerations?

Funding considerations?

Resource Considerations?

Support considerations?






Whom?



Reply all
Reply to author
Forward
0 new messages