I have listed the operations a service should exposes in my earlier post. I have revised the list. The latest is:
Wednesday, December 15, 2010
Monday, December 13, 2010
BPMS Types
While doing assessment for one of my client for BPMS platform/tool set, I divided the BPMS system on the basis of three main features.
1. Human Centric
2. Integration Centric
3. Document Centric
Certainly some of the BPMS platforms/toolsets belong to more than one category but majority of them focuses one aspect or another. This focus is at large determined by vendors’ historical association with that aspect of product.
1. Human Centric
2. Integration Centric
3. Document Centric
Certainly some of the BPMS platforms/toolsets belong to more than one category but majority of them focuses one aspect or another. This focus is at large determined by vendors’ historical association with that aspect of product.
Sunday, December 12, 2010
P2P in Business
With the rise of Cloud (SaaS, PaaS and IaaS) centralization of business application is taking place which certainly offers its own benefits but also introduces single point of failure and too much control by very few entities. Centralization also asks for non interrupted connectivity which may not be feasible in lot of scenarios.
At the same time increasing interdependency of workers and businesses requires networked individuals and resources. In few of such scenarios networks get created on adhoc basis for short duration of project.
To solve these opposing requirements, P2P networks can be of great help. P2P does not require very centralized systems and divide the data ownership and infrastructure needs among participants.
Keeping this paradigm, I looked into various products and platforms and surprised to find that lot of small and big enterprises are using P2P technology and platforms in their business applications. One Further investigation revealed that the biggest share is cornered by BitTorrent.
1. Aggregator Juice (http://juicereceiver.sourceforge.net/index.php) uses BitTorrent
2. Video Player Miro (http://www.getmiro.com) uses BitTorrent
3. Music Retailer DGM Live (http://www.dgmlive.com) distributes using BitTorrent
4. Music Retailer Sub Pop (http://www.subpop.com) uses BitTorrent for distribution
5. Canadian Broadcasting Corporation (http://www.cbc.ca), Norwegian Broadcasting Corporation (http://www.nrk.no) and VPRO (http://www.vpro.nl) have often distributed their content using BitTorrent.
6. The Amazon Simple Storage Service (S3) is equipped with built-in BitTorrent support.
7. Blizzard Entertainment (http://us.blizzard.com/en-us/) uses BitTorrent (using a proprietary client "Blizzard Downloader") to distribute most content for StarCraft II and World of Warcraft, including the games.
8. Entropia Universe (http://www.entropiauniverse.com/) distributes files through BitTorrent
9. Facebook (http://facebook.com) and Twitter (http://twitter.com) use BitTorrent to distribute updates to servers.
10. CRM Ajatus (http://www.ajatus.info) is built on top of CouchDb
11. Bug Traking system SimpleDefects(http://syncwith.us/) is built using Distributed database Prophet
12. Avvenu (http://www.avvenu.com/) is a Personal File Sharing, Mobile Sharing platform. It is acquird by Nokia.
13. Dekoh (http://dekoh.com) facilitates Personal File Sharing with Web Integration platform
14. ShareDirect (http://www.laplink.com/business_solutions/sharedirect.html) is data synchronization tool by LapLink
15. Pando (http://www.pando.com) by Pando is Publishing, Media Streaming, and file sharing solution
16. StreamerP2P (http://www.streamerp2p.com) is a Broadcasting solution over internet
17. Syncura (http://www.syncura.com) has few products for document sharing and collaboration
18. Digital Media Delivery framework by Velocix (http://www.velocix.com) uses P2P paradigm
19. The Digital Media Exchange (DMX - http://cyber.law.harvard.edu/media/projects/dmx) operated by Harvard Law School
20. Social VPN (http://socialvpn.wordpress.com) is a P2P based VPN platform
Some of the Peer to Peer Initiatives:
1. JXTA (https://jxta.dev.java.net) is P2P Networking initiative by Java
2. P2P-Next (http://www.p2p-next.org) is open source initiative which primarily focuses on digital media.
3. Secure P2P Framework (SePP - http://sourceforge.net/projects/securep2p) focuses on security aspects of P2P. It is developed in java.
4. GNUnet (https://gnunet.org) is one more P2P Framework which focuses on security.
5. AntHill (http://www.cs.unibo.it/projects/anthill) is based on Complex Adaptive System paradigm.
6. MsgConnect (http://www.eldos.com/msgconnect) is proprietary P2P framework offered by Eldos.
7. Brunet (http://boykin.acis.ufl.edu/wiki/index.php/Brunet) is P2P library written in C#
Some of the P2P frameworks for developing business applications:
• Apache CouchDb (http://couchdb.apache.org) is a RESTful object database
• DBE (http://swallow.sourceforge.net) is a Java based P2P container for service oriented architecture
• Prophet (http://syncwith.us) is a P2P-replicated database
• Friend to Friend (F2F - http://ulno.net/f2f) is a Java framework for building P2P business applications using the SIP protocol
• Telepathy Tubes (http://telepathy.freedesktop.org/wiki/Tubes) is a framework to channel application information over instant messaging networks
• BitTottent (http://www.bittorrent.com) is one of the most popular P2P framework to develop enterprise grade applications.
At the same time increasing interdependency of workers and businesses requires networked individuals and resources. In few of such scenarios networks get created on adhoc basis for short duration of project.
To solve these opposing requirements, P2P networks can be of great help. P2P does not require very centralized systems and divide the data ownership and infrastructure needs among participants.
Keeping this paradigm, I looked into various products and platforms and surprised to find that lot of small and big enterprises are using P2P technology and platforms in their business applications. One Further investigation revealed that the biggest share is cornered by BitTorrent.
1. Aggregator Juice (http://juicereceiver.sourceforge.net/index.php) uses BitTorrent
2. Video Player Miro (http://www.getmiro.com) uses BitTorrent
3. Music Retailer DGM Live (http://www.dgmlive.com) distributes using BitTorrent
4. Music Retailer Sub Pop (http://www.subpop.com) uses BitTorrent for distribution
5. Canadian Broadcasting Corporation (http://www.cbc.ca), Norwegian Broadcasting Corporation (http://www.nrk.no) and VPRO (http://www.vpro.nl) have often distributed their content using BitTorrent.
6. The Amazon Simple Storage Service (S3) is equipped with built-in BitTorrent support.
7. Blizzard Entertainment (http://us.blizzard.com/en-us/) uses BitTorrent (using a proprietary client "Blizzard Downloader") to distribute most content for StarCraft II and World of Warcraft, including the games.
8. Entropia Universe (http://www.entropiauniverse.com/) distributes files through BitTorrent
9. Facebook (http://facebook.com) and Twitter (http://twitter.com) use BitTorrent to distribute updates to servers.
10. CRM Ajatus (http://www.ajatus.info) is built on top of CouchDb
11. Bug Traking system SimpleDefects(http://syncwith.us/) is built using Distributed database Prophet
12. Avvenu (http://www.avvenu.com/) is a Personal File Sharing, Mobile Sharing platform. It is acquird by Nokia.
13. Dekoh (http://dekoh.com) facilitates Personal File Sharing with Web Integration platform
14. ShareDirect (http://www.laplink.com/business_solutions/sharedirect.html) is data synchronization tool by LapLink
15. Pando (http://www.pando.com) by Pando is Publishing, Media Streaming, and file sharing solution
16. StreamerP2P (http://www.streamerp2p.com) is a Broadcasting solution over internet
17. Syncura (http://www.syncura.com) has few products for document sharing and collaboration
18. Digital Media Delivery framework by Velocix (http://www.velocix.com) uses P2P paradigm
19. The Digital Media Exchange (DMX - http://cyber.law.harvard.edu/media/projects/dmx) operated by Harvard Law School
20. Social VPN (http://socialvpn.wordpress.com) is a P2P based VPN platform
Some of the Peer to Peer Initiatives:
1. JXTA (https://jxta.dev.java.net) is P2P Networking initiative by Java
2. P2P-Next (http://www.p2p-next.org) is open source initiative which primarily focuses on digital media.
3. Secure P2P Framework (SePP - http://sourceforge.net/projects/securep2p) focuses on security aspects of P2P. It is developed in java.
4. GNUnet (https://gnunet.org) is one more P2P Framework which focuses on security.
5. AntHill (http://www.cs.unibo.it/projects/anthill) is based on Complex Adaptive System paradigm.
6. MsgConnect (http://www.eldos.com/msgconnect) is proprietary P2P framework offered by Eldos.
7. Brunet (http://boykin.acis.ufl.edu/wiki/index.php/Brunet) is P2P library written in C#
Some of the P2P frameworks for developing business applications:
• Apache CouchDb (http://couchdb.apache.org) is a RESTful object database
• DBE (http://swallow.sourceforge.net) is a Java based P2P container for service oriented architecture
• Prophet (http://syncwith.us) is a P2P-replicated database
• Friend to Friend (F2F - http://ulno.net/f2f) is a Java framework for building P2P business applications using the SIP protocol
• Telepathy Tubes (http://telepathy.freedesktop.org/wiki/Tubes) is a framework to channel application information over instant messaging networks
• BitTottent (http://www.bittorrent.com) is one of the most popular P2P framework to develop enterprise grade applications.
Friday, December 10, 2010
Friday, December 3, 2010
Lean - Software Development
Lean has gained tremendous currency in manufacturing industry. Even in service industry Lean has significant influence. But in software development Lean is still in infancy due to two dominant reasons:
1. High level of manual intervention: Can you imagine coding done by robots at present state of technological sophistication. I understand up to a large extent code is automatically generated but still crucial part is requires human ingenuity.
2. Software engineering is still not a science or engineering but art or at the best craft. There is tremendous debate is going around in industry but still craftsman and artist are winning.
Software development is like Research and Development work where new materials and processes are being invented to fulfill newer needs in better way. Nevertheless, pioneers like to convert art and craft into science and engineering and bring automation into main stream to achieve consistency in quality and reducing the cost of development.
Therefore keeping the spirit of engineering, Lean can be applied in software development. The basic principles of Lean in software development can be transformed.
1. Add Nothing But Value (Eliminate Waste): Think of Agile methodologies in software development. Scrum and User stories are few of the efforts in this direction.
2. Center On The Resources Who Add Value: Since Software Development is labour intensive, value humans and then non human resources like software, hardware and processes.
3. Flow Value From Demand (Decide as late as possible): Work only for those features which are essential for customer now not in future. Think of Just in Time paradigm.
4. Optimize Across Organization: Do ever hear of SOA?
5. Optimize Across Organizations: I hope, you know about Cloud Computing?
6. See the whole: Do not make code as Spaghetti. Follow the principle of Code depth first and the breadth in moderation.
In line with seven wastes of manufacturing, software development also has its own wastes:
1. Overproduction Extra Features: User stories, Scrums
2. Inventory Huge amount of investment in work in progress. Think of water fall model. Details of Stories for current iteration
3. Over Processing Paralysis by Analysis. Follow Test Driven Development, Daily build, write enough code to just pass unit tests. Extra Steps: Co-location, better communication
4. Motion Finding Information: Figuring out what to do, where to go, and how to do.
5. Defects Defects Not Caught by Tests: Test driven development. Catch defects in early of SDLC.
6. Waiting Requirement gatherers are waiting for customers, designers are waiting for requirements, Coders waiting for design, testers waiting for code, and finally customer is waiting for product. Release often and early
7. Transportation Handoffs: Close interaction among developers, designers, testers and certainly with customer. Source code branch merging, email maze.
Reference:
1. http://en.wikipedia.org/wiki/Lean_software_development
2. http://www.leansoftwareinstitute.com/art_ilsd.php
3. Applying Lean to Software Development, an Excerpt from The Art of Software Development by Sara Peyton
4. http://leansoftwareengineering.com/
5. http://poppendieck.blogspot.com/2003/04/lean-software-development.html
6. http://en.wikipedia.org/wiki/Muda_%28Japanese_term%29
7. http://www.leaninnovations.ca/seven_types.html
1. High level of manual intervention: Can you imagine coding done by robots at present state of technological sophistication. I understand up to a large extent code is automatically generated but still crucial part is requires human ingenuity.
2. Software engineering is still not a science or engineering but art or at the best craft. There is tremendous debate is going around in industry but still craftsman and artist are winning.
Software development is like Research and Development work where new materials and processes are being invented to fulfill newer needs in better way. Nevertheless, pioneers like to convert art and craft into science and engineering and bring automation into main stream to achieve consistency in quality and reducing the cost of development.
Therefore keeping the spirit of engineering, Lean can be applied in software development. The basic principles of Lean in software development can be transformed.
1. Add Nothing But Value (Eliminate Waste): Think of Agile methodologies in software development. Scrum and User stories are few of the efforts in this direction.
2. Center On The Resources Who Add Value: Since Software Development is labour intensive, value humans and then non human resources like software, hardware and processes.
3. Flow Value From Demand (Decide as late as possible): Work only for those features which are essential for customer now not in future. Think of Just in Time paradigm.
4. Optimize Across Organization: Do ever hear of SOA?
5. Optimize Across Organizations: I hope, you know about Cloud Computing?
6. See the whole: Do not make code as Spaghetti. Follow the principle of Code depth first and the breadth in moderation.
In line with seven wastes of manufacturing, software development also has its own wastes:
1. Overproduction Extra Features: User stories, Scrums
2. Inventory Huge amount of investment in work in progress. Think of water fall model. Details of Stories for current iteration
3. Over Processing Paralysis by Analysis. Follow Test Driven Development, Daily build, write enough code to just pass unit tests. Extra Steps: Co-location, better communication
4. Motion Finding Information: Figuring out what to do, where to go, and how to do.
5. Defects Defects Not Caught by Tests: Test driven development. Catch defects in early of SDLC.
6. Waiting Requirement gatherers are waiting for customers, designers are waiting for requirements, Coders waiting for design, testers waiting for code, and finally customer is waiting for product. Release often and early
7. Transportation Handoffs: Close interaction among developers, designers, testers and certainly with customer. Source code branch merging, email maze.
Reference:
1. http://en.wikipedia.org/wiki/Lean_software_development
2. http://www.leansoftwareinstitute.com/art_ilsd.php
3. Applying Lean to Software Development, an Excerpt from The Art of Software Development by Sara Peyton
4. http://leansoftwareengineering.com/
5. http://poppendieck.blogspot.com/2003/04/lean-software-development.html
6. http://en.wikipedia.org/wiki/Muda_%28Japanese_term%29
7. http://www.leaninnovations.ca/seven_types.html
Thursday, December 2, 2010
Myths of Agile
1. Agile is just Scrum or Extreme Programming
Truth: Agile is not a single methodology. It is a collection of Best Practices.
2. Agile methods are not suitable for large projects
Truth: Agile is not a fixed notion but is a collection of best practices. Use whatever suites in the given conditions. Use judicious use of Depth First and Breadth then.
3. Agile means no documentation
Truth: Working software is more valued than documentation but documentation is required for green horns, partners, customers and lots of others. Teams separated by time, space and discipline require documentation to pass understanding.
4. Agile means no upfront design
Truth: Any software system requires infrastructure. So always think of depth with breadth. Agile values ability to change over plan.
5. Agile is undisciplined
Agile requires disciple of high standard. Each member is responsible of her acts and deliverables.
6. Agile Development is not planned one.
Agile believes in rolling wave planning not in static plan.
7. Agile is not suitable for product development
Agile is for software development not for the product conceptualization. Keep proper check and balances on depth vs breadth of code.
8. Agile is not suitable for fixed bid projects
Lot of service companies are using it for fixed bid project. Agile requires transparency from service provider and customer.
References:
1. http://blog.versionone.com/blog/the-agile-development-blog/0/0/five-myths-of-agile-development-myth-5-agile-development-is-just-another-fad
2. http://www.authorstream.com/Presentation/vickydhiman-67414-common-myths-agile-myth-main-science-technology-ppt-powerpoint/
3. http://www.theappgap.com/exploring-ten-myths-about-agile-development.html
4. http://www.wiziq.com/tutorial/7418-Common-Myths-about-Agile
5. http://www.versionone.com/pdf/AgileMyths_BetterSoftware.pdf
6. http://agileworld.blogspot.com/2008/04/agile-myths.html
7. http://www.projectez.com/Files/special%20report%20-%20myths%20of%20Agile.pdf
8. http://stackoverflow.com/questions/1871110/agile-myths-and-misconceptions
9. http://www.drdobbs.com/architecture-and-design/206501655;jsessionid=BQPXX0LZG1ASLQE1GHPCKH4ATMY32JVN
Truth: Agile is not a single methodology. It is a collection of Best Practices.
2. Agile methods are not suitable for large projects
Truth: Agile is not a fixed notion but is a collection of best practices. Use whatever suites in the given conditions. Use judicious use of Depth First and Breadth then.
3. Agile means no documentation
Truth: Working software is more valued than documentation but documentation is required for green horns, partners, customers and lots of others. Teams separated by time, space and discipline require documentation to pass understanding.
4. Agile means no upfront design
Truth: Any software system requires infrastructure. So always think of depth with breadth. Agile values ability to change over plan.
5. Agile is undisciplined
Agile requires disciple of high standard. Each member is responsible of her acts and deliverables.
6. Agile Development is not planned one.
Agile believes in rolling wave planning not in static plan.
7. Agile is not suitable for product development
Agile is for software development not for the product conceptualization. Keep proper check and balances on depth vs breadth of code.
8. Agile is not suitable for fixed bid projects
Lot of service companies are using it for fixed bid project. Agile requires transparency from service provider and customer.
References:
1. http://blog.versionone.com/blog/the-agile-development-blog/0/0/five-myths-of-agile-development-myth-5-agile-development-is-just-another-fad
2. http://www.authorstream.com/Presentation/vickydhiman-67414-common-myths-agile-myth-main-science-technology-ppt-powerpoint/
3. http://www.theappgap.com/exploring-ten-myths-about-agile-development.html
4. http://www.wiziq.com/tutorial/7418-Common-Myths-about-Agile
5. http://www.versionone.com/pdf/AgileMyths_BetterSoftware.pdf
6. http://agileworld.blogspot.com/2008/04/agile-myths.html
7. http://www.projectez.com/Files/special%20report%20-%20myths%20of%20Agile.pdf
8. http://stackoverflow.com/questions/1871110/agile-myths-and-misconceptions
9. http://www.drdobbs.com/architecture-and-design/206501655;jsessionid=BQPXX0LZG1ASLQE1GHPCKH4ATMY32JVN
Wednesday, December 1, 2010
Book Review: I. M. Wright's Hard Code
Book Review: I. M. Wright's Hard Code by Eric Brechner: Publisher- Microsoft Press: ISBN- 13: 978-0735624351
I.M Wright’s Hard Code is authored by Eric Brechner, veteran a Microsoft. Though book is published in 2007 but still holds its value in software project management. Book is filled with nuggets of wisdom for any person who is involved in Software project management or influence corporate IT culture.
Author is very straight forward and blunt in delivery of his opinion and belief which makes him distinct in crowd.
Book is collection of short essays which are organized in ten chapters. Book covers almost all aspects of software developments and primarily targets project managers and higher ups in management chain.
Certainly this book will stay in my bookshelf. I highly recommend this book.
Disclaimer: I did not get paid to review this book, and I do not stand to gain anything if you buy the book. I have no relationship with the publisher or the author.
Further reading: Complementary books to I.M Wright’s Hard Code are Getting Results from Software Development Teams by Dr. Lawrence J. Peters (http://www.amazon.com/Getting-Results-Software-Development-Teams/dp/0735623465), Solid Code by Donis Marshall & John Brono (http://www.amazon.com/Solid-Code-Donis-Marshall/dp/0735625921), Code Complete: A Practical Handbook of Software Construction by Steve McConnell (http://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670)
One can get more information about book and related topics from:
1. Amazon: http://www.amazon.com/Wrights-Hard-Code-Best-Practices/dp/0735624356
2. Author’s Blog: http://blogs.msdn.com/b/eric_brechner/
3. Review: http://mvark.blogspot.com/2008/11/book-review-i-m-wrights-hard-code.html
I.M Wright’s Hard Code is authored by Eric Brechner, veteran a Microsoft. Though book is published in 2007 but still holds its value in software project management. Book is filled with nuggets of wisdom for any person who is involved in Software project management or influence corporate IT culture.
Author is very straight forward and blunt in delivery of his opinion and belief which makes him distinct in crowd.
Book is collection of short essays which are organized in ten chapters. Book covers almost all aspects of software developments and primarily targets project managers and higher ups in management chain.
Certainly this book will stay in my bookshelf. I highly recommend this book.
Disclaimer: I did not get paid to review this book, and I do not stand to gain anything if you buy the book. I have no relationship with the publisher or the author.
Further reading: Complementary books to I.M Wright’s Hard Code are Getting Results from Software Development Teams by Dr. Lawrence J. Peters (http://www.amazon.com/Getting-Results-Software-Development-Teams/dp/0735623465), Solid Code by Donis Marshall & John Brono (http://www.amazon.com/Solid-Code-Donis-Marshall/dp/0735625921), Code Complete: A Practical Handbook of Software Construction by Steve McConnell (http://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670)
One can get more information about book and related topics from:
1. Amazon: http://www.amazon.com/Wrights-Hard-Code-Best-Practices/dp/0735624356
2. Author’s Blog: http://blogs.msdn.com/b/eric_brechner/
3. Review: http://mvark.blogspot.com/2008/11/book-review-i-m-wrights-hard-code.html
Subscribe to:
Posts (Atom)