Continuous Software Engineering has been gaining signifiant momentum in terms of widespread adoption among large and small Software houses. This paradigm shift is based on the promise of early, frequent delivery and deployment of software features and continuous feedback on the usefulness and adoption of the features. One of the key challenging area of practice for continuous software engineering is architecting – Software development teams are expected to adopt new conceptualisation and designing approaches and design decision making processes – for example, moving from monolithic to micro services. Given the significant challenges of architectural issues in DevOps, it is important to build and share evidence-based body of knowledge about practices and processes for architectural support in Continuous Software Engineering. We have undertaken a significant research program on this topic and one of our comprehensive pieces of of work has just been accepted in a premier Software Engineering journal with the title of, An Empirical Study of Architecting for Continuous Delivery and Deployment, following is the abstract copied from the paper for the readers of this blog. The paper’s pre-print copies will be available soon. Read More »Architecting for Continuous Delivery and Deployment
Human-Centric Software Engineering
A large number of Software Engineering teams are virtual, which are characterised by various types of distances such geographical, culture, temporal, and knowledge. Such distances can cause a number of small and big challenges that lead sub-optimal development teams or event project failures. Software engineering researchers and practitioners have been researching and debating the cost and benefits of site visits for enabling software development teams to spend time together in order to get to know each other professionally and personally. It is argued that such visits result in establishing and growing trust that is important for successful teams. However, software development managers always find it hard to make a strong enough case for investing such visits. We have carried out a longitudinal case study focused on the socio-ethnical dynamics and potential benefits of site visits in terms of enhanced trust and cooperation among team members who came from entirely different regions, culture, region, and socio-economic background. Our study has found very useful insights for software development managers and researchers. We are sharing the details of our study through the pre-print copy of our paper, whose abstract is provided here.
Smart Cities initiatives can mean different things to different people and solutions providers. However, there is no doubt that a smart city solution should not only focus on providing the core service but should also contribute to the safety of the users of a service. That is why quite a lot of smart cities solutions are being presented from safety perspective as well – smart cities ought to be safer cities. I was honoured to be invited to present our initiative on Smart Cities R&D and innovation at an event co-organised by NEC and IDC – the event was titled, “Smarter and Safer Society – How ICT makes Government and Enterprise work smarter ”. It was a great get together where different speakers and panelists were enthusiastically presenting their visions, understanding, and observations about smart cities initiatives and solutions. I really enjoyed the talks, dialogues between panelist and audience. I spoke about our initiative on setting up an interdisciplinary centre for research, development, and innovation that can lead to citizen-inspired socio-technical solutions for making a city smarter. Here are the presentation that I used for supporting the talk and following is the abstract of my talk.
Read More »Talk at NEC & IDC Event on Smarter and Safer Societies
Software is becoming increasing pervasive. We have been witnessing dramatic changes and improvements in our lives courtesy to software based devices, services, and systems. Several reports are appearing that emphasise the importance of software engineering for continuously driving the ICT based innovation and job creation. For example, NESSI, a European technology platform has released a report that advocates the investment in capacity building for software engineering for emerging trends and technologies such as cloud computing, big data, and cyber physical systems. There are other European reports that talk about strengthening European capacity in software engineering as software industry generates billions of euros of revenues and provides millions of jobs in Europe.Read More »Making Software and Software Engineering Visible
Software Design is one of the most important activities of Software Development lifecycle as the design decisions usually have significant impact on many other decisions to be made later on; most importantly software design facilities… Read More »Teaching Software Design with Holistic Personas
Knowledge sharing is critical for successful software development projects – Software Engineering community has been investing huge amount of efforts in supporting and promoting knowledge sharing over the last many years with mixed outcomes. Knowledge sharing for gaining common understanding is considered a central concern when software development work crosses geographical, cultural, or organizational boundaries. One of our key research topic is knowledge sharing in Globally Distributed teams. Recently I was invited to give a keynote talk at the XIII Brazilian Symposium on Software Quality (SBQS 2014) to be held in August in Brazil. Here are TalkinBrazil-05August2014 (19 MB size). I spoke about the knowledge sharing challenges and solutions . Read More »Keynote Talk on Knowledge Sharing & Global Software Development
Knowledge sharing is an important, but usually ignored activity because of time and effort required are hardly available; especially the documentation based knowledge sharing approaches have hard time gaining acceptance by contemporary software development teams… Read More »Artefactual Culture for Knowledge Sharing in Global Software Engineering
One of key challenges of Global Software Engineering (GSE) is to help geographically distributed team members to gain a common understanding of the processes. Lack of process knowing results in ambiguity in responsibilities, roles, and assigned… Read More »Enabling Process Knowing in Global Software Engineering
The tension between the followers of Agile and Architecture-centric approaches appears to be easing to some extent; perhaps, both sides have realised that there are potentially several benefits of taking a middle road – Integrating Agile and Architectural approaches and practices wherever it makes sense. One of the key sticking points in the debate is the claim of the proponents of Agile approaches that software architecture emerges from continuous small refactoring. However, the is not much empirical evidence to support the assumptions underpinning the claim. Our recent article, Towards an Evidence-Based Understanding of Emergence of Architecture Through Continuous Refactoring in Agile Software Development, on this topic reveals the role of contextual factors in the achievement of “a satisfactory architecture through continuous refactoring”. This article has been accepted in the 11th Working IEEE/IFIP Conference on Software Architecture (WICSA) to be organised between 7 and 11 May, 2014 in Sydney, Australia.
Whilst it has widely been recognised that agile and architecture-centric approaches need to be integrating for developing large scale software intensive systems, there has not been much work on providing a good source of guidance based on multiple perspectives for successfully integrate architecture-centric approaches in agile methods. A few years ago, a few colleagues and I started working on an edited book, which has just been completed/published after all the ups-and-downs that usually characterise these kinds of undertakings. I’m very glad to share that the book, Agile Software Architecture: Aligning Agile Processes and Software Architecture, is available for purchase. For interested readers, here is the Table of Content.
The key goal of this book is to provide practitioners and researchers interested in combining agile and architectural approaches with a comprehensive and reliable body of knowledge about the challenges involved in integrating architecture-centric approaches with agile approaches and the solutions to address those challenges. This book is expected to provide a read with detailed guidance on whether or not and how agile and architectural cultures can be made to co-exist depending upon the contextual factors. This book also provides useful leads for future research in both architecture and agile in order to bridge such gaps by developing appropriate approaches, strategies, and tools for supporting effective and efficient integration of agile and architecture-centric approaches.