1. Android (and its derivatives) will be omnipresent in embedded, mobile and hand held devices.
2. In laptops/desktops, windows or some flavor of it will be preferred operating system.
3. SAAS and PAAS will prevail for small and big enterprise.
4. IAAS will thrive in enterprise data centers.
5. Fragmentation and Alternatives of Java and Enterprise Java (like Apache harmony, and Spring) will emerge stronger and official java from Oracle will loose its sheen due to lust for its monetization by Oracle.
6. Laptop, mobile and tablet will merge into one.
7. Indian IT workforce will shift from permanent job to contractual jobs like in USA.
8. 3G and 4G (BWA) will bring internet book in India over smart phone and tablets.
9. Developing countries will swept by telecom revelation like India in previous decade.
10. Gamification will engulf almost all experiences especially of social media.
11. Outsoucing will change from India focused to 2I + 1 (2 location in India and one elsewhere)
12. Apple will loose its grip on smart mobile phone market.
13. Application will be pervasive in devices and appliances like phones (mobile and fixed line), TVs, automobiles, refrigerators, disk (CD/DVD/BlueRay) players, and any computing device.
Showing posts with label Software. Show all posts
Showing posts with label Software. Show all posts
Friday, December 31, 2010
Tuesday, June 1, 2010
Top 11 Bad Performance Causes of Enterprise Scale applications
1. Database related challenges
a. Too much normalization
b. Not optimized queries
c. Excessive emphasis of keeping logic away from database engine
d. Improper indexing
e. Faulty installation of database server
2. Unnecessary remoting
a. Unnessary distribution of component across network
b. Too much emphasis on services
3. Faulty Deployment
a. Faulty deployment topology
b. Incorrect capacity planning
4. Faulty implementation of Concurrency
a. Long running methods are synchronized
b. Deadlock conditions are not envisioned
c. Long running data base transactions
5. Badly performing 3rd party libraries
a. Performance challenges in libraries
b. Bugs in libraries
6. Excessive usage of Hardware or software resources
a. Unnecessary IO operations
b. Incorrect usage of memory
7. Improper Caching
a. Not using caching
b. Not using proper caching platform
c. Not using features of caching platform
8. Excessive use XML
a. Obsessive use of XML
9. Incorrect usage of language features
a. exception as if condition
b. nested if conditions or for/while loops
c. faulty UI
d. IO operations, etc
10. Incorrect configuration of container
a. Application server
b. Virtual Machine
11. Excessive logging
a. Too much normalization
b. Not optimized queries
c. Excessive emphasis of keeping logic away from database engine
d. Improper indexing
e. Faulty installation of database server
2. Unnecessary remoting
a. Unnessary distribution of component across network
b. Too much emphasis on services
3. Faulty Deployment
a. Faulty deployment topology
b. Incorrect capacity planning
4. Faulty implementation of Concurrency
a. Long running methods are synchronized
b. Deadlock conditions are not envisioned
c. Long running data base transactions
5. Badly performing 3rd party libraries
a. Performance challenges in libraries
b. Bugs in libraries
6. Excessive usage of Hardware or software resources
a. Unnecessary IO operations
b. Incorrect usage of memory
7. Improper Caching
a. Not using caching
b. Not using proper caching platform
c. Not using features of caching platform
8. Excessive use XML
a. Obsessive use of XML
9. Incorrect usage of language features
a. exception as if condition
b. nested if conditions or for/while loops
c. faulty UI
d. IO operations, etc
10. Incorrect configuration of container
a. Application server
b. Virtual Machine
11. Excessive logging
Wednesday, November 11, 2009
Why India lags behind in Software Product development?
1. Restrictive culture which hinders free thinking
2. Limited talent pool
3. Fascination for foreign things
4. Absence of Angle investors
5. Software piracy
6. Risk aversion
7. Long gestation period
8. Most of population is in lower side of Maslow’s need pyramid
9. Easy money in body supply
10. Poor government support for globalization
2. Limited talent pool
3. Fascination for foreign things
4. Absence of Angle investors
5. Software piracy
6. Risk aversion
7. Long gestation period
8. Most of population is in lower side of Maslow’s need pyramid
9. Easy money in body supply
10. Poor government support for globalization
Sunday, April 12, 2009
Software Quality Attribute
Software of any size has quality attributes. These quality attributes decides the fate of that software from its idea/inception to its retirement. These quality attributes are independent of its size – enterprise, embedded, desktop, etc; architectural philosophies followed – SOA, Message Driven, Object Oriented, Procedure Oriented, etc; nature – real time, near real time, batch mode, synchronous, asynchronous, etc; usage – project & product; etc. For the ease of understanding these attributes may be classified as:
1. Business Quality Attributes
2. System Quality Attributes
3. Architecture Quality Attributes
4. Design Quality Attributes
5. Implementation & Support Quality Attributes
1. Business Quality Attributes: As name implies these attributes are interest of business persons and directly affect viability of software.
a. Target Market Segment
b. Time to market
c. Roll out schedule
d. Team composition – at each stage of SDLC
e. Resource Composition – at each stage of SDLC
f. Availability and cost of skill set
g. Legacy system integration
h. Legal Compliance
2. System Quality Attributes: These attributes are essentially non functional requirements. Few of them are listed:
a. Re-usability
b. Evolve-ability
c. Test-ability
d. Portability
e. Scalability
f. Integr-ability
g. Interoperability
h. Platform independence
i. Changeability
j. Maintainability
k. Security
l. Understandability
m. Availability
n. Reliability
o. Efficiency (Efficient usage of resources)
3. Architectural Quality Attributes: These attributes help in defining architectural foundation of software.
a. Completeness
b. Correctness
c. Conceptual integrity
d. Level of Compliance – Legal
e. Level of Compliance – Standards
f. Build-ability
g. Modularity
h. Loose coupling
i. Separation of concern
j. Backward and forward compatibility
k. Technology and Platform Selection
l. Outsource-ability
4. Design Quality Attributes: These attributes are derivatives of System and Architectural quality attributes. But these are very important and lay foundation of successful implementation and support.
a. Trace-ability
b. Information hiding and encapsulation
c. Abstraction
d. Loose Coupling
e. Reusability
f. Self documentation
g. Separation of concern
h. Increment-ability
i. Design for change
j. Patch-ability
k. Usage of contemporary standards
l. Usage of contemporary best practices
m. Usage of appropriate design patterns
5. Implementation and Support Quality Attributes: These are the attributes which governs coding to retirement of software. Few of the quality attributes at this stage are resultant of System, Architecture and Design quality attributes and remaining can trace their origin in SDLC methodology followed, business decisions and environmental conditions.
a. Outsource-ability
b. Testability
c. Definition of SLAs
d. Trace-ability
e. Modular-ability
1. Business Quality Attributes
2. System Quality Attributes
3. Architecture Quality Attributes
4. Design Quality Attributes
5. Implementation & Support Quality Attributes
1. Business Quality Attributes: As name implies these attributes are interest of business persons and directly affect viability of software.
a. Target Market Segment
b. Time to market
c. Roll out schedule
d. Team composition – at each stage of SDLC
e. Resource Composition – at each stage of SDLC
f. Availability and cost of skill set
g. Legacy system integration
h. Legal Compliance
2. System Quality Attributes: These attributes are essentially non functional requirements. Few of them are listed:
a. Re-usability
b. Evolve-ability
c. Test-ability
d. Portability
e. Scalability
f. Integr-ability
g. Interoperability
h. Platform independence
i. Changeability
j. Maintainability
k. Security
l. Understandability
m. Availability
n. Reliability
o. Efficiency (Efficient usage of resources)
3. Architectural Quality Attributes: These attributes help in defining architectural foundation of software.
a. Completeness
b. Correctness
c. Conceptual integrity
d. Level of Compliance – Legal
e. Level of Compliance – Standards
f. Build-ability
g. Modularity
h. Loose coupling
i. Separation of concern
j. Backward and forward compatibility
k. Technology and Platform Selection
l. Outsource-ability
4. Design Quality Attributes: These attributes are derivatives of System and Architectural quality attributes. But these are very important and lay foundation of successful implementation and support.
a. Trace-ability
b. Information hiding and encapsulation
c. Abstraction
d. Loose Coupling
e. Reusability
f. Self documentation
g. Separation of concern
h. Increment-ability
i. Design for change
j. Patch-ability
k. Usage of contemporary standards
l. Usage of contemporary best practices
m. Usage of appropriate design patterns
5. Implementation and Support Quality Attributes: These are the attributes which governs coding to retirement of software. Few of the quality attributes at this stage are resultant of System, Architecture and Design quality attributes and remaining can trace their origin in SDLC methodology followed, business decisions and environmental conditions.
a. Outsource-ability
b. Testability
c. Definition of SLAs
d. Trace-ability
e. Modular-ability
Subscribe to:
Posts (Atom)