Research Journal of Recent Sciences _________________________________________________ ISSN 2277-2502 Vol. 3(12), 48-52, December (2014) Res.J.Recent Sci. International Science Congress Association 47 Role of Software Architect: A Pakistani Software Industry Perspective Shah Muhammad Arif, Khan Iftikhar Ahmed and Shafi Muhammad University of Engineering and Technology, Mardan Campus, UET Peshawar, PAKISTAN Available online at: www.isca.in , www.isca.me Received 4th December 2013, revised 31th January 2014, accepted 26th March 2014Abstract There is a lack of research on effect of cultural and social issues on the role of software architect despite various evidences of their impact on software development. This study analyzed software architects and other software engineering professionals to assess their role in the social and cultural context of Pakistani software industry. The results suggest that majority of professionals perform various task not in their designated responsibilities. In turn this affects their performance. In addition time allocation for architecture development seem not to be affected with the use of architecture development tools which is opposite of developed countries. An alignment was found with the literature in the context that designated architect allocated more time for architecture development as compared to other professionals involved in architecture development. Similarly the perceptions of all those involved in architecture development seem not to affect time allocation of architecture development. Overall, the lack of designated architects in software projects led to under standard software projects a trend which needs to be changed.Keywords: Role, software architect, software architecture, social issues, cultural issues. IntroductionIndubitably computer software is playing a vital and distinctive role for human ease in approximately all the fields. From science to art and business domains, one will for sure find them replete with software stuff. Software has helped in the ascension of automation, which is an inevitable proof of its role and importance in human life. Software development is categorized into various phases. The common phases in all software development cycles are: 1- Vision 2-Definition 3-Development 4-Maintenance. The basic aim of every project remains the maximum profit which is subjected to the customer satisfaction. And to handle the customer and system’s requirements, software engineering discipline has sufficient number of solutions; software architecture is also one of them. It does not only help in requirement gathering and rectification but also led to understanding the whole system at a glance before it is developed. Bass et al defined software architecture as: “The software architecture of a system is the structure or structures of the system, which comprise software components, the externally visible properties of those components, and the relationships among them”. Architecture plays a significant role in software engineering processes. It’s one of the few frameworks which help to develop efficient software at a minimum cost3,4. Software architecture establishes communication among the stakeholders and it helps in accurate requirement gathering5-9. Therefore an accurate architecture guarantees the success of the system; whereas a wrong architecture or the absence of architecture could lead to the collapse of a software project. The architecture of the system helps in an insight view of the quality of the system in early stages of the project. The importance of the software architecture provides evidence for the significance of the role of software architects. The architect’s role is the most challenging in any software project10. An architect could be a person, team or organization that architects the system architecture [IEEE, 1471]. The very basic motivation of a software architect is to develop architecture for system, however additionally a software architect plays many other important roles in the life cycle of a software project. A software architect understands the development process, has the business domain knowledge, and so, analysis and programming skills are the part of architect’s toolkit10. An architect is a good communicator, who is aware of the organizational politics and plays important role in decision making during the project10. An architect plays the role of a catalyst to enhance the communication, and develop understanding between clients and developers11. Although software architects are not project managers but an architect is considered to be a technical leader of software project, as in all the technical decisions the architect’s participations is must10,12. Though, software architect has professional skills to carry on software projects, however it seems that cultural and social aspects also play an important part in his/her professional work. There is significant research on the role of architects in software projects as mentioned above, there is no known research directly related to social and cultural issues and their relation with architects and development of architecture. Various standards for the development of the software as well as architecture do Research Journal of Recent Sciences _____________________________________________________________ ISSN 2277-2502Vol. 3(12), 48-52, December (2014) Res.J.Recent Sci. International Science Congress Association 48 exist but culture of software development is discrete at different geographical locations13,14. There is much research on social and cultural aspects as well as their impact on different characteristics of individuals. For example culture exercised in public sector firms is different than private sector firms, which do impact the performance of individuals’ involved15. People working in the culture of private enterprises may be more efficient than those working in the public sector culture16. University teachers having same experience in academic background but working for different universities having different culture of HR (Human Resource) performs completely differently with respect to performance17. Social and cultural aspects that affect different jobs also affect software development. Software development process varies according to the size and complexity of the software being developed. The software process and the role of people involved may also be different because of social and cultural norms of software companies over different geographical locations18. Specifically in GSD (Global Software Development), the issue of cultural differences could be emphasized14. Various phases of software development process are affected by the social and cultural differences18,19,14. One of the examples includes the way the software development standards are followed. Companies in developing countries cannot afford to follow standards that are exercised in software companies of developed countries. The reason of unaffordability is the lack of relevant professionals and standard tools13,20,14. Pakistan is also a developing country. It is therefore, presumed that Pakistan is also practicing software development according to its requirements rather than following standards. Therefore, an assumption is also made about Pakistani software industry that IT professionals perform tasks different from the roles they are currently hired on. This might also be therefore affecting the development of software architecture. In addition, software architect may also be performing other tasks or the roles that are not part of his job description. On the other hand professionals with job designations other than architect might be performing the role of architect in these settings. Various hypotheses are therefore formulated to highlight the role of software architects in Pakistani software industry. The next section will discuss the process of hypothesis formulation forming bases for this research. Experimental section will follow hypotheses formulation section which will be followed by the analysis section. The last section will discuss the conclusions, limitations and possibilities for the future research arising from this research. Hypothesis Hypothesis 1: As discussed earlier, the multiplicity of the software architect’s skills indicates his involvement in other development activities. It is assumed that in most software companies not following the standard software development life cycle, the architect’s role is performed by an experienced analyst, programmer or a team lead. As, there is mostly no designated architect to develop software architecture, one of the skilled and experienced programmers, analyst or other team member develops the architecture. This leads to our first hypothesis: : In Pakistani software companies, less than 20% professionals play a designated architect role. 0 (null hypothesis): In Pakistani software companies, more than 80% of professionals not designated as architect are involved in architecture development. Hypothesis 2: Tools and techniques play an important role for almost every hectic activity of software development [9]21. For software engineering in general and for architecture development in particular, there are number of tools and techniques to make the process swift22. These tools and techniques significantly reduce development time23 as well as help to build quality software24. Therefore, it is presumed that people performing the role of software architect and are also using some tool in architecture development will allocate lesser time in architecture development. The hypothesis follows as: : The use of standard tools and techniques results in lower time allocation for architecture development in Pakistani software industry as is the case globally. : The use of standard tools and techniques do not result in lower time allocation for architecture development.Hypothesis 3: The importance of architecture discussed earlier in “introduction” part indicates that architecture development requires significant amount of time. Software architect must allocate half of his time to develop architecture25. It was also narrated that very few individuals directly are designated as architects and mostly professionals as performers of other important activities play role of architect as well. These undesignated software architects might allocate lesser time for development of architecture as architecture development is not their primary concern. The undesignated architect allocates less time to the architecture development : The undesignated architect allocates sufficient time to the architecture development.Hypothesis 4: It is widely accepted notion that, whenever it comes to something technical, experts of the field are the best to solve the problem. Experts are people with related professional knowledge. However, as we have assumed that in Pakistani software industry, mostly there are no architects to develop Research Journal of Recent Sciences _____________________________________________________________ ISSN 2277-2502Vol. 3(12), 48-52, December (2014) Res.J.Recent Sci. International Science Congress Association 49 architecture, Professionals acting as architects might consume less time on architecture development. This might result in speedy development of architecture but as a tradeoff results are of low quality software. This led us to form our fourth hypothesis: : Professional knowledge related to software architecture results in higher percentage of time allocation to the development of architecture as compared to those who do not have professional knowledge related to architecture development. : There is no significant difference between the allocation of time for architecture development between professionals with or without professional knowledge of architecture development. Hypothesis 5: Again, it is general observation that experts of any domain are best problem solver. However a person designated as an architect not necessarily have the core professional knowledge of architecture development. Therefore architecture development might be much enhanced if the architect (Designated or not) have this core professional knowledge. These experts (people having related professional knowledge) therefore tend to follow standards as compared to professional without this core knowledge. This led us to develop the following hypothesis: Professionals developing architecture follow standards if they have core knowledge as compared to those who do not have architecture professional knowledge. : There is no difference in following the architecture standards while developing architecture between professionals having core architecture knowledge and no core architecture knowledgeHypothesis 6: It was discussed earlier that software architects perform activities other than their primary role as well. This results into two possibilities in the context of Pakistani software industry: 1) the primary role of the architect is to develop architecture and secondary role is to help other professionals or to carry on other professional duties as is expected from the software architect 2) The professional with the professional roles other than an architect might also likely to carry on duties of an architect. This argument helps us to formulate following hypothesis: People performing basic role as architect with other responsibilities produce standard architectures as compared to those performing role of architect as secondary role. : There is no difference in production of standard architecture between people performing basic role as architect as compared to those performing role of architect as secondary role.Data collection and preparation: Different set of questions were prepared to collect the required data and to know the perception of different IT professionals working in Pakistani software houses in context of architecture design and development. Both hard and soft forms of questionnaires were prepared and a consent form was attached with both the versions to know about the willingness of the participants. The web version of the questionnaire was prepared to target large number of people easily. The data was collected from different software companies of various cities of Pakistan. For hypothesis 1, two questions were asked such as, what is your basic role in the company? And does your company have a designated software architect? With choices provided Yes, No or don’t know. For hypothesis 2, a question was asked from the participants that whether they follow standard tools and techniques to develop architecture? They were given the choice to select from three options: Yes, No and Don’t Know respectively.For hypothesis 3, two questions were asked e.g. whether they have Designated architect in their projects having choices of: Yes, No and don’t know and what percentage of time do they allocate for the architecture development? For hypothesis 4, again two questions were asked that whether, the architecture developers have any professional knowledge of developing it? And what percentage of time do they allocate for architecture development. For hypothesis 5, three questions were asked: Are they designated architects? Do they have professional knowledge for architecture development? And what they think whether architect with professional knowledge develop better architecture? Yes, No, Don’t know, were the options provided. For hypothesis 6, two question were asked, such as, what basic role the participant are performing? And Do they think that they are developing architecture according to standards or not? Participants: A total of 36 participants from the field participated in this study. The participants’ average age was 30 years. Their age ranged from 24 to 37 years. The participants were somehow responsible for developing architecture. The mean of participants’ software development experience was 6.24 years ranged from 9 months to 12 years. Results and Discussion Hypothesis 1: A two tailed non-parametric binomial test was conducted on the categorized (Designated as architect or not an architect) basic role of the software professionals in a software project. The results showed that less than 20% of professionals perform key and designated role of architecture development with the job description of architect in various software Research Journal of Recent Sciences _____________________________________________________________ ISSN 2277-2502Vol. 3(12), 48-52, December (2014) Res.J.Recent Sci. International Science Congress Association 50 companies of Pakistan. Rest of professionals play roles other than architect and yet contribute in development of architecture in various ways. Thus, the result also rejected the null hypothesis with (0.001). This also implies that Pakistani software companies currently are not focusing on hiring the specialized architects to develop architectures of the projects. Hypothesis 2: With respect to use of tools in architecture development, simple statistics reveal that about 47% followed standard tool and techniques to develop architecture, 45% did not follow standard tool and techniques and 8% stated that they don’t know about any tool and techniques for architecture development. The participants who didn’t know about standard tools and techniques for architecture (n=3) were excluded from analysis. Analysis of Variance (ANOVA) was carried out by taking ‘percentage of time allocated to architecture development’ as Dependent variable and the categorical variable “The use of standard tool and techniques for architecture development” as independent variable. The results revealed that there is no significant difference ((F(1,32) = 0.3, p = 0.6)) between those who use standard tools and those who do not on the percentage of time allocation for architecture development. In other words professionals allocate architecture development time without taking into consideration that they are going to use tools or not. Hypothesis 3: For the purpose of testing hypothesis 3, the variables ‘basic role of the professional’ was further categorized in two categories (Architect, and Non Architect). A one way ANOVA was carried on by take ‘percentage of time allocated to architecture development’ as dependent variable and the categorical variable mentioned as independent variable. The results revealed a non-significant ((F (1, 32) = 3, p = 0.09)) effect of architects on their time allocation for developing architecture as compared to non-architects. However, there was a trend seen toward that with p 0.1. Form the means of time allocation; it is also revealed that architects allocated an average of 16% of total project time for architecture development as compared to non-architects who only spared 10.5% of the project time for architecture development. Hypothesis 4: A one way ANOVA was carried on with the time allocated for the architecture as dependent variables and ‘professional knowledge to develop architecture’ as independent variable. Results indicated that professionals with the thought that they have professional knowledge to develop architecture do not differ significantly (F(1,35)=0.33, p = 0.57)) in term of allocation of time to architecture development from the professionals who doesn’t think that they have such knowledge. Thus alternative hypothesis is accepted and null hypothesis is rejected. Hypothesis 5: A Chi square analysis was carried on between two categorized variables: Participants professional knowledge of architecture (Yes/No) vs. their perception that they develop standard architecture. Results showed that there is a significant relation ((1,36) = 21.9, 0.01) between the participants professional knowledge of architecture development and their perception that they have developed a standard software architecture after the completion of the software project. A detailed analysis showed that majority of participants (72%) despite indicating that they do not have professional knowledge to develop architecture perceived that they have developed standard architecture. However, from the rest of the participants who indicated that they do have professional knowledge to develop architecture, 70% thought that their developed architecture is not according to standards. This may indicate that these professional having professional knowledge of architecture development can think in more depth about architecture and thus even missing smaller portions of standards might let them to think that there architecture is not according to the standards. Hypothesis 6: A Chi Square analysis carried on showed that there is no significant relation between the participants’ basic role and their perception that they have developed a standard architecture. However, among those who were not performing basic role of architect, 78% think that their architecture is a standard architecture and rest think otherwise. Among those who were performing basic role of architect and designers, 89% categorized their developed architecture as standard architecture and rest indicated otherwise. Conclusion Complex software related to social networking software28, Distributed transactions processing29, Knowledge management30as well as usage of data mining in e-commerce systems31 are propelling which are now mostly rooted in south Asian countries. In this paper the role of the software architect is taken into consideration in the context of Pakistani (A south Asian country) software industry. The results suggest that there is a need to focus on the architectural aspects of software projects. In addition no significant difference was found between those who use standard tools and those who do not based on the percentage of time allocation for architecture development. Research like26 states that use of tools reduces the architectural development time. This study was unable to replicate these results. This means that participants were not well trained to use these tools and thus uses of these tools were not effective. This implies that there is need to design training sessions for software engineers and architects for effective utilization of these tools. Results also showed a trend that designated architects allocate more time for software architecture development as compared to non-architects. Architects allocate more time to architecture development to form strong bases for quality oriented functional software27. This result therefore suggests that designated architects might be able to improvise architecture development for quality software production in Pakistani software industry. Results also suggest that there should be an increased role of a designated architect in software projects. Professionals with the Research Journal of Recent Sciences _____________________________________________________________ ISSN 2277-2502Vol. 3(12), 48-52, December (2014) Res.J.Recent Sci. International Science Congress Association 51 perception that ‘they have professional knowledge to develop architecture’ do not differ significantly in term of allocation of time to architecture development as compared to professionals who doesn’t think that they have such knowledge. In addition there was no significant relation between the participants’ basic role and their perception that they have developed a standard architecture was found. There is obvious reason than professional think they are performing to the best of their abilities ,however, professional architects are more inclined toward the thinking their developed architecture is standard one (89%) as compared to those who are not performing basic role of architect (78%). Like all empirical researches there are also some limitations in this empirical study. This research is based on the perceptions of the participants’ rather practical observations. Perception of different people for same domain could vary. Some practical observations about the architecture development process in organizations’ could have increased the strength of findings. However, code and architecture is seen by organizations as of very private nature and thus very difficult to obtain for analysis purposes. The role of architect, importance of architecture and social and cultural influences of software development are well known topics in the realm of research publications, but the social and cultural aspects of software architecting are rarely discussed. This research provided a base to learn about its social and cultural impacts but still is not complete at all in many ways. For example there is a need to focus on practical observations of architectures developed both locally and internationally for effective comparison of cultural differences in architecture development. References 1.Ian Summerville, Software Engineering, (2011) 2.Bass L., Clements P. and Kazman R., Software Architecture in Practice, SEI Series in Software Engineering. Addison-Wesley, (1998) 3. Garlan David and Dewayne E. Perry, Introduction to the special issue on software architecture, IEEE Trans. Software Eng,21(4), 269-274 (1995) 4. Shaw Mary and David Garlan, Software architecture : Perspectives on an emerging discipline, (1996) 5. Garlan David, The role of software architecture in requirements engineering, Requirements Engineering, Proceedings of the First International Conference, (1994) 6. Northrop Linda, The Importance of Software Architecture, Software Engineering Institute, Carnegie Mellon University, Available: http://sunset.usc.edu/gsaw/gsaw2003/s13/northrop.pdf, (2003) 7.Perry D.E. and Wolf A.L., Foundations for the Study of Software Architectures, ACM SIGSOFT Software Engineering Notes, 17(4), 40-52 (1992) 8. Bencomo Nelly, Paul Grace and Pete Sawyer, Revisiting the relationship between software architecture and requirements : The case of dynamically adaptive systems, (2009) 9. Bastos Lucia RD and Jaelson Brelaz de Castro, Integration between Organizational Requirements and Architecture, WER(2003) 10. Eeles Peter, Characteristics of a software architect, The Rational Edge, IBM Resource(2006) 11. Sewell Marc T. and Laura Sewell, The software architect's profession: an introduction, Prentice Hall PTR, (2001) 12. Booch Grady, The Unified Modeling Language User Guide, 2/E. Pearson Education India, (2005) 13. Espinosa J. Alberto et al., Team knowledge and coordination in geographically distributed software development, Journal of Management Information Systems, 24(1), 135-169 (2007) 14. Patel D., Lawson-Johnson C. and Patel S., The effect of cultural differences on software development, ICCIR , (2009) 15. De Fraja Giovanni, Productive efficiency in public and private firms, Journal of Public Economics,50(1), 15- 30, (1993) 16.Anke S. Kessler and Christoph Lulfesmann, Monitoring and Productive Efficiency in Public and Private Firms, (2001) 17. Shahzad Khurram, Sajid Bashir and Muhammad I., Ramay Impact of HR practices on perceived performance of university teachers in Pakistan, International review of business research papers,4(2), 302-315 (2008) 18.Daniela E Damian and Didar Zowghi, RE Chanlanges in multi-site software development organizations, (2003) 19.Herbsleb J.D, Gloabal Software Engineering : The Future of Socio-technical Coordination, Future of software engineering (FOSE’07) Minneapolis, MN, USA, IEEE, (2007) 20. Herbsleb James D., Daniel J. Paulish and Matthew Bass, Global software development at siemens: experience from nine projects, Software Engineering, ICSE 2005. Proceedings, 27th International Conference on. IEEE (2005) 21. Kitchenham Barbara, Lesley Pickard and Shari Lawrence Pfleeger, Case studies for method and tool evaluation, Software, IEEE,12(4), 52-62 (1995) Research Journal of Recent Sciences _____________________________________________________________ ISSN 2277-2502Vol. 3(12), 48-52, December (2014) Res.J.Recent Sci. International Science Congress Association 52 22.Cedric Bertolasio, 6 software engineering tools that have been helping e go faster, URL: http://cbertolasio.wordpress.com/2013/01/29/6-software-engineering-tools-that-have-been-helping-me-go-faster/, 29, (2013) 23. Eddie Kim, The best book on finding and developing your android app idea, (2011) 24. Baik Jongmoon, The effect of case tools on software Diss., University of Southern California, (2000) 25. Fowler Martin, Who needs an architect?, IEEE Software,20(5), 11-13 (2003) 26. White Jules and Douglas C., Schmidt, Reducing Enterprise Product Line Architecture Deployment and Testing Costs via Model-Driven Deployment, Configuration, and Testing. Complexity, 8(9), 10 (2011) 27. Pietrantuono Roberto, Stefano Russo and Kishor S, Trivedi, Software reliability and testing time allocation : An architecture-based approach, Software Engineering, IEEE Transactions on, 36(3), 323-337 (2010) 28. Waqas Haider et al., DOORS : A Novel Social Intelligent and Philanthropical Social Network, Research Journal of Recent Sciences, 2(5), 74-77, (2013) 29. Sheetlani Jitendra and Gupta V.K., Concurrency Issues of Distributed Advance Transaction Process, Research Journal of Recent Sciences, 1(ISC-2011), 426-429 (2012) 30. Shafiq F., and Ahsan K., Knowledge Management for Disaster Scenario : An Exploratory Study, Research Journal of Recent Sciences, 2(10), 61-66, (2013) 31. Satish B. and Sunil P., Study and Evaluation of user’s behavior in e-commerce Using Data Mining, Research Journal of Recent Sciences, 1(ISC-2011), 375-387 (2012)