Category: Human-Centric Software Engineering
Architecting for Continuous Delivery and Deployment
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…
The Role of Site Visits in Software Engineering Teams
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…
Making Software and Software Engineering Visible
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…
Teaching Software Design with Holistic Personas
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 (or inhibits) the achievements of quality requirements expected of a system. hence, knowledgable and expert designers critical for any software…
Keynote Talk on Knowledge Sharing & Global Software Development
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…
Enabling Process Knowing 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 tasks and the processes to be followed by different sites. This problem is called “process distance.” There can be several…
Continuous Refactoring and Satisfactory Architecture
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…
A Practice Oriented Guide on Agile Architecting!
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…