Tuesday, December 17, 2013

Time-lapse photography tryouts

I am working on few time-lapses these days. All shots were taken in Randwick, Sydney.

Thursday, October 17, 2013

Sun turned red

Haven't see the sun turned red like this. This was due to multiple bush fires around Sydney and the due to the windy climate, the smoke covered up the whole city for several hours.

Saturday, August 10, 2013

Defining Traditional Software Configuration Management (SCM)

Almost all the research on software configuration management has its own definition of the subject. All of those definitions highlights the idea of "dealing with the evolution". That means managing changes to the software during its life cycle. Much older studies on software configuration management processes more focus on controlling or limiting the changes happen to the software. But the studies that take agile process development in to the picture more focus on how to adapt to the changes to the software.  Here I have listed out few definitions of traditional software configuration management.

IEEE - "Configuration Management is the process of identifying and defining the items in the system, controlling the change of these items throughout their lifecycle, recording and reporting the status of items and change requests, and verifying the completeness and correctness of items." [1]

Tichy - "Software configuration management (SCM) is the discipline of managing the evolution of large and complex software systems."[2]

CMM - "Software Configuration Management involves identifying the configuration of the software (i.e., selected software work products and their descriptions) at given points in time, systematically controlling changes to the configuration, and maintaining the integrity and traceability of the configuration throughout the software life cycle. The work products placed under software configuration management include the software products that are delivered to the customer (e.g., the software requirements document and the code) and the items that are identified with or required to create these software products (e.g., the compiler)".[3]

RUP - "The task of defining and maintaining configurations and versions of artefacts. This includes baselining, version control, status control, and storage control of the artefacts." [4]

A common list of processes that usually are included in the definition of software configuration management:
  • Identify configuration items
  • Version control of configuration items
  • Release management
  • Build management
  • Controlling/Adapting to changes
  • Tracking status
  • Auditing

[1] IEEE-Standard-729-1983, Standard Glossary for Software Engineering, ANSI/IEEE.
[2] Tools for software configuration management. In Proceedings of the International Workshop on Software Version and Configuration Control (Grassau, Germany), J. F. H. Winkler, Ed., Teubner Verlag, 1–20, 1988.
[3] Carnegie Mellon Univ. Software Engineering Inst.The Capability Maturity Model: Guidelines for Improving the Software Process, Addison Wesley, 1995.
[4] Philippe Kruchten, The Rational Unified Process: An Introduction, Addison Wesley, 2003.

Monday, July 1, 2013

Understanding the organisation's culture when designing a tool

When we design software for people, one thing we need to realize is the culture of the organisation. Because it exists before the implementation of the tool. Also organisation's culture determines the general mindset of people who are going to use that tool.
For an example, if you are going to design a issue tracker system for a software product, the sales team would expect a different set of user friendly UIs and data to be managed by the tool. If that tool is for developers, then they would expect more flexibility to add new resources to be managed and integration of the tool with other services/APIs like source code repository, email etc.
If we don't get this at design phase, a software development team will develop a tool for a sales team  where the tool has clueless features for sales guys.
One other aspect of this concern surfaces out when releasing major modifications to a tool. For an example, FaceBook users criticised a lot about the new timeline feature and GMail's new compose feature also was criticised a lot by the existing users.