Books for Software Architects – a collection (from Linkedin group “97 things an architect….”)


1. The Art of System Architecting; Eberhardt Rechtin + Mark W. Maier; CRC Press; 1997

2. xUnit Test Patterns.

3. Essential Software Architecture, by Gorton.

4. Beyond Software Architecture:Creating and Sustaining Winning Solutions, by Holmann.

5. Glen, P. (2003). Leading geeks: How to manage and lead people who deliver technology. San Francisco: Jossey-Bass.

6. Xia, W., & Lee, G. (2004). Grasping the Complexity of IS Development Projects. Communications of the ACM, 47(5), 68–74.

7. Cooke-Davies, T., Cicmil, S., Crawford, L., & Richardson, K. (2008). We’re Not in Kansas Anymore, Toto: Mapping the Strange Landscape of Complexity Theory, and Its Relationship to Project Mangement. IEEE Engineering Management Review, 36(2), 5–21.

8. The No Asshole Rule, Robert I Sutton

9. The Nonverbal Advantage, Carol Kinsley Goman

10. Group Dynamics for Teams, Daniel J. Levi

11. How Google Tests Software, James A Whittaker

12. Agile Testing, Lisa Crispin and Janet Gregory

13. Release It!, Michael T. Nygard

14. Continuous Delivery, Jez Humble and David Farley

15. Clean Code, Robert C. Martin

16. The Productive Programmer, Neil Ford

17. The Pragmatic Programmer, Andrew Hunt and David Thomas

18. Brown, W. J., Malveau, R. C., McCormick III, H. W., & Mowbray, T. J. (1998). AntiPatterns: refactoring software, architectures, and projects in crisis. John Wiley & Sons, Inc. New York, NY, USA.

19. The Mythical Man Month

20. Babar, M. A., Dingsoyr, T., Lago, P., & Vliet, H. (2009). Knowledge Management in Software Architecture: Theory and Practice. Berlin, Germany: Springer Berlin Heidelberg.

21. Williams, B. J., & Carver, J. C. (2010). Characterizing software architecture changes: A systematic review. Information and Software Technology, 52(1), 31–51.

22. Kruchten, P., Capilla, R., & Duenas, J. (2009). The Decision View’s Role in Software Architecture Practice. IEEE Software, 26(2), 36.

23. Falessi, D., Babar, M. A., Cantone, G., & Kruchten, P. (2010). Applying empirical software engineering to software architecture: challenges and lessons learned. Empirical Software Engineering, 15(3), 250–276.

24. Jansen, A., Avgeriou, P., & van der Ven, J. S. (2009). Enriching software architecture documentation. Journal of Systems and Software, 82(8), 1232–1248.

25. Documenting software architectures: views and beyond. Boston, MA: Pearson Education.

26. Software Architecture in Practice

27. Evaluating Software Architectures, Methods and Case Studies

28. Documenting Software Architecture, Views and Beyond

29. Architecture-Centric Software Project Management: A Practical Guide


USB 3.0 disk xfer speed “VS” USB 2.0 disk xfer speed


I recently bought an iOmega 1TB eHDD that supports USB 3.0 interface. Before I bought it, I wanted to know the fundamental difference in the xfer speeds of USB 2.x and USB 3.x interfaces. I researched a lot but could find only "official" notes on the topic.

I finally got my USB 3.0 interface compatible m/c and did extensive xfer checks over the last few weeks.

USB 2.0 m/c – USB 3.0 disk : xfer speed is 2.2MB/s – 3.0MB/s
USB 3.0 m/c – USB 3.0 disk : xfer speed is 50MB/s – 75MB/s

So, one gets an jump up of 25 times by using a USB 3.0 disk with USB 3.0 m/c for most cases.

Come back to learn more about performance on specific file types (media/doc/bin)

Rendezvous with MongoDB


A fellow colleague asked me about MongoDB – a popular document oriented NoSQL database. I downloaded the latest source from here. After a very minor code change in loadgenerator module, I could build all MongoDB components on Redhat Enterprise Linux 5.x. Key thing to note in building MongoDB on RHEL5 is the fact that it uses scons – an intuitive software build tool. I also needed Python v2.5+ and Boost v1.35+. Check it out.