The Symbian OS (779886), страница 99
Текст из файла (страница 99)
The way it worked was quite particular, the way you package and passdata across the server boundary. You couldn’t simply invent your own way ofdoing that, you had to stick to the right ways of doing it and it was enforced.If you hadn’t done it before, you had to find out how to do it.The mechanism was very much developer to developer, either withinteams by direct coaching and code review, or directly between individual developers using Lotus Notes as a universal read–write discussionmedium. The Lotus Notes culture was always extremely strong (andremains so, although to some extent it has been diluted more recently bythe scale of expansion of the company and by new ways, for exampleWiki, leaking in).13 But among the older guard, it remains strong.Culture, Culture, CultureThe strong culture of autonomy inherited by Symbian dates back toPsion’s beginnings as a small company of highly technically capableindividuals, with not much hierarchy but with highly visible leaders,in which everyone contributed to make things work.
In particular thecompany was engineer-led, with a deep culture of engineer-led design,pulled together by a centralized but loose design process.Peter Jackson:Culture, not process, is what is important. And it really was the case thateveryone was given permission to do what it took.In many respects the early engineering culture in Symbian seems closeto what has more recently (and fashionably) become formalized as ‘agile’programming: strongly team-based, strongly team-meeting- and reviewbased, strongly decentralized, highly localized and organized aroundclear goals. There was a strong concept of team ownership of code and,indeed, not just of code but more strongly of ownership of the design andimplementation of a well-defined, discrete piece of the system.13Wiki also has great potential to give the culture of collaboration a new lease of lifeand take it in new directions.WHAT MAKING SOFTWARE IS REALLY ABOUT465Howard Price:I think we were Agile, but we didn’t have the culture of daily meetings Agilerecommends, though we did have weekly meetings.
For instance, I thinkit was for the Series 3, Charles Davies would organize a weekly meetingand all the team leads would go in, and the meeting would go round thetable and you’d say how you were doing and maybe Charles would decidethat some team should implement a certain feature or that some other teamshouldn’t implement some other feature. And everyone would agree, butmaybe that team would go and do it anyway, because they thought it wasthe right thing to do. So you had a lot of ownership of your own code,which was good, and you could decide largely what you wanted to do.However, you had to answer for what you’d done if it turned out to be a baddecision.Charles Davies was very much the driver of the culture of design, abeliever in design if only because, as he puts it, ‘It helps you be dumb’.Charles Davies:So I’m a believer in design, which I tried to promote using design tools.
Itwasn’t UML, it was Rose at that time, so I was maintaining Rose diagrams.I think you do have to have a design ethic. If you just end up putting codewhere you happen to have the editor open. . . well, that’s a bit too harsh. . .but you do need to take grasp of it and keep simplifying it. I believe you’rea much better programmer if you’re a bit forgetful or can’t remember thingseasily, because then you have to simplify until anyone can remember howit’s done.
I’m a great proponent of having design idioms so that you canrecognize designs. You can see that there is a design and that it makessense.Martin Tasker thinks the design culture was particularly important inenabling an informal culture nevertheless to be particularly effective.Martin Tasker:Charles Davies led the design and trained people who had been in relateddisciplines – he got them to do object-oriented software. In any managementview there are massive benefits out there if you take the enabling steps toachieve them and Charles did this extremely consistently and well. Charles,in particular, paid minute attention to the details of his APIs. He used theirexplanatory power to motivate his people and he almost didn’t need to lookat what they produced in terms of implementation466CREATIVE ZOO OR SOFTWARE FACTORY?code or test code. He basically believed that if the code met the requirementsof the API and if you felt it was correct then he trusted you that it was correct.Charles used that to massively good effect.
He used object orientation as ameans of controlling a sea of junior programmers very successfully.Perhaps of all teams in the company, the Base team (which developedthe kernel and low-level systems) had the capacity to survive longestbefore compromising the quite particular culture which had evolved:informal, devolved, expert and committed, attributes which it retainedcertainly well into the Symbian OS v6 release projects and beyond intoSymbian OS v7. Morgan Henry was working in the Base team on theoriginal port of EPOC32 to Nokia’s new 9210 Communicator hardwareand what eventually became Symbian OS v6.0.Morgan Henry:Certainly in the Base team there was a mentality that you get the best peopleyou can find, people who are interested and excited by the hardware andsoftware interaction, and broadly you let them get on with it and they comeup with good code. And it was led by people who were interested in thetechnology and enjoyed what it was doing.
I think they understood that ifthere’s enough space there, that if you allow talented people to do the thingsthey’re interested in, you end up with a good quality product. That’s not to saythere were no processes and no project management, but, that it’s all aboutthe balance.Transition of the Development ModelFormalization of the software development model was probably aninevitable consequence of success and growth and, in particular, of theevolution from a software company making a software product for a singlecustomer (and, to all intents and purposes, a customer within the samecompany), to one which was suddenly faced with multiple licensees, allcompeting in a high-growth and relatively new, global consumer market.What’s more, compared with Psion these companies were industry giants,the likes of Nokia, Ericsson, Motorola and Matsushita.
They had established markets, established practices, global reach, and strong (and quitedifferent) internal cultures. The small-scale and home-grown practiceswhich had evolved within Psion and carried over into Symbian weresuddenly confronted by a very different external reality.Certainly the reality is that the company now is very different to theone it used to be. Having grown by several multiples, the approach tosoftware creation is inevitably very different.WHAT MAKING SOFTWARE IS REALLY ABOUT467Morgan Henry:Even during the process of Psion Software becoming Symbian, there were manyattempts to regularize development processes.
The Base team was always a bitdifferent, but now it seems very much like the technology architects have lessfreedom to make the architectural choices that they need to make, and theydon’t get the time to write any code or do any proper design. So Symbian as acompany has begun to regulate more, which is no bad thing, because you haveto have reliability of delivery over everything else if that’s what your customeris asking for.
Back in the Nokia Communicator and Psion Series 5 days, wewere a technology-driven company, and this transition to a marketing-ledcompany has probably contributed to the difference.The most immediate loss is probably that of developer autonomy or,at least, the sense of autonomy.Morgan Henry:With the Nokia Communicator, you’d see a problem and you’d be responsiblefor it, up to the point where you’d be responsible for going to see Nokia. Forinstance, I’d be sent out to Finland and I’d be put in a room with ten Nokia engineers and they’d ask lots of questions and it would be my responsibility to comeup with a solution, and possibly even go back and implement the solution.There was no project manager doing it for you, it was a case of having tomanage your time on that and work out when it was going to be done, whichmeant you had much more freedom and you had much more contact with thehardware.
So I was prepared to put in a lot of time and a lot of effort, doinglong nights and weekends if I needed to, just to make sure that it worked,because you cared about it and you wanted to see it ship.As Symbian has evolved, driven by the need to scale to many morelicensees and to support a multitude of licensee projects, responsibilityfor porting to new hardware has moved away from the core engineeringteams to a dedicated porting team and dedicated licensee support teams.Inevitable and necessary as it may be, one consequence is the distancingof the core software-engineering teams from real mobile-phone products.Morgan Henry:The Base team has been detached from the base porting activity and deliveringa base port for a ‘real’ product. At best they’re delivering a base port for ahardware reference platform.