SSL HELPI NG YOU TO GET OPTIMUM RE S ULTS AN D VALUE FRO M IT
SOFTWARE ENGINEERING AN EFFORT TO STRIKE A SENSIBLE BALANCE R i z v i L a t i f f, F e b r u a r y 2 0 1 1
www.softwareservIceslanka.com
HELPING YOU TO GET OPTIMUM RESULTS AND VALUE FROM IT
Copyright The entire contents of this document are subject to copyright with all rights reserved. All copyrightable text and graphics, the selection, arrangement and presentation of all information and the overall design of the document are the sole and exclusive property of Software Services Lanka.
Software engineering > an effort to strike a sensible balance
Page 2 of 14
HELPING YOU TO GET OPTIMUM RESULTS AND VALUE FROM IT
To begin with â—?
Software Engineering cannot be an after thought
â—?
'Engineering' is defined as follows
'the discipline, art, and profession of acquiring and applying scientific, mathematical, economic, social, and practical knowledge to design and build structures, machines, devices, systems, materials and processes that safely realize improvements to the lives
Wikipedia http://en.wikipedia.org/wiki/Engineeri ng
of people.' 'The creative application of scientific principles to design or develop structures,
The American Engineers' Council for
machines, apparatus, or manufacturing processes, or works utilizing them singly or in
Professional Development - Wikipedia
combination; or to construct or operate the same with full cognizance of their design; or to forecast their behaviour under specific operating conditions; all as respects an intended function, economics of operation and safety to life and property.' Engineering is the application of science to the needs of humanity. This is accomplished through knowledge, mathematics, and practical experience applied to the design of
http://www.wordiq.com/definition/Eng ineering
useful objects or processes. Software engineering > an effort to strike a sensible balance
Page 3 of 14
HELPING YOU TO GET OPTIMUM RESULTS AND VALUE FROM IT
Why do we get it wrong ? ●
●
There can be many a reasons ●
Requirements (misses, misinterpretations, over emphasis, etc.)
●
Expertise and resourcing
●
Planning and execution
●
Technology
●
Engineering, etc.
The exact one(s) depends on the context under consideration
Software engineering > an effort to strike a sensible balance
Page 4 of 14
HELPING YOU TO GET OPTIMUM RESULTS AND VALUE FROM IT
A common symptom ●
A more common grouping of reasons points to engineering. ●
Not being able get the right balance for the task at hand
Too little
Too Much Ideal point/amount of engineering required depends on the requirements and overall context (business, IT, expertise, etc.)
●
A question of 'How much to engineer' than 'How to engineer'
Software engineering > an effort to strike a sensible balance
Page 5 of 14
HELPING YOU TO GET OPTIMUM RESULTS AND VALUE FROM IT
Whats the difficulty A closer analysis points to ●
Dynamics of software
●
Choice and impact of marketing
●
Technology influence on user requirements
Software engineering > an effort to strike a sensible balance
Page 6 of 14
HELPING YOU TO GET OPTIMUM RESULTS AND VALUE FROM IT
Dynamics of software ●
Software is intangible (not having a physical substance)
●
Makes it unique especially from an engineering perspective ●
●
●
●
●
Other fields of engineering deals with moulding of physical property which consumes longer time & effort making innovation to take place at a much slower pace Today it is an established norm to test and evaluate design integrity and performance through software to minimise the physical forms of testing to save time and money. e.g. Design and construction of the A380.
Unqueness makes innovation on software to be fast paced , constant, progressive and distruptive Todays solution stack comprises many technology components from different quarters ●
Creates a interdependent stack
●
Each of these components has its own cycle and pace of innovation
●
These cycles will have a knock on effect on referenced components
Creates an environment which is unpredictable and fluid
Software engineering > an effort to strike a sensible balance
Page 7 of 14
HELPING YOU TO GET OPTIMUM RESULTS AND VALUE FROM IT
Dynamics of software Innovation cycle Innovation cycle
The diagram illustrates the constant innovation cycle a software is subjected to ●
●
●
Progressive - Backward Compatible innovation mainly referes to progressive releases of software functionality which does not have a fundamental change impact on the existing versons the software. Progressive Backward Incompatible innovation refers to progressive change which has an impact on the existing platform. The roll out of Microsoft .NET framework 2.0 which mandated all code compiled on the previous version of the framework to be recompiled with amendments. Distruptive innovation refers to fundamental change on the existing software where the innovation breaks all that is established. e.g. Microsoft's move from Visual Studio 6.0 to the .NET platform – a fundamental change in its direction. The roll out of XML based technologies (including web services) as a mechanism for intergration and interoperability – A fundamental change in itegration
Software engineering > an effort to strike a sensible balance
Progressive
Backward Compatible
Minimum or no alterations to accommodate
Disruptive
Backward Incompatible
Existing and related software assets mandated to be re-engineered
Page 8 of 14
HELPING YOU TO GET OPTIMUM RESULTS AND VALUE FROM IT
Choice and impact of marketing ●
Software solutions are stiched together with technologies which are packaged and made available through software products. ●
●
●
●
●
●
Relational database technologies are made available through products such as Oracle DB, SQL Server, MySQL, PostGres SQL, etc. HTML with browsers (Chrome, FireFox, IE, etc.). Implementation of a specific technology can include deviations from the standards (substractions and additions which are vendor specfic as per their technology and product strategies) Can include other non related technologies HTML comes packaged with web browsers. IE by microsoft also includes silverlight, .NET framework, etc. technologies plus HTML standards conformance will vary at the pheriphary.
Today's technology landscape offeres many alternatives (from open source to commercial) for putting together a technology stack. ●
Spoilt for choice
●
There can be many right alternatives for a particular requirement
●
Each alternative comes with its strenghts and weaknesses
Trying to make sense can be a real challange
Software engineering > an effort to strike a sensible balance
Page 9 of 14
HELPING YOU TO GET OPTIMUM RESULTS AND VALUE FROM IT
Choice and impact of marketing ●
This is futher complicated by the influence of marketing hype
●
Marketing hype is a very visible entity in IT.
●
While marketing has it merits in terms of creating the visibility for sales it also influences and blinds a well thought out and researched decision making process. ●
●
A product vendor will always try to push through his proposition sometimes overlooking the actual merits, shortcomings and scope Very oftern the industry is exposed to technology / product release cycles which are marketted as 'THE ANSWER' to all aches and pains. –
Releases of Visual Studio 6.0, XML and web services, enterprise service bus, RIA, Silverlight, etc. ●
Has it lived up to expectations (promise(s))?
–
But when the dust settles one eventually figures outs its practical scope and application
–
And by then there may some other thing or things to be 'Gung Ho' about
Software engineering > an effort to strike a sensible balance
Page 10 of 14
HELPING YOU TO GET OPTIMUM RESULTS AND VALUE FROM IT
Technology on user requirements ●
Engineering is undertaken to deliver on customer requirements and expectations ●
Customer's expect value, bares the bills and consequences
●
There are instances where technology overwhelms customer requirements.
●
Results in
●
●
Drive for technology perfection
●
Complexity and bugs
●
Project delays
●
And at the end user rejection and lack of buy-in due to usability and value
The reasons for such technology influence can be traced to ●
Technology marketing hype/influence, overpromise, immaturity and blind passion of technologists and technology providers –
●
Projects driven and influenced by technologists
Lack of focus, priority and drive on user/business requirements, value creation and usability
Software engineering > an effort to strike a sensible balance
Page 11 of 14
HELPING YOU TO GET OPTIMUM RESULTS AND VALUE FROM IT
How do we cope ●
●
Software engineering cannot be an after thought ●
It has to be a well thought out and researched approach
●
There is no magic pill
Following guidelines can be cosidered as a start ●
●
●
●
Customer value, requirements and expectations are NO 1 priority –
Technology is only a tool and a platform for delivery
–
Relevence, Intiutiveness and usability are key to winning the customers
Don't aim for perfection specially on a platform that is fluid and disruptive –
Everything as we know today will change tomorrow if not day after tomorrow
–
Minimum or optimum as opposed to maximum engineering
–
Layers of decoulping or abstraction to cope with change
Consider all alternatives of its merits and short commings in detail prior to selection –
Don't go simply by the marketing bull
–
Don't know ask or get help
–
Don't re-invent the wheel
Be sensible and practical
Software engineering > an effort to strike a sensible balance
Page 12 of 14
HELPING YOU TO GET OPTIMUM RESULTS AND VALUE FROM IT
Contact Details Telephone
+94 1 2889090
Mobile
+94 1 07555 98983
info@softwareserviceslanka.com
Google Maps
http://goo.gl/maps/dyoH2
Address
40/6B Swarnadisi Place, Koswattha Road, Nawala, Rajagiriya, Sri Jayawardenepura, Sri Lanka
Website
www.softwareserviceslanka.com
http://www.linkedin.com/company/software-services-lanka
Software engineering > an effort to strike a sensible balance
SSL HELPING YOU TO GET OPTIMUM RESULTS AND VALUE FROM IT