The Symbian OS (779886), страница 100
Текст из файла (страница 100)
There are many reasons for this, but certainlythe desire to regularize and the desire to control the time investments are partof it. The fact is that they are less in contact with the final product.468CREATIVE ZOO OR SOFTWARE FACTORY?Having said that, there are some parts of the organization which still havea close relationship with the final product and they still do the long weekendsand they still go and see the customer and get bombarded with questions, sothat’s still there.
I’d argue it’s probably the best way of doing that kind of job,as opposed to the process-driven activity that is common in Symbian.While the Lotus Notes database and discussion culture remains strong,the design culture that used to underlie it has been dissipated as thecompany has grown.Howard Price:The Lotus Notes culture has survived to a fair extent and there’s a lot ofdiscussion of how to do things. However, there doesn’t seem to be hugeamounts of design discussion going on, it’s more programming discussion.Maybe that’s because there’s a feeling that everything is stable and there’s notreally that much new design and big new design now goes through the SystemDesign Authority.There is no doubt that the design culture is very different in Symbiannow from what it was in the early days.Charles Davies:Do we do enough design now? Of course programmers like doing design, butit’s whether you do design as an explicit activity.
I’m a believer in modeling.I’m not up to the UML standards these days but I’ve found UML useful. Buteven if you just draw it on flipcharts, you do need a design. Design gets youto reusable patterns, so if you’ve got a community of people doing design it’svery useful, and if you leave a programmer on their own they won’t get there.You need a culture of design, of people sharing designs and talking about it. SoI did used to do that. Design, ultimately, is the thing that cuts your defect costdown, because good designs have fewer defects.
But then of course you needgood requirements. It’s all ‘Page One’ of the software-engineering manual. Sowe know that, but it’s not just knowing it, it’s actually doing it.Control and flexibility are not easy to reconcile. The deadline pressuresof time-to-market inevitably conflict with the need to refactor and redesignas part of the daily software development approach. David Wood stillconsiders iterative design an essential part of any successful developmentstyle.WHAT MAKING SOFTWARE IS REALLY ABOUT469David Wood:I do think it’s worthwhile having enough project time set aside to allow forsome degree of refactoring of designs, because you can never be sure of gettingit right first time.
Even with the cleverest people, the most experienced people,there are things that only become clear as the design evolves, so you should, ifpossible, allow yourselves the freedom to put that into future products. It getstough when you’ve got to maintain compatibility as well, so it may be that fora while you’ve got to run the two systems in parallel, you’ve got to run the oldsystem for older products on new machines, but then also you can have thenew APIs which gradually people can switch to.Size tends to work against flexibility, but in fact flexibility is not theonly thing that gets lost with increased size.
Increased size also worksagainst the consistency and design elegance of the system, tending tocause dilution. Peter Jackson argues that design dilution is an almostinevitable consequence of a traditionally devolved approach to designconfronted by rapid expansion.Peter Jackson:A general problem that has been faced as Symbian OS development teamshave grown is the varied experience of the people you employ to work onthe operating system. If you try to do something new, if you try and invent asophisticated locale system, the problem is that somebody from outside whomay have, say, a Unix background, doesn’t understand the design principlesof what you’re doing and may get it wrong or may take longer to learn whatyou’re up to.Jackson’s own area of specialization in the system in the early days,internationalization and localization, is a case in point.Peter Jackson:The problem with internationalization is that typical programmers like tobelieve that everybody is American! They can ignore basic issues, like forexample sometimes you can’t assume that pluralizing a word means puttingan ’s’ on the end of it.
So we were always compromising saying, ‘this wouldbe the elegant thing to do, but everybody expects it to happen a different way’,and we have to do it the way everyone expects. It is a fact of life workingin this industry, that software tends to devolve towards the lowest commondenominator rather than towards the most elegant thing.‘Worse is better’ is the label Richard Gabriel coined to describe theproblem that inferior systems or designs tend to beat superior ones in the470CREATIVE ZOO OR SOFTWARE FACTORY?market by getting to the market quicker and occupying the market nichewith a system that is just good enough to make the switching cost to thebetter system unattractive.Peter Jackson:It’s probably a particular case of the ‘Worse Is Better’ thesis, which basicallysays, ‘You can put a lot of effort into doing the right thing at all times, butmeanwhile your competitor will have ignored all the difficult cases and gotto the market first, and the difficult cases happen so rarely that people can beconned into accepting an inferior product.’ That’s a paraphrase of Worse IsBetter, but that’s how I think of it.It is a truism that success can be a dangerous thing in its ownways.
Success for Symbian has meant near continuous growth andexpansion.Peter Jackson:The software development process determines your success in producingsoftware. I’m thinking of things like the role of testing in software development,the question of where defect-fixing comes at the end. Issues like these arecultural issues. You want to institutionalize something that’s good, the rightthing, and I don’t think it’s easy at all, because as soon as you have starteddoing the right thing, you lose focus and you change the focus to somethingelse. Meanwhile, the company grows a bit more and suddenly the thing youthought was taken care of isn’t taken care of at all.
So it’s quite hard even towork out what you have to do to institutionalize the things you care about.But the biggest impact of growth is in a way the most obvious one,if also the most puzzling one. With responsibility for managing thecode repository within the integration and build organization within thecompany, Jackson is well placed to observe it.Peter Jackson:The number of submissions into the repository is enormous. You watchit, and it just scrolls up the whole time, you just see it, submission aftersubmission after submission.
And yet we produced the first version of EPOCwith an engineering community of closer to 100, it was of that order ofsize. So sometimes you think, What is all this work going on? What is it?Why do we need so much of it? So looking back, the scale really is quitedifferent.WHAT MAKING SOFTWARE IS REALLY ABOUT471The Value of ‘Whole Product’ DevelopmentCharles Davies identifies a particular problem which has become highlyrelevant for the company, and which has deep roots not so much in thedetails of the development model, but in the wider business model andthe place in which Symbian finds itself in the market.
The evolution frombeing a product company to being a pure software company (and indeed,a pure operating-system company) tends to work against the holistic,whole-product understanding of what the company is producing, whichmakes validation much more complex. In the worst case, focus onvalidation can be lost altogether.Charles Davies:In our context, validation is hard. It used to be much easier in Psion, becausewe would provide an API with our OS hat on, and then applications would useit in the same organization, and then the device would use the application.
Ifit wasn’t any good, people would say so! And the application is working thisway because the API works this way, so we’d change the API to work better.That cycle doesn’t exist now. We deliver APIs to our<b>Текст обрезан, так как является слишком большим</b>.